Skip to content

fix(release): emit CHANGELOG section as GitHub release body#143

Merged
saurabhjain1592 merged 2 commits intomainfrom
fix/release-notes-from-changelog
Apr 19, 2026
Merged

fix(release): emit CHANGELOG section as GitHub release body#143
saurabhjain1592 merged 2 commits intomainfrom
fix/release-notes-from-changelog

Conversation

@saurabhjain1592
Copy link
Copy Markdown
Member

Summary

Mirrors axonflow-openclaw-plugin#47 (already merged, verified on v1.3.1 release — release page now carries the full CHANGELOG section inline).

Before this change, every tagged release produced a generic "install + see CHANGELOG.md for details" body. Anyone landing on the GitHub release page (from README links, registry listings that pull GitHub release descriptions, or external citations) had to click through to see what changed. Worse, a missing CHANGELOG section would still publish to the registry first and only fail at the GitHub release step — leaving a partial release with no release page and no retry path on the same version.

Changes

  • New preflight job runs FIRST with no dependencies. Validates the CHANGELOG.md section exists for the target version (awk extracts the section between ## [X.Y.Z] and the next ## [), fails loudly with an actionable error if missing, builds the final release body (install block + CHANGELOG content), and uploads as artifact.
  • Publish / release jobs depend on preflight. Missing CHANGELOG → preflight fails → zero side effects across any registry. No partial releases possible.
  • Final release body = install block prepended to the extracted CHANGELOG section, delivered via body_path from the artifact.
  • SHA-pinned actions/upload-artifact and actions/download-artifact to match repo convention.

Test plan

  • YAML sanity check (yaml.safe_load)
  • awk extraction pattern verified locally against CHANGELOG format this repo uses
  • Merge + tag next patch to observe preflight+artifact flow end-to-end (or trigger manually via a test tag)

…ht validation

The previous release workflow published a generic "install + see CHANGELOG"
body for every tagged release. Anyone landing on the release page (from
README links, registry listings that pull GitHub release descriptions, or
blog posts citing the tag) had to click through to see what changed.
Worse, a missing CHANGELOG section would still publish to the registry
first and only fail at the GitHub release step — leaving a partial
release with no release page and no retry path on the same version.

Changes:

- New preflight job runs FIRST with no dependencies. Validates the
  CHANGELOG.md section exists for the target version (awk extracts the
  section between "## [X.Y.Z]" and the next "## ["), fails loudly with
  an actionable error if missing, builds the final release body (install
  block + CHANGELOG content), and uploads it as an artifact.

- Publish/release jobs now depend on preflight. Missing CHANGELOG
  section → preflight fails → zero side effects. No partial releases.

- Final release body = install block prepended to the extracted CHANGELOG
  section, delivered via body_path from the artifact.

- Pinned actions/upload-artifact and actions/download-artifact to SHAs
  matching the repo's SHA-pinning convention where present.

Matches the pattern established in axonflow-openclaw-plugin#47.
@saurabhjain1592 saurabhjain1592 merged commit 0251bcf into main Apr 19, 2026
12 checks passed
@saurabhjain1592 saurabhjain1592 deleted the fix/release-notes-from-changelog branch April 19, 2026 12:15
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.

1 participant