Six additive changes since v0.3.0. No breaking changes; existing Makefiles keep working.
New targets
format-check— non-mutating format check driven by a newFORMAT_CHECKvariable (defaultruff format --check). Pair with the existingformattarget so local dev and CI can use the Makefile without overridingFORMAT. (#1)check— umbrella target runninglint format-check typecheck testin order. Driven byCHECK_DEPSso projects can reorder, skip, or extend (CHECK_DEPS += docs-test). (#1)coverage/coverage-html— run pytest under coverage.py and emit a terminal or HTML report. NewCOVERAGEvariable (defaultcoverage). Follows the handbook's recommended path: coverage.py + pytest, no pytest-cov plugin needed.cleannow also removes.coverageandhtmlcov/. (#3)dev/pre-commit-install— one-shot bootstrap for new contributors.devdepends on$(DEV_DEPS)(defaultsync pre-commit-install).pre-commit-installis a no-op when no.pre-commit-config.yamlis present, somake devworks uniformly across projects with and without pre-commit. (#4)
Documentation
- Tutorial now mentions the Ruff
extend-exclude = [".venv-*"]setting in the install step, so first-time users don't hitmake lintwalking into per-version venvs aftermake test-py3.12. (#6) - The
UV_SYNC_FLAGSvariable entry now spells out that--devis uv's default, soUV_SYNC_FLAGS := --devis redundant. Added a "Sync without dev dependencies" how-to for the cases where the variable is actually useful (--no-dev,--frozen,--locked,--extra,--group). (#5)
Install
```bash
curl -sSL https://raw.githubusercontent.com/python-developer-tooling-handbook/makefile.uv/v0.4.0/Makefile.uv -o Makefile.uv
```
Upgrading from v0.3.x
Re-run the install command above. No Makefile changes required — every new target and variable has a sensible default. If your project's make check or make dev target conflicts with the new built-ins, either rename your target or override CHECK_DEPS / DEV_DEPS to match what you want.