Contributing
August 24, 2026 ยท View on GitHub
Thank you for helping improve django-bakery. Please open an issue for a substantial change before starting work, then use a focused branch or linked worktree for the implementation.
Set up a checkout
The repository uses uv and the dependency groups in pyproject.toml.
Bootstrap the current checkout with:
make bootstrap
This installs the locked development, test, and documentation dependencies.
It is safe to run in the primary checkout or a linked Git worktree. In a
linked worktree, the bootstrap links the primary checkout's ignored .env
without replacing an existing local file and writes .env.worktree with a
stable WORKTREE_ID.
Install the Git hooks after bootstrapping:
uv run pre-commit install --install-hooks
Checks
Run focused tests while developing, then run the complete checks before opening a pull request:
make test
make check
make verify
make check runs Ruff, ty, dependency, workflow, formatting, and diff checks.
make verify additionally runs the pytest suite, manifest and package checks,
and the Sphinx documentation build with warnings treated as errors. Run
make hooks to execute every pre-commit hook against the repository.
Documentation
Documentation lives in docs/ as Markdown processed by Sphinx and MyST.
Build it locally with:
make docs
make docs-check
make serve-docs
Preserve the package's Django and S3 deployment guidance when editing the documentation. Update the docs for user-facing behavior changes.
Pull requests
- Keep changes focused and include tests for changed behavior.
- Update documentation and
CHANGELOG.mdfor user-facing changes. - Do not commit
.env,.env.worktree, credentials, build output, or virtual environments. - Explain compatibility or migration considerations in the pull request.
- Confirm the relevant checks pass before requesting review.
For release work, follow RELEASING.md.