From 6d70a37e698a48209065066734e481d1f9557140 Mon Sep 17 00:00:00 2001 From: Joseph Hughes Date: Mon, 3 Aug 2026 17:19:55 -0500 Subject: [PATCH] ci(release): use only the new version's changelog entry as release notes The whole changelog file was passed as the release notes, so every release page repeated the history of the ones before it. Take the entry for the version being released and stop at the next heading, and fail the job if that entry is missing. --- .github/workflows/release.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f50bb8a..1867ef8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -285,10 +285,24 @@ jobs: # are read from the repository rather than passed between runs version="${{ github.event.pull_request.head.ref }}" version="${version#v}" + + # the release notes are this version's entry only, not the whole + # changelog, so take everything from its heading up to the next one + awk -v ver="$version" ' + $0 ~ "^## \\[" ver "\\]" {inside = 1; print; next} + inside && /^## \[/ {exit} + inside {print} + ' changelog/CHANGELOG.md > release-notes.md + if [ ! -s release-notes.md ]; then + echo "No '## [$version]' entry found in changelog/CHANGELOG.md." + exit 1 + fi + cat release-notes.md + gh release create "v$version" \ --target main \ --title "mf6adj $version" \ - --notes-file changelog/CHANGELOG.md \ + --notes-file release-notes.md \ --draft \ --latest