Repository navigation
changelog: give v0.29.0 its section, and refuse a tag without one (#58) - #59
Merged
Merged
Conversation
…cula-go#58) v0.29.0 shipped with no `## [0.29.0]` section: its work sat under [Unreleased], and that section said the release held "no library behaviour change". It does: call.Adopted adopts the KEM key a `sealed_required` refusal carries and reseals the same call, and `git grep -c Adopted` is empty at v0.28.0 and v0.29.0-rc.1 and non-zero at v0.29.0. The section now exists, records the behaviour change and why the earlier text was wrong, and carries the three A0 additions the tag did ship. release.yml gains a `changelog` job that publish needs: the tag's version, read from the tag name, must have a `## [<version>]` heading in CHANGELOG.md, or the release stops before publishing. The gate is proved on the tag's own tree (v0.29.0 refused) and on this one (0.29.0 and 0.28.0 accepted, 0.30.1 refused). No retag: v0.29.0 stays as it is; the record is fixed on master. Refs #58 Co-Authored-By: Claude Code <noreply@anthropic.com>
… corrects (macula-go#58) Mercurius r=1, two required findings, both on the new Changed entry. 1. It said calls only. v0.29.0 adopts the key on a stream open too: stationlink reopens a refused clear stream sealed and replays what a client stream sent (stationlink/stream.go adopt, stream_open.go:51-61), and pool/call.go:779-791 sets Reseal and Adopted for it. The entry now names a call or a stream open of any mode, and the tests that hold each one: call, server stream and client stream in the e2e tests, bidi in gosealed a0. 2. It called the wrong text "an earlier draft". It was not a draft: it is what the v0.29.0 tag shipped, under [Unreleased]. A reader of the tag's own CHANGELOG has to recognise the sentence being corrected, so it now says so. Refs #58 Co-Authored-By: Claude Code <noreply@anthropic.com>
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.
Refs #58
Purpose (reliability): a reader of a release tag can find what changed in it.
Today v0.29.0 has no
## [0.29.0]section — its work sits under[Unreleased], and that section says the release held "no library behaviour change". That was wrong:pool/call.goaddscall.Adopted, which adopts the KEM key asealed_requiredrefusal carries and reseals the same call (pool/adoption_e2e_test.goholds the path end to end).git grep -c Adoptedis empty atv0.28.0andv0.29.0-rc.1, non-zero atv0.29.0.This PR
## [0.29.0] - 2026-10-28exists, with a### Changedentry forcall.Adoptednaming the wrong claim and the evidence that corrects it, then the three A0### Addedentries the tag did ship (re-vendored wire 1.0 vectors,seal.kem_key, the four interop programs).[Unreleased]is empty again.changelogjob, added topublish'sneeds: the tag's version, read from the tag name, must have a## [<version>]heading in CHANGELOG.md or the release stops before publishing.Proof of the gate
Run against two trees with the step's own logic (
^## \[<version>\]):0.29.0REFUSED,0.28.0accepted — the bug the gate exists for;0.29.0,0.29.0-rc.1,0.28.0,0.27.0accepted; a made-up0.30.1refused.release.ymlparses (yaml.safe_load), jobs in orderlibmacula, sealed-interop, tests, release-guard, changelog, publish, andpublish.needsnames all six.No retag. v0.29.0 stays as it is; the record is fixed on master, and the gate holds from the next tag on.
🤖 Generated with Claude Code