Summary
The release workflow publishes empty release notes and the org-announcement step crashes
with gh: Body can't be blank whenever the release's PRs aren't tagged with the category labels.
Observed on v1.4.4 (run 29935114929):
the GitHub release body was blank, the auto-created repo discussion had only the machine footer, and
the org-mirror step failed (masked by continue-on-error).
Root cause
release.yml builds the release body from mikepenz/release-changelog-builder-action
(steps.gen_changelog.outputs.changelog). Its release_config.json categorizes PRs strictly by
label (fix, bug, kind/feature, …) and the default template emits only categorized PRs.
The v1.4.4 PRs (#285, #286, #287) were unlabeled, so the log shows:
✒️ Wrote 0 categorized pull requests down
→ empty changelog output → blank release body → blank BODY for the org createDiscussion
mutation → Body can't be blank. This recurs for any release whose PRs lack the exact labels.
(Also latent: steps.changelog_reader reads version: ${{ steps.tag_name.outputs.current_version }},
but there is no tag_name step, so that value is always empty; the reader's output is unused.)
Proposed fix
Source the release body from the hand-written CHANGELOG.md section for the tag (the SDK already
keeps a Keep-a-Changelog file, and the announcement should be "grounded in CHANGELOG.md, not the
auto-grouping"), and hard-fail the release if that section is empty so we never publish/announce
a blank body again. Drop the label-dependent mikepenz step and orphaned release_config.json.
Summary
The release workflow publishes empty release notes and the org-announcement step crashes
with
gh: Body can't be blankwhenever the release's PRs aren't tagged with the category labels.Observed on v1.4.4 (run 29935114929):
the GitHub release body was blank, the auto-created repo discussion had only the machine footer, and
the org-mirror step failed (masked by
continue-on-error).Root cause
release.ymlbuilds the release body frommikepenz/release-changelog-builder-action(
steps.gen_changelog.outputs.changelog). Itsrelease_config.jsoncategorizes PRs strictly bylabel (
fix,bug,kind/feature, …) and the default template emits only categorized PRs.The v1.4.4 PRs (#285, #286, #287) were unlabeled, so the log shows:
→ empty
changelogoutput → blank release body → blankBODYfor the orgcreateDiscussionmutation →
Body can't be blank. This recurs for any release whose PRs lack the exact labels.(Also latent:
steps.changelog_readerreadsversion: ${{ steps.tag_name.outputs.current_version }},but there is no
tag_namestep, so that value is always empty; the reader's output is unused.)Proposed fix
Source the release body from the hand-written
CHANGELOG.mdsection for the tag (the SDK alreadykeeps a Keep-a-Changelog file, and the announcement should be "grounded in CHANGELOG.md, not the
auto-grouping"), and hard-fail the release if that section is empty so we never publish/announce
a blank body again. Drop the label-dependent
mikepenzstep and orphanedrelease_config.json.