Contributing¶
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
Developer Installation¶
If something goes wrong at any point during installing the library please see how our CI/CD on GitHub Actions installs and builds the project as it will always be the most up-to-date.
Get Started!¶
Ready to contribute? Here’s how to set up bioio
for local development.
Fork the
bioio
repo on GitHub.Clone your fork locally:
git clone git@github.com:{your_name_here}/bioio.git
Install the project in editable mode. (It is also recommended to work in a virtualenv or anaconda environment):
cd bioio/ just install
Create a branch for local development:
git checkout -b {your_development_type}/short-description Ex: feature/read-tiff-files or bugfix/handle-file-not-found\ :raw-html-m2r:`<br>` Now you can make your changes locally.
When you’re done making changes, check that your changes pass linting and tests with just:
just build
Commit your changes and push your branch to GitHub:
git add . git commit -m "Your detailed description of your changes." git push origin {your_development_type}/short-description
Submit a pull request through the GitHub website.
Just Commands¶
For development commands we use just.
just
Available recipes:
build # run lint and then run tests
clean # clean all build, python, and lint files
default # list all available commands
generate-docs # generate Sphinx HTML documentation
install # install with all deps
lint # lint, format, and check all files
release # release a new version
serve-docs # generate Sphinx HTML documentation and serve to browser
tag-for-release version # tag a new version
test # run tests
update-from-cookiecutter # update this repo using latest cookiecutter-py-package
Deploying¶
A reminder for the maintainers on how to deploy. 1) Make sure all your changes are committed and merged into main. 2) Make sure branch is clean:
```bash
git checkout main
git stash
git pull
```
Create tag and push new version to GitHub like so:
```bash
just tag-for-release "vX.Y.Z"
just release
```
Wait for a GitHub Action to automatically publish to PyPI
Create GitHub release for the corresponding version created.
6a) Select tag for version created
6b) Ensure GitHub automatically generates releases notes ([click "Generate Release Notes"](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes))
6c) Double check format is similar to previous releases
6d) Publish release