Dependency management is done through poetry, and pre-commit linting hooks are
maanged with pre-commit. To get started, run poetry install and poetry
run pre-commit install.
Tests use pytest, and a Makefile is set up with targets for common operations;
to run tests, use make test; to run tests and get an HTML coverage report,
use make htmlcov; to lint everything, use either make lint or poetry
run pre-commit run -a (make lint will stop executing linters after one
failure, while pre-commit will not lint any untracked files).
Note
This is subject to change; we may move the running of these jobs to use tox
in the future, but for now make is used for running scripts.
This project uses isort, black, flake8 with flake8-bugbear, and mypy (see the pre-commit configuration); consider setting up editor integrations to ease your development process (particularly with mypy).
If you want a live preview of the docs as you work, you can install
sphinx-autobuild into the Poetry virtualenv (poetry run pip install
sphinx-autobuild) and run it via poetry run make livebuild.
This project follows Conventional Commits, and uses Angular's commit types.
Branches should be named prefixed with a type (the same types as used in the commit message) and a short description of the purpose of the branch. Some examples:
feat/brief-description fix/bug-description