Repository navigation
Bring the release docs in line with the automated flow - #10
Conversation
An audit of the release docs after v1.10.0 shipped: - RELEASING.md (generated for PyPI libraries) gains "If a step fails": re-running Prepare release, held CI, re-running Release on merge, and re-dispatching publish.yml (or bumping, since PyPI never takes a version twice). "Sanity checks before tagging" becomes "before releasing", since tagging is no longer a manual step. - The fragment template says Prepare release collects fragments. - The README's manual `copier update` gains `--trust`, lists the release workflows among those `v1` delivers, and says how to recover a template release, including a bump-v1 dispatch. - The CHANGELOG preamble and bump-v1.yml said copier reads the version with `git describe`; it uses dunamai, which takes the commit's newest tag by date. The advice (annotate release tags, keep v1 lightweight) stands; the reason is corrected. The preamble also describes releases going through Prepare template release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Fresh-eyes review of the release docs. The direction is right and most claims hold. The dunamai correction is accurate. A few recovery steps would mislead a maintainer, though, and some likely failures aren't covered. Most important first. Findings on this PR1. A re-dispatched publish can't pick up a fix made in the repo. 2. The bump-v1 dispatch command targets the wrong repo from this repo's usual checkout. 3. Failure modes a maintainer is likely to hit that the new section misses.
4. Projects without RELEASING.md get no recovery notes. Apps and unpublished libraries get 5. dunamai tie wording.
Fix: "With both lightweight they tie, and dunamai answers v1". The rest of the explanation is right. copier's 6. CHANGELOG preamble. 7. Hand paths.
8. Small, pre-existing, nearby.
9. Changelog fragment: fine. It quotes no scriv marker (grep finds none). Verified OK
Follow-ups in other repos (not this PR)Generality-Labs/inspect-evals-lint (main at 7790a8c)
Generality-Labs/inspect_dataset (main at 6cb54ee)
Posted by Claude Code on Matt's behalf. |
From the review of the first commit: - RELEASING.md is generated for every project, not only PyPI libraries; the PyPI setup, publish step and publish failures appear only where they apply. Apps and unpublished libraries had no recovery notes. - "If a step fails" now lists every refusal and which ones a re-run clears, the greyed-out Actions setting, a publish waiting for an environment reviewer, main moving under an open release PR, and why a failed publish needs a new release (with a fragment) when the fix is in the repo: dispatching publish.yml rebuilds the code at the tag. - The manual path creates the GitHub release; the bump-v1 recovery command passes -R; the remaining copier update commands gain --trust; the README states the reusable workflows' permissions correctly and lists template-update.yml@v1 among the v1-delivered workflows. - The dunamai tie rule is stated exactly (two lightweight tags give v1), and bump-v1 notes it annotates every release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks. Actioned in 3a51c55:
The follow-ups for inspect-evals-lint and inspect_dataset will be separate PRs after this releases. Posted by Claude Code on Matt's behalf. |
Why
An audit of the release docs after v1.10.0 went out through the new flow, and after inspect-evals-lint 0.10.0 and inspect_dataset 0.5.0 published through it. The repos' own docs are accurate. These gaps and inaccuracies are all in the template.
What changes
RELEASING.md is now generated for every project, not only PyPI libraries. The PyPI setup, the publish step and the publish failures appear only where they apply (3a51c55, from the review):
publish.yml, or bumping if the upload already landed, since PyPI never takes a version twice.template/changelog.d/TEMPLATE.mdsays Prepare release collects fragments.README:
uvx copier update --trust.v1delivers.CHANGELOG preamble and
bump-v1.ymlcomments. Both said copier reads the template's version withgit describe --tags. It reads it through dunamai, which takes the commit's newest tag by date: an annotated tag's date is when it was tagged, and a lightweight tag's is its commit's. I checked this in copier 9.18.2's_template.pyand dunamai's tag sort. The advice stands (annotate release tags, keepv1lightweight); only the reason changes. The preamble also describes releases going through Prepare template release.One fragment.
Review fixes (3a51c55):
-R;copier updatecommand has--trust;v1pin list are corrected;Testing
All three variants render, and their own hooks pass on RELEASING.md, README.md and .copier-answers.yml: an app, a PyPI library, and a library without PyPI. Only the PyPI library gets the publishing parts. Template CI's render step, which now expects RELEASING.md for apps too, and the rendered projects' full hook runs pass locally. The fragment doesn't quote a scriv marker, so Prepare template release will accept it.
🤖 Generated with Claude Code