Accumulate release notes in a version-less NEXT.md (#58) - #59
Merged
Merged
Conversation
The convention dp-grpc adopted in osprey-dcs/dp-grpc#156. A ticket that changes anything user-visible adds its section to doc/release-notes/NEXT.md in the same PR; the file is renamed to rel-<version>.md at the cut, so the version (1.17.0 or 2.0.0) is decided once, there, and nothing written earlier guesses it. - NEXT.md: dp-grpc's preamble, sections for #56 and #30 (all that is user-visible since rel-1.16.0), and a "Cutting the release" checklist with this repo's two tag-bearing steps: the verification section and the Full Changelog line. - check-release-notes.py: in NEXT.md a verification heading, a sigstore verify command, a --cert-identity, or a Full Changelog line is an error, since each names the tag. Only the real forms count, because the checklist names all four in prose; the self-test pins both. - CLAUDE.md, plan/tickets/58/plan.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bqq8uGF2zNbHW9FU3vfj7Q
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
No unresolved issues were identified.
Review effort: Lite
Findings: None
What changed in this PR
Introduces a version-less NEXT.md workflow for accumulating release notes before a release version is chosen.
Changes:
- Adds the
NEXT.mddraft and release-cut checklist. - Extends release-note validation for draft restrictions.
- Documents the workflow and records the implementation plan.
| File | Description |
|---|---|
plan/tickets/58/plan.md |
Documents the design and implementation. |
doc/release-notes/NEXT.md |
Adds the accumulating release-notes draft. |
CLAUDE.md |
Documents the release workflow. |
.dev/tools/check-release-notes.py |
Validates release notes and draft restrictions. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…utable (#58 review) - Add `## Installing` to the draft. It names no version, and step 4 said to "keep" a section the draft never had, so the next release would have shipped without it; step 4 now inserts the verification section above it, and step 5 puts the changelog line after it. - Step 9 gives the command to recover the draft from main: by then steps 1, 2, and 7 have moved, rewritten, and deleted the text it said to reuse. - Preamble: name the tag-bearing parts in prose inside backticks, since the checker treats an unquoted --cert-identity followed by a word, or a line starting with the verify command, as real. - ci.yml: the release-notes step comment covers NEXT.md's inverted check. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bqq8uGF2zNbHW9FU3vfj7Q
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #58
Plan:
plan/tickets/58/plan.md.Adopts the
doc/release-notes/NEXT.mdconvention from osprey-dcs/dp-grpc#156. Release notes now build up during a cycle instead of being written in one sitting at the cut.Why
release.ymllooks updoc/release-notes/<tag>.mdexactly, so notes saved under a guessed version are stranded, and the tag that does ship fails its notes check.With
NEXT.md, the version is written down in one place: thegit mvtorel-<version>.mdat the cut.What's here
doc/release-notes/NEXT.md(new):NEXT.md..dev/tools/check-release-notes.py: inNEXT.md, the four parts that name the tag are errors: a## Verifying these artifactsheading, asigstore verify identitycommand, a--cert-identity, and a**Full Changelog**line. Only the real forms count, because the checklist mentions all four in prose. The self-test checks both directions: the checklist's prose must pass, and each real form must fail.NEXT.mdis now part of the default run; it isn't required to exist.CLAUDE.md: "Cutting a release" describes the workflow. A ticket with user-visible changes adds itsNEXT.mdsection in the same PR.release.ymlis unchanged: it never reads any file except the one named for the tag, soNEXT.mdcan't be published.Verification
rel-1.16.0.mdandNEXT.md.NEXT.mdwith a Full Changelog line appended;NEXT.mdrenamed torel-1.17.0.mdwithout the checklist done (10 problems, from the missing verification section onward).OK: 107 snippets.🤖 Generated with Claude Code
https://claude.ai/code/session_01Bqq8uGF2zNbHW9FU3vfj7Q