Skip to content

πŸ”§ chore(ci): auto-stamp release-notes heading + add Full Changelog link#388

Merged
s-b-e-n-s-o-n merged 1 commit into
mainfrom
ci/release-notes-stamp-and-compare-link
May 22, 2026
Merged

πŸ”§ chore(ci): auto-stamp release-notes heading + add Full Changelog link#388
s-b-e-n-s-o-n merged 1 commit into
mainfrom
ci/release-notes-stamp-and-compare-link

Conversation

@s-b-e-n-s-o-n
Copy link
Copy Markdown
Contributor

Hardens the release-cut.yml "Generate release notes from changelog" step so a cut can never publish an unstamped heading, and adds a compare link to every release.

Background

The release-notes step copied the CHANGELOG section verbatim. For pre-releases cut before the CHANGELOG [Unreleased] section was renamed to its versioned heading, the fallback leaked a literal ## [Unreleased] heading β€” no version, no date β€” into the published GitHub Release. This hit rc.17, rc.18, rc.19, and rc.25 (all four release bodies have since been corrected by hand).

Changes

  • Auto-stamp the heading. When the [Unreleased] fallback is used, the section heading in the generated notes is rewritten to ## [<version>] β€” <date>. A cut can no longer ship an unstamped heading. CHANGELOG.md itself is still stamped separately at release time β€” this only touches the published release body.
  • Full Changelog compare link. Every release's notes now open with **Full Changelog**: …/compare/<prev>...<this>, with the previous tag resolved from the newest existing release (the current tag isn't pushed yet at notes-generation time).

Scope

Workflow-only, future releases only β€” no existing release history is rewritten. Verified: actionlint/qlty, zizmor (no findings), and the full pre-push gate pass.

The release-cut "Generate release notes" step copied the CHANGELOG
section verbatim. For pre-releases cut before the CHANGELOG was
stamped, the [Unreleased] fallback leaked a literal "## [Unreleased]"
heading (no version, no date) into the published GitHub Release β€”
this hit rc.17, rc.18, rc.19, and rc.25.

- When the [Unreleased] fallback is used, rewrite the section heading
  in the generated notes to "## [<version>] β€” <date>" so a cut can
  never again publish an unstamped heading. CHANGELOG.md itself is
  still stamped separately at release time.
- Prepend a "Full Changelog" compare link (previous tag β†’ this tag)
  to every release's notes, resolved from the newest existing release.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
drydock-demo Ready Ready Preview, Comment May 21, 2026 6:56pm
drydock-website Ready Ready Preview, Comment May 21, 2026 6:56pm

@codecov
Copy link
Copy Markdown

codecov Bot commented May 21, 2026

Codecov Report

βœ… All modified and coverable lines are covered by tests.

πŸ“’ Thoughts on this report? Let us know!

Copy link
Copy Markdown
Member

@biggest-littlest biggest-littlest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

βœ… Reviewed β€” release-cut hardening. Auto-stamp prevents the [Unreleased] heading leak; Full Changelog link is a clean addition. zizmor green. Approving.

Copy link
Copy Markdown
Member

@ALARGECOMPANY ALARGECOMPANY left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

βœ… Second approval β€” workflow-only, no history rewrite, all gates green. LGTM.

@s-b-e-n-s-o-n s-b-e-n-s-o-n merged commit f7267a8 into main May 22, 2026
25 checks passed
@s-b-e-n-s-o-n s-b-e-n-s-o-n deleted the ci/release-notes-stamp-and-compare-link branch May 22, 2026 12:33
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.

3 participants