Skip to content

ci(release): build the GitHub Release body from the CHANGELOG section#27

Merged
lance0 merged 1 commit into
masterfrom
fix-release-notes-from-changelog
Jun 21, 2026
Merged

ci(release): build the GitHub Release body from the CHANGELOG section#27
lance0 merged 1 commit into
masterfrom
fix-release-notes-from-changelog

Conversation

@lance0

@lance0 lance0 commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Problem

The release job (release.yml) created the GitHub Release with generate_release_notes: true only — GitHub's bare auto PR-list — and never read CHANGELOG.md. So every release shipped thin notes until someone hand-patched the body with the curated ## [X.Y.Z] section. (v0.5.0 only looked right because I set it by hand during the ship.)

Fix

Add an Extract release notes from CHANGELOG step that pulls the section between the tag's ## [<version>] heading and the next ## [ (validated locally against the 106-line 0.4.0 section — all 5 subsections, no truncation), and feed it as body_path. Keep generate_release_notes: true so GitHub appends its "What's Changed" PR list + full-changelog link below the curated notes — best of both.

Falls back to auto-notes with a ::warning:: if the tag has no CHANGELOG entry.

Notes

  • Takes effect on the next release; v0.5.0's notes are already correct.
  • Closes the "auto-populate the GitHub Release body from the CHANGELOG" roadmap item. A hard CHANGELOG-presence check that fails a tag (vs. warns) is noted as an optional follow-up — it needs its own tag-triggered job since ci.yml only runs on branch pushes.
  • No Rust changed; YAML validated (yaml.safe_load).

The release job used generate_release_notes: true alone — GitHub's bare
auto PR-list — so every release shipped thin notes until someone hand-patched
the body with the curated CHANGELOG section. Add a step that extracts the
"## [<version>]" section (awk between the tag's heading and the next "## [")
into body_path; keep generate_release_notes so GitHub's "What's Changed" PR
list + full-changelog link append below the curated notes. Falls back to
auto-notes with a ::warning:: if the tag has no CHANGELOG entry.

Closes the long-standing 'auto-populate release body from CHANGELOG' roadmap
item. Takes effect next release (v0.5.0's notes were set by hand).
@lance0 lance0 merged commit 14b86c2 into master Jun 21, 2026
4 checks passed
@lance0 lance0 deleted the fix-release-notes-from-changelog branch June 21, 2026 00:47
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