Contributing
Development setup
This project uses uv to manage the Python environment and dependencies, declared in pyproject.toml.
This creates a .venv and installs the package together with the test, lint, and docs dependency groups (bundled as dev).
Running the tests
To also collect coverage:
Linting
Building the docs locally
Continuous integration
Every push to main runs the Test workflow: pylint, the test suite across Python 3.10-3.13, and a coverage upload to Coveralls.
Releasing
Releases are cut with the Release workflow:
- Go to Actions → Release → Run workflow.
- Pick the version bump:
patch,minor, ormajor. - The workflow runs the test suite, bumps the version in
pyproject.toml/uv.lock, commits and tags it, publishes the package to PyPI, deploys the documentation, and creates the GitHub release — no local steps required.
If you need to release manually instead: bump version in pyproject.toml, commit, tag the commit with the same version (e.g. git tag 0.1.2), and push both. Pushing the tag deploys the docs, and creating a GitHub Release from that tag publishes the package to PyPI.