Skip to content

changelog: give v0.29.0 its section, and refuse a tag without one (#58) - #59

Merged
rgfaber merged 2 commits into
masterfrom
titan/58-changelog
Oct 29, 2026
Merged

rgfaber merged 2 commits into
masterfrom
titan/58-changelog

Conversation

@rgfaber

@rgfaber rgfaber commented Oct 29, 2026

Copy link
Copy Markdown
Contributor

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.go adds call.Adopted, which adopts the KEM key a sealed_required refusal carries and reseals the same call (pool/adoption_e2e_test.go holds the path end to end). git grep -c Adopted is empty at v0.28.0 and v0.29.0-rc.1, non-zero at v0.29.0.

This PR

  1. CHANGELOG.md — ## [0.29.0] - 2026-10-28 exists, with a ### Changed entry for call.Adopted naming the wrong claim and the evidence that corrects it, then the three A0 ### Added entries the tag did ship (re-vendored wire 1.0 vectors, seal.kem_key, the four interop programs). [Unreleased] is empty again.
  2. .github/workflows/release.yml — a changelog job, added to publish's needs: 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>\]):

  • the CHANGELOG as tagged at v0.29.0: 0.29.0 REFUSED, 0.28.0 accepted — the bug the gate exists for;
  • this branch's CHANGELOG: 0.29.0, 0.29.0-rc.1, 0.28.0, 0.27.0 accepted; a made-up 0.30.1 refused.

release.yml parses (yaml.safe_load), jobs in order libmacula, sealed-interop, tests, release-guard, changelog, publish, and publish.needs names 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

rgfaber and others added 2 commits October 29, 2026 02:14
…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>
@rgfaber
rgfaber merged commit 6db8dc8 into master Oct 29, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant