Contribution guide
CI
All pull-requests should pass CI, including linting and testing.
Linting (pre-commit
)
We use pre-commit
to ensure every commit reaches a minimum quality level.
While it's not mandatory, it is strongly advised to install pre-commit
hooks in your workspace
to ensure that every commit will be automatically checked and/or formatted:
You can run those linters on demand for tracked files:
Type checking is minimal in pre-commit
so if you want to perform a full typing analysis, run:
Tests
Tests are managed using pytest. You can run them in your worksapce using:
You can test against all supported Python versions using tox
with:
Documentation
The documentation is built using MkDocs with the mkdocs-ledger
theme.
You can run a live development server locally using:
Conventional commit
We use conventional commit for commit messages.
Type must be one of the following:
build
: Changes that affect the build system or external dependenciesci
: Changes to our CI configuration files and scripts (e.g. GitHub workflows)docs
: Documentation only changesfeat
: A new featurefix
: A bug fixrefactor
: A code change that neither fixes a bug nor adds a featurestyle
: Changes on code formatting that do not affect the meaning of the codetest
: Adding missing tests or correcting existing tests