simple-modern-uv v0.5.0 refreshes the reviewed uv toolchain, makes lock validation
portable across machines, and turns new-project, selective-adoption, migration, and
template-update work into explicit coding-agent workflows.
What’s Changed
Features
- Generated projects now keep project-owned uv policy in
uv.toml, require the reviewed
uv 0.12 minor line, and apply the 14-day dependency cool-off to standard workflows. - The portable simple-modern-uv skill now routes agents through four distinct workflows:
start a project, adopt selected practices, migrate fully, or update a template-managed
project. - Generated README and AGENTS guidance explain how to appoint a coding agent and choose
selective, core-toolchain, or full template conformance without inventing Copier
lineage. - Template CI now tests the update path from the preceding release, answer overrides,
three render variants, rendered-document formatting, generated-project behavior, and
skill integrity.
Fixes
- CI and publishing use
uv sync --lockedso stale project metadata fails instead of
being silently installed from an outdated lock. - Make and GitHub Actions select
uv.tomlexplicitly, preventing user- or system-level
uv settings from leaking intouv.lock. - Ruff 0.16 remains scoped to Python with
extend-exclude = ["*.md"]; Flowmark retains
ownership of Markdown formatting and byte-sensitive Markdown fixtures. - The uv guard now requires
>=0.12.0,<0.13, matching the reviewed and pinned CI
toolchain. - Eligible pins and floors advance to uv 0.12.0, Copier 9.17.0, Flowmark 0.3.2, Ruff
0.16.1, codespell 2.4.3, Hatchling 1.31.0, setup-uv v9.0.0, and checkout v7.0.1.
Guidelines and Content
- A frozen v0.5.0 supply-chain manifest records the cutoff, hashes, attestations,
advisory results, action SHAs, deferrals, and validation gates. - The uv research explains relevant changes through 0.12, including the decision to
retain Hatchling and uv-dynamic-versioning. - Changed durable documentation follows the Common Documentation Guidelines, with a
maintainer index and clearer ownership between current guidance, research, and
historical records.
Documentation
- The maintainer runbook now defines the full release sequence: exact source-main CI,
downstream validation, GitHub Release/tag creation, tag verification, and downstream
public-tag recording. - Agent references document conflict reconciliation, project-specific adaptations,
legacyUV_NO_CONFIGcleanup, and common failures. - Release checks state the GitHub CLI capability they need and the one-release update
path guaranteed by CI.
Upgrading
- Install an official uv release in the supported
>=0.12.0,<0.13range before running
generated-project commands.
Standalone Astral installations can useuv self update; package-manager
installations should use their package manager. - Run the documented Copier update from a clean branch and review the complete diff.
Remove obsoleteUV_NO_CONFIGworkarounds after adoptinguv.tomland explicit
UV_CONFIG_FILEsettings. - Ruff 0.16 includes Markdown by default.
The template now excludes*.md; remove that exclusion only when Ruff should
intentionally format Python fences in Markdown. - uv versions older than 0.9.17 may fail while parsing the relative duration
"14 days"
before they can display the required-version message.
Upgrade uv first.
The final source commit passed all six template-repository CI jobs, including three
rendered variants, rendered-document formatting, and the v0.4.0 update path.
Flowmark PR #69 validated the public
v0.5.0 tag in a customized template-managed project: 463 pytest cases, 133 golden
cases, build and uv audit, and GitHub CI across Python 3.10–3.14 all passed.
The release was additionally gated on the downstream simple-modern-uv-template project,
whose exact main build passed across Python 3.11–3.14 before publication.
Full commit history:
https://github.com/jlevy/simple-modern-uv/compare/v0.4.0 … v0.5.0