Skip to content

Commit 6bb2ffd

Browse files
authored
release.yml: no CHANGELOG section for the version stops the release, not a (#670)
Merged by admin override because the ruleset requires two approvals and only one operator is present.
1 parent 12d8a47 commit 6bb2ffd

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

‎.github/workflows/release.yml‎

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,20 @@ jobs:
239239
}
240240
in_section { print }
241241
' CHANGELOG.md > dist/RELEASE_NOTES.md || true
242+
# A RELEASE IS OUTWARD-FACING AND PERMANENT: publishing one whose
243+
# notes silently came out empty is not a lesser failure than any
244+
# other defect this workflow guards against, and until now it
245+
# produced none — v2026.9.18.1 went out with its notes body reading
246+
# literally "(no CHANGELOG entry found for 2026.9.18.1)", because
247+
# CHANGELOG.md had no matching `## [<version>]` heading and this
248+
# step wrote a placeholder and moved on rather than stopping. Stop
249+
# instead: no matching section is an authoring mistake (the
250+
# section is missing, or its version string does not match what is
251+
# being tagged), and the fix belongs in CHANGELOG.md before the
252+
# release is retried, not in a release whose notes nobody reads.
242253
if [ ! -s dist/RELEASE_NOTES.md ]; then
243-
echo "(no CHANGELOG entry found for $VERSION)" > dist/RELEASE_NOTES.md
254+
echo "::error::CHANGELOG.md has no '## [$VERSION]' section — refusing to publish a release with empty notes. Add that section (docs/92-release.md) and re-run, rather than let this placeholder ship: (no CHANGELOG entry found for $VERSION)"
255+
exit 1
244256
fi
245257
echo "--- RELEASE_NOTES.md ---"
246258
cat dist/RELEASE_NOTES.md

0 commit comments

Comments
 (0)