Skip to content

Source release notes from CHANGELOG.md instead of hardcoded bullets#30

Merged
teknogeek0 merged 1 commit into
mainfrom
fix/release-notes-from-changelog
May 27, 2026
Merged

Source release notes from CHANGELOG.md instead of hardcoded bullets#30
teknogeek0 merged 1 commit into
mainfrom
fix/release-notes-from-changelog

Conversation

@teknogeek0
Copy link
Copy Markdown
Collaborator

Summary

build_release.sh was generating RELEASE_NOTES.txt with a hardcoded "What's New" block that hadn't been updated since v1.0.4. Because the ${VERSION} interpolation was dynamic, the staleness was invisible — until v1.2.0 shipped with v1.0.4's bullet list as its release notes (the release workflow uses this file as the GitHub release body).

The live v1.2.0 release notes have been hand-corrected via gh release edit. This PR prevents the same drift from happening on v1.3.0+.

Approach

Extract the matching version's section from CHANGELOG.md with awk:

awk -v ver="${VERSION}" '
    $0 ~ "^## \\[" ver "\\]" { capture=1; next }
    capture && /^## \[/ { exit }
    capture { print }
' CHANGELOG.md

Falls back to a "See CHANGELOG.md" pointer when no matching section is found.

Test plan

  • Happy path: bash build_release.sh (reads VERSION=1.2.0) — RELEASE_NOTES.txt "What's New" matches the [1.2.0] section of CHANGELOG.md
  • Fallback path: bash build_release.sh 9.9.9 — prints a warning and falls back to "See CHANGELOG.md for changes in this release."

build_release.sh was generating RELEASE_NOTES.txt with a hardcoded
"What's New" block that hadn't been updated since v1.0.4. The dynamic
\${VERSION} interpolation made the staleness invisible until v1.2.0
shipped with v1.0.4's bullet list. The release workflow consumes this
file as the GitHub release body, so the stale text became public.

Now extracts the matching version's section from CHANGELOG.md using
awk. Falls back to a CHANGELOG.md pointer when no matching section is
found (e.g. missing file, version mismatch).
@teknogeek0 teknogeek0 merged commit 2784631 into main May 27, 2026
7 checks passed
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.

2 participants