How to contribute¶
We welcome contributions to this project. There are many ways to contribute, from writing new features, to reporting bugs.
Please use GitHub issues to report all bugs. You can also use the issues to ask questions, or request new features.
We use pull requests for all contributions. If you are not familiar with GitHub pull requests, please read "Creating a pull request" on GitHub's website for more information.
Contributing code¶
Check the Makefile for useful commands to help you get started.
Dependencies¶
We use Poetry to manage dependencies. Please install Poetry before contributing code. We also utilise pre-commit to manage pre-commit hooks. Please install pre-commit before contributing code.
You can install all dependencies by running poetry install
in the root directory of this project.
Code style¶
We use black to format our code as well as ruff
to lint our code. Please run pre-commit run --all-files
before submitting a pull request to ensure your code is
formatted correctly and passes all linting checks.
Testing¶
We use pytest to test our code. Please write tests for all new code you write.
You can run all tests by running make test
in the root directory of this project.
Contributing to documentation¶
We welcome contributions to our documentation. You can find the documentation in the docs
directory. We use
mkdocs to build our documentation. You can run mkdocs serve
in the root directory of this
project to serve the documentation locally.
Before submitting a pull request¶
Before submitting a pull request, please ensure that you have run pre-commit run --all-files
, pytest
, amd mypy
to
ensure your code is formatted correctly, passes all linting checks, and passes all tests.
Please ensure you follow these steps:
- Fork the repository and create your branch from
main
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
Help¶
The Makefile contains some useful commands to help you get started. You can run make help
to see a list
of all available commands.
If you need help, please feel free to reach out to us!