Skip to content

release: generate GitHub Release notes from the compiled CHANGELOG section - #126

Merged
sumitake merged 1 commit into
mainfrom
dev/claude/release-notes-arch-neutral
Aug 20, 2026
Merged

release: generate GitHub Release notes from the compiled CHANGELOG section#126
sumitake merged 1 commit into
mainfrom
dev/claude/release-notes-arch-neutral

Conversation

@sumitake

Copy link
Copy Markdown
Owner

Outcome

GitHub Release notes are now generated from the release's own compiled CHANGELOG.md section (operator direction 2026-08-19), replacing the hardcoded one-line boilerplate that went stale — v6.1.1's notes still said "Darwin-arm64 native runtime" on the first dual-architecture release.

Change

  • scripts/extract_changelog_section.py: extracts one version's section from the compiled changelog. Grammar anchored to build-changelog.py output (### agent-collab <version> heading, word-boundary guard so 6.1.1 can't match 6.1.10, first-match-wins because historical duplicate headings exist deeper in the file). Fails closed on a missing section, empty body, or non-semver input.
  • release.yml: NOTES = one-line mode summary (activation wording now architecture-neutral: "for every architecture in the shipped runtime manifest") + the extracted section, composed via printf. Extraction runs before gh release create, so failure blocks publication instead of shipping empty notes. cut_release.py already refuses to tag with out-of-sync fragments, so the section is guaranteed present — the extractor is defense in depth.
  • 9 unit tests including a CLI run against the real repository CHANGELOG.

Post-merge (separate, editable metadata only): published releases' notes backfilled via gh release edit using the same extractor; tags and assets untouched.

Verification

Both suites 177 + 380 OK; release-consistency OK; export-safety SAFE; workflow YAML parses; git diff --check clean.

Compliance trace

author: claude
standing_directives: operator direction 2026-08-19 (release notes = changelog description); reliable/simple/elegant baseline; Tier-2 process
tier: 2
cross_check: PROCEED (round 1 of 1) — verbatim "VERDICT: PROCEED", no concerns (execution receipt request_sha256 3793e0bcecdc5099…)
post_condition: next release's notes carry its compiled changelog section; extraction failure blocks publication; published notes backfilled
mcp_coverage_gap: NONE
plugin_affected: NONE (release tooling only; no packaged content or version change)
readme_refresh_status: README unaffected
contributor_rights: OWNER-AUTHORED
operator_reserved: no

…ction

The hardcoded one-line NOTES boilerplate went stale (still 'Darwin-arm64'
on the first dual-architecture release). Notes are now the release's own
compiled CHANGELOG section behind a fail-closed extractor; the activation
summary line is architecture-neutral.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sumitake
sumitake merged commit 0a5d0eb into main Aug 20, 2026
19 checks passed
@sumitake
sumitake deleted the dev/claude/release-notes-arch-neutral branch August 20, 2026 01:23
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