Thanks for being willing to contribute!
- Fork and clone the repo.
git clone https://github.com/BostonGene/pyigmap.git
- Install a Python 3.9 (or later), Docker, Bash 3.2 (or later) and Java 11 (or later, up to 21)
make install-python
make install-docker # requirements: ubuntu x64
make install-podman # requirements: Ubuntu 20.10 and newer
make install-java # requirements: linux x64
- Build all reference archives:
make build-ref # will use Docker as container engine
or
make ENGINE=podman build-ref # will use Podman as container engine
To build an executable and not executable docker images, python virtual environment and installs requirements execute:
make build # will use Docker as container engine
or
make ENGINE=podman build # will use Podman as container engine
make unit-tests # or `make ENGINE=podman unit-tests`
make integration-tests
make tests
Please make sure to run the tests before you commit your changes (if you didn't configure pre-commit
). You can run for it make unit-tests
(for steps) and make integration-tests
(for workflows).
Also, check that your code meet PEP8 requirements (by ruff), dynamic and static typing (by mypy). You can automate it using:
make check # runs ruff linter
make format # runs ruff formatter
make mypy # runs mypy type checker
Additionally, you can activate pre-commit hooks. Execute:
pre-commit install # pip install pre-commit
- Create an issue, a branch from
main
(from the task), and then create a pull request from this branch. - After each minor/major change in pyigmap, make sure to add some notes to CHANGELOG.
Please check out the open issues.
Also, please watch the repo and respond to questions/bug reports/feature requests! Thanks!