Skip to content

Contributing

  • Run make lint and make format before raising a PR.
  • Add examples and/or tests for new features.
  • If the change is massive, open an issue to discuss it before writing code.

Development setup

Prerequisites:

  • uv
  • Docker (for the Cloud Tasks emulator)

Running tests

docker compose up -d       # start emulator
make test                  # run tests
docker compose down        # stop emulator

Linting & formatting

make lint                  # mypy strict + ruff check
make format                # auto-fix

Docs

make docs                  # live-reloading docs server
make docs-build            # strict build (what CI runs)

The docs live in docs/ and are built with MkDocs Material; the API reference is generated from source docstrings with mkdocstrings. They deploy to GitHub Pages automatically on every push to master via the Pages artifact flow (repo setting: Settings → Pages → Source → GitHub Actions).