We follow the fork and pull model on GitHub. We also recommend checking out this recommended git workflow.
This project has a number of requirements for all code contributed.
- We use pytest for unit tests.
- We use Black for code formatting.
- We use mypy for static type checking.
We strongly enforce continuous integration (CI) on all pull requests. This includes running unit tests, code coverage, code style checks, and static type checks. We use Github Actions for this purpose.
After forking and cloning the repository, install in "editable" (i.e. development) mode using the -e
option:
git clone https://github.com/koszullab/metator.git
cd metator
pip install -e .[dev]
We use pytest as our unit testing framework. Once you've configured your environment, you can just cd
to the root of your repository and run
pytest
Unit tests are automatically run on GitHub for all pull requests.
Pull requests are welcome, once changes have been tested and pass all CI checks. Please make sure to include tests for any new functionality.
- We follow conventional commits for versioning this project.
- We use semantic versioning for this project.
- Whenever a version bump is needed, the maintainer will bump the version in pyproject.toml, and tag the commit. This will trigger:
- A new release on Github;
- Propagation of this release on PyPI;
- A new Docker image on ghcr.io/koszullab/metator.
This document is based off of the guidelines from the sparse project.