What you get, and why¶
A generated project is opinionated so you can start writing code immediately.
Tooling¶
uv — one fast tool for environments, dependencies, builds, and publishing.
noxuses it as its backend.Ruff — linter and formatter, with a broad rule set (bugbear, simplify, pathlib, perflint, comprehensions, and more).
mypy
--strict— the authoritative type checker, plus ty as a fast secondary check.pydoclint — keeps Google-style docstrings honest.
pytest with
pytest-xdist(parallel) andpytest-randomly(random order), and a 100% coverage gate.nox sessions tie it together; Sphinx (shibuya theme) builds the docs.
Optional compiled extensions (mypyc)¶
Choosing extension=mypyc compiles your typed Python to C extensions with
mypyc for a speed boost. The build backend switches to
setuptools, per-platform wheels are built automatically with cibuildwheel, and a
tests_compiled nox session exercises the compiled build. The default (extension=none) is pure
Python on a Hatchling backend.
Hardened CI/CD¶
Every GitHub Action is pinned to a commit SHA (Dependabot keeps them current), with least-privilege
permissions:andpersist-credentials: false.zizmor and actionlint lint the workflows (pre-commit + CI).
Release: trusted PyPI publishing (OIDC, no tokens), Sigstore signing, and SLSA build provenance attestations.
Link checking runs weekly and non-blocking — a flaky external link never blocks a merge.
License¶
uv-forge is distributed under the MIT license; generated projects use whichever license you select (MIT, Apache-2.0, or GPL-3.0).