Thank you for your interest in contributing! This document covers how to get started, the development workflow, and what to expect from the review process.
- Fork the repository and clone your fork
- Copy
.env.exampleto.envand fill in values - Copy
docker-compose.override.yml.exampletodocker-compose.override.yml - Install dev dependencies:
pip install -e ".[dev]" - Start the stack:
docker compose up postgres # just the DB is enough for most work
pytestThe test suite does not require a running database — DB-dependent tests are
integration tests and are skipped unless POSTGRES_PASSWORD is set and the
database is reachable.
This project uses Ruff for linting and formatting.
ruff check src/ tests/
ruff format src/ tests/Type annotations are checked with mypy:
mypy src/CI enforces both on every pull request.
- Create a branch from
main:git checkout -b feat/my-feature - Make your changes, add tests where appropriate
- Run the linter and tests locally before pushing
- Open a pull request against
main— fill in the PR template - A maintainer will review and merge or request changes
Please use the bug report issue template.
Include the output of docker compose logs and your environment details.
Open a feature request and describe the use case before starting implementation work. This avoids effort on changes that may not align with the project direction.
This project follows the Contributor Covenant. Please be respectful and constructive in all interactions.