Contributing
Simple Development Workflow
Install app requirements including the optional development packages.
pip install -e ".[dev]"
Ensure the linting and tests pass without issue before you begin development.
make lint-check
make test
Now make your code changes. Update tests.
Ensure you haven't broken any tests or linting.
make lint
make test
Commit your code.
git add -A
git commit -m "feat: added a new feature"
Push to a new branch and open a pull request.
Tools Utilised
Standards
To ensure efficient collaborative development, a variety of standards are utilised in this project.
- Semantic Versioning is used.
- Python Semantic Releases is used to automate change log generation and releases.
- Conventional Commits are utilised
and validated using the wagoid/commitlint-github-action
github action, which itself uses commitlint
- Conventional Commits are also utilised for pull request titles and enforced using amannn/action-semantic-pull-request.
- Black code formatter is used.
- Actions Black is used to format code in PRs.
- Numpy style documentation strings
are used.
- Pydocstyle is used to ensure documentation strings adhere to the standard.
- Type hinting is used.
- And checked using mypy.
- Spelling is enforced using codespell.
Website
- The website and documentation is generated by mkdocs with the mkdocsstrings extension and material theme.