Linting tools run automatically before each commit using pre-commit, black, and isort.
Test coverage reports are generated during every commit and pull request using coverage and pytest-cov. All reports are automatically uploaded and archived on codecov.io.
Unit tests are written using pytest and static type checking is provided by mypy.
Package releases to PyPI with dynamic versioning provided by bump2version begin automatically whenever a new tag is created in github.
Docker images are automatically published to Docker Hub during every release. Images are tagged with a semantic version number which agrees with the git tag and the PyPI version number.
Documentation is built using mkdocs and mkdocstrings. Docs are automatically deployed to github pages during every release.
Release notes are automatically generated during every release using github actions.