Generated projects use make all as the standard local quality gate. It runs
these targets in order:
build: create the local virtual environment and install development dependencies withuv sync --group dev.check-fmt: check Ruff formatting for Python sources and, when Rust is enabled,cargo fmtfor the Rust extension.lint: runlint-pythonand, when Rust is enabled,lint-rust.typecheck: runty check.test: run pytest and, when Rust is enabled, Rust tests.audit: runpip-auditand, when Rust is enabled,cargo audit.
The lint-python target runs Ruff, then Interrogate over $(PYTHON_TARGETS)
to enforce 100% docstring coverage for the Python targets (the threshold is
pinned in [tool.interrogate] in pyproject.toml), then Pylint via a
PyPy-backed runner. The Pylint runner is installed through uv tool run from
the pinned pylint-pypy-shim repository.
Pytest discovery is limited to the top-level tests/ tree. Keep generated
project unit tests there rather than in package module directories or
unittests/ subdirectories, because CI coverage runs through xdist-backed
SlipCover support.
When the Rust extension is enabled, lint-rust runs:
cargo docwith warnings denied;cargo clippywith the generated Clippy configuration; and- Whitaker with
whitaker --all.
The generated Makefile installs Whitaker on demand before local Rust linting when it is not already available.