Repository navigation
ci(release): fall back to generated notes, and add the changelog rotation script - #237
Open
Nic-dorman wants to merge 2 commits into
Open
Nic-dorman wants to merge 2 commits into
Nic-dorman wants to merge 2 commits into
Conversation
…tion script The release workflow ships the CHANGELOG section matching the tag's base version, but nothing at the train cut ever rotates `[Unreleased]` into that section, so every tag from ant-cli-v0.3.7 to ant-cli-v0.3.12-rc.1 shipped the "No changelog entry was recorded" placeholder. - scripts/rotate-changelog.sh X.Y.Z moves `[Unreleased]` into `## [X.Y.Z] - <date>`, for the cut tooling to run on the rc branch. It is idempotent across rc re-cuts and never fails on an empty `[Unreleased]`. - With no matching section, the workflow now publishes GitHub's generated list of PRs merged since the previous stable ant-cli tag instead of the placeholder, still with the `::warning::` annotation. The placeholder is kept only for when that API call fails. - CLAUDE.md says where entries go and who writes the versioned heading. Refs V2-1107. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sees it CLAUDE.md imports it with @AGENTS.md, so Claude Code still loads it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 of 7 tasks
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.
Every
antrelease since 0.3.6 has shipped with empty notes. #183 made the release workflow ship theCHANGELOG.mdsection matching the tag's base version. Since #187 (V2-1142), a missing section publishes a placeholder instead of failing. But nothing at the train cut ever rotates[Unreleased]into## [X.Y.Z]. So all nine tags fromant-cli-v0.3.7to today'sant-cli-v0.3.12-rc.1(five of them stable) shipped "No changelog entry was recorded for …".This PR fixes the process in two places. The content backfill for 0.3.7–0.3.12 is a separate PR.
1.
scripts/rotate-changelog.sh X.Y.Z [date] [changelog]: the rotation step the cut tooling never had. For the RM: please wire it into the rc.1 cut, on the rc branch, before tagging. It moves the[Unreleased]entries unchanged under a new## [X.Y.Z] - <date>and keeps an empty[Unreleased]heading above it.X.Y.Z-rc.Nand drops the suffix.[X.Y.Z]already filled and does nothing.## [X.Y.Z]heading is replaced, not duplicated.[Unreleased]. It warns instead, and the workflow fallback below covers that release.[X.Y.Z]and[Unreleased]have entries (entries landed after the rotation), so a human places them. Per V2-1142, the cut tooling should report that, not abort on it.2. Workflow fallback. With no matching section, the notes are now GitHub's generated list of PRs merged since the previous stable
ant-cli-v*tag (releases/generate-notes). Before, they were the placeholder. A missed rotation now ships the right list of changes rather than none. The::warning::annotation stays, and the placeholder remains only as the last resort if that API call fails. The previous tag is the highest stable tag below the base version, soX.Y.Z-rc.NandX.Y.Zboth list the whole train. Nothing about the success path changes.3. New
AGENTS.md: user-facing PRs add entries under[Unreleased]; only the cut writes versioned headings. It lives inAGENTS.mdso every coding agent sees it, not only Claude;CLAUDE.mdimports it with@AGENTS.md.Open question for reviewers: where should the changelog rule live? This PR puts it in a new root
AGENTS.md, imported byCLAUDE.md, so non-Claude agents see it too. The catch is that an agent which readsAGENTS.mdinstead ofCLAUDE.md(Codex, for example) would get only this rule and none of the build, architecture or PR guidance. Options:AGENTS.md. Put the rule in the README's## Developmentsection, which humans and agents both read, with a one-line pointer fromCLAUDE.md.AGENTS.md, and in a follow-up PR make it the complete guide (moveCLAUDE.mdinto it, leavingCLAUDE.mdas@AGENTS.md).Precedent: saorsa-transport, saorsa-core and evmlib already keep a full
AGENTS.mdnext toCLAUDE.md, the two cross-linked with the same core content (saorsa-transport also hasGEMINI.md). V2-1640 documented its exemptions in both files. ant-client, ant-node and ant-protocol have onlyCLAUDE.md. That precedent points to B, and anAGENTS.mdholding only this rule would match none of the other repos. I'll change it to whichever you pick.Linear issue
Closes V2-1107
Risk tier
Compatibility
AGENTS.mdand a one-line import inCLAUDE.mdchange.Semver impact
Test evidence
rotate-changelog.shagainst copies ofmain'sCHANGELOG.md:0.3.12-rc.1inserts only## [0.3.12] - 2026-10-22under## [Unreleased]. The diff is exactly the two added lines.[Unreleased]after the rotation makes it exit 2 with instructions.[Unreleased]makes it warn and exit 0.## [0.3.7]heading is replaced rather than duplicated.0.3.1does not match an existing## [0.3.12].0.3.12-rc.1 → ant-cli-v0.3.11,0.3.11 → ant-cli-v0.3.10,0.3.7 → ant-cli-v0.3.6and0.3.0 → ant-cli-v0.2.11.0.1.1has no previous stable, so it gets the placeholder.gh api …/releases/generate-notesforant-cli-v0.3.11..ant-cli-v0.3.12-rc.1returns feat(read): spread hot-record reads across the close group, and back off briefly from nodes that decline #225, feat(upload, manifest): report the uploaded file's SHA-256 and record it on manifest entries (V2-1564) #229, feat(browser): export manifests and recover pointer payments #230, chore(release): promote rc-2026.10.2 #231 and chore(deps): move rustls to 0.23.46 for four RustSec advisories #232.ant-cli-v*tag that lacks its section.New dependency
none
ADR
n/a
Mitigation / rollback
Revert. The workflow goes back to placeholder notes, and the script is unused until the cut tooling calls it.
🤖 Generated with Claude Code