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