Contributing
Issues and pull requests are always welcome.
General considerations
- Keep it small. The smaller the change, the more likely it is to be accepted quickly.
- Changes that fix a reported issue get priority for review.
- If you've never created a pull request before, see the GitHub guide.
Workflow
- Fork (external contributors) or clone the repo and set up your environment following Getting started.
- Create a feature branch — don't work on
main/developdirectly. The convention in this repo isfeature/<ticket>-short-descriptionorbugfix/<ticket>-short-description. - Make your changes:
- keep
@extend_schemaAPI annotations up to date when touching endpoints; - add a migration when models change;
- update the documentation pages affected by your change.
- keep
- Verify locally before pushing:
$ uv run pre-commit run --all-files # lint (ruff etc.)
$ uv run pytest tests # test suite
$ uv run tox -e mypy # type check
- Push and open a pull request against
develop. GitHub Actions runs tests, lint, security checks, and the docs build; fix any failures. A maintainer will review and merge.
Code style
Formatting and linting are enforced by the pre-commit configuration (ruff, isort rules, flake8 plugins) — run uv run pre-commit install once and the hooks take care of it. Type hints are expected on new code; the codebase is checked with mypy.