Contributing
Issues¶
If you notice an issue with phylm
or would like to suggest a feature or just have a general question, please raise an issue on GitHub. If it's an issue that needs debugging please make sure to include the version of phylm
in the issue description. You can retrieve the version with the following:
pip freeze | grep phylm
Pull Requests¶
If you would like to contribute to the repo, you would be most welcome. If you're tackling an existing issue please comment on the issue that you'd like to take it on. If it's a new feature/bug, please first raise an issue. If it's a trivial change (typos, documentation etc.) then no need to raise an issue.
Local Development¶
In order to work on your contribution, you'll need to first fork the repo and then clone it to your local machine:
git clone git@github.com:<your username>/phylm.git
cd phylm
You'll need python
3.8 or 3.9 to run this package. You can follow the instructions here to install and use these versions.
This package uses poetry
to manage dependencies. Ensure you have poetry
installed, instructions here and run:
poetry install
This will install the dependencies into a .venv
virtual environment. You can activate the env with either source .venv/bin/activate
or poetry shell
.
Next install the pre-commit
hooks with:
pre-commit install
Nox is used to run tests, linters, type checkers etc. These are all run in the CI and on git commit
but if you'd like to run them manually, you can do so with, eg:
nox --session=tests
This will run the tests for all versions of python.
See here for more information on running nox
locally.
If you're making changes that will require updates to the documentation, please do so accordingly. Documentation lives in the docs/
directory and can be served locally with:
mkdocs serve
See here for more information on working with mkdocs
.
Once you're ready with your shiny, TDD'd feature, commit, push, and open a pull request and I'll be happy to review. If you're having issues with any of this setup please do let me know and I'll try and help.