feat(release): use extracted CHANGELOG notes instead of --generate-notes - #81
Conversation
PUBLISH mode's gh release create used GitHub's own --generate-notes auto-summary, which diverges from the curated notes semantic-release already wrote to CHANGELOG.md during PREPARE mode (CodeRabbit catch, task_1788457898992, deferred to a fast-follow). scripts/extract-release-notes.mjs pulls the released version's section out of CHANGELOG.md and FAILS OPEN by design (boss's requirement): any read/parse failure or empty section exits 1, and the workflow step falls back to --generate-notes rather than ever blocking a publish over a cosmetic notes gap. Byte-identical to the canary (node-datto-rmm#77, murph-reviewed): the regex bug murph caught there (single-# minor/major headings not recognized as section boundaries) is already fixed in this version -- re-validated against this repo's own real CHANGELOG.md before pushing.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughThe release workflow now extracts version-specific notes from ChangesRelease notes publishing
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to Releases now use curated changelog notes when available, while retaining generated GitHub notes as a fallback. No current merge-blocking risk is identified. Sequence Diagram(s)sequenceDiagram
participant ReleaseWorkflow
participant extract_release_notes
participant CHANGELOG
participant GitHubCLI
ReleaseWorkflow->>extract_release_notes: request notes for release version
extract_release_notes->>CHANGELOG: read and parse version section
CHANGELOG-->>extract_release_notes: matching release notes
alt notes are non-empty
extract_release_notes-->>ReleaseWorkflow: extracted notes
ReleaseWorkflow->>GitHubCLI: create release with --notes-file
else extraction fails or notes are empty
extract_release_notes-->>ReleaseWorkflow: exit status 1
ReleaseWorkflow->>GitHubCLI: create release with --generate-notes
end
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
asachs01
left a comment
There was a problem hiding this comment.
Reviewed on behalf of murph (formal approval blocked -- shared wyre-agent-fleet identity can't approve its own PR, same wall as usual).
Confirmed byte-identical (diff-verified, not just visually) to the murph-reviewed canary WYRE-AI/node-datto-rmm#77, which included a real content-correctness fix I found and independently re-verified: the CHANGELOG heading regex now matches both ## (patch) and # (minor/major) headings semantic-release emits, fixing a bug where a minor/major release's notes either failed to extract or bled the wrong section's content (including BREAKING CHANGES) into an adjacent patch's release notes.
LGTM. Needs an actual approving click from Aaron -- this repo's branch protection requires 1 distinct-identity approval and no fleet agent can satisfy that here.
Identical pass following the canary (WYRE-AI/node-datto-rmm#77, murph-reviewed and merged) for task_1788458278413_29823067.
Adds scripts/extract-release-notes.mjs and rewires PUBLISH mode's
gh release createto use--notes-filefrom it instead of--generate-notes, falling back to--generate-noteson any read/parse failure or empty output (fail-open, boss's requirement). Byte-identical diff to the canary, which includes the fix for the single-# minor/major heading bug murph caught in review.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by CodeRabbit
CHANGELOG.mdwhen available.