This project uses the Git feature branch workflow. Please submit your changes for review as a GitHub pull request.
This project requires Python 3.10 or newer. To set up your development environment on Linux, run these commands from the project root directory:
-
sudo make build-deps
—installs build dependencies (Debian/Ubuntu only) -
make
—creates a virtual environment named.venv
in the current working directory and performs an editable installation of this project, including development and testing tools -
make pre-commit
—installs pre-commit hooks (requires the virtual environment to be active in your code editor or Git porcelain) -
make test
—performs comprehensive functional and integration testing of this project -
make smoke
—runs a shorter, faster subset of the test suite -
make docker
—builds a fully tested and release-ready container image
Additional make(1) targets are available. Review the Makefile for details.
The following code styles are in use:
This project implements Semantic Versioning 2.0.0 using Conventional Commits 1.0.0. Valid commit types are:
-
build—changes to the build system or external dependencies
-
ci—changes to the CI configuration files and scripts
-
docs—documentation-only changes
-
feat—a new feature
-
fix—a bug fix
-
perf—a code change that improves performance
-
refactor—a code change that neither fixes a bug nor adds a feature
-
test—new tests or corrections to existing tests
A commit's scope should be the second-level Python module name sans the stuart.
prefix or any suffixes with a few exceptions. Valid commit scopes are:
-
stuart—for the corresponding top-level dunder module
-
main—the main web page and related routes
-
wsgi—the WSGI adapter, for use with gunicorn
-
packaging—package layout or other metadata, e.g., the arrangement of src/, alterations to pyproject.toml or Dockerfile
-
no scope—for refactor or test changes covering multiple packages; or for build, ci, or doc changes not specific to one package