Skip to content

ci(release): lead the release body with its changelog section - #925

Merged
jeffreylouden merged 1 commit into
mainfrom
claude/great-darwin-yognig
Sep 27, 2026
Merged

jeffreylouden merged 1 commit into
mainfrom
claude/great-darwin-yognig

Conversation

@jeffreylouden

@jeffreylouden jeffreylouden commented Sep 27, 2026 •

Copy link
Copy Markdown
Member

Description

Studio now asks before it installs a catalog update (existential-engineering/racks#3658, AUREO-1352). The prompt card shows a short what's-new list. Studio builds that list from the GitHub release body, joined across every version the user is about to skip, and keeps only changeset lines (- <sha>: summary).

Until now the release body was GitHub's generated "What's Changed" list, which is maintainer PR titles such as catalog-import-merge: marshall (new=36 …). Studio deliberately ignores those, so the card had no list to show.

This PR adds one step before Create GitHub Release. It extracts this version's section from CHANGELOG.md (the lines between ## <version> and the next ## ) into dist/release-notes.md and passes that file as body_path. generate_release_notes: true stays, so the action puts the changelog section first and appends the generated PR list and "Full Changelog" link after it for maintainers.

  • The version reaches awk through env:, never through ${{ }} inside run:.
  • If there's no matching section, the step writes an empty file and emits a warning. The release still publishes with the generated notes, as it does today.
  • dist/release-notes.md isn't in files:, so it isn't uploaded as a release asset.

Checked the extraction against the current CHANGELOG.md for v3.68.0. It returns the whole 3.68.0 section (9 changeset entries) and stops at ## 3.67.0. Studio's parser turns that into, for example, "Refresh Marshall: 36 new, 0 discontinued, 94 updated."

Past releases keep their current bodies. Editing a published release's body on GitHub changes what Studio shows on its next check, so a bad line can be fixed after release without a workflow change.

Type of Change

  • New software/plugin entry
  • New hardware entry
  • New manufacturer entry
  • Update to existing entry
  • Bug fix
  • Schema or script change

Checklist

  • I have run pnpm validate and it passes (no data changed)
  • YAML files follow the existing format (no data changed)
  • Manufacturer exists (or I'm adding it in this PR) (n/a)
  • Categories and formats are from the schema files (n/a)
  • Identifiers are accurate, if provided (bundle IDs, etc.) (n/a)
  • Any hp I added or changed names its source in the description (n/a)

Additional Notes

This workflow change has no data change, so it carries no changeset (changeset.yml only requires one for data/*.yaml). The next release after merge is the first to use the new body.

🤖 Generated with Claude Code

https://claude.ai/code/session_011fP3oaCegEv3nsGYanvaod


Generated by Claude Code

Summary by CodeRabbit

  • Release Process
    • New releases now include the matching version’s changelog entry in the release notes when available, alongside automatically generated notes.
    • If no matching changelog entry is available, the release process reports a warning.

Studio reads the catalog release body before offering an update and
lists the changeset summaries it finds there. The generated notes are
PR titles, so the body now starts with this version's CHANGELOG.md
section and keeps the generated list after it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011fP3oaCegEv3nsGYanvaod
@changeset-bot

changeset-bot Bot commented Sep 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 1a3251b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions github-actions Bot added the ci Changes to CI/CD workflows label Sep 27, 2026
@coderabbitai

coderabbitai Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: existential-engineering/catalog/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 982cff4a-c6a7-413b-9f4f-8701ddf25092

📥 Commits

Reviewing files that changed from the base of the PR and between af4b938 and 1a3251b.

📒 Files selected for processing (1)
  • .github/workflows/release.yml

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 4 reviews per hour.


Walkthrough

When no Changesets PR is pending and the version tag does not exist, the release workflow extracts the matching section from CHANGELOG.md into dist/release-notes.md. The GitHub Release action uses that file as its body.

Changes

Release notes

Layer / File(s) Summary
Extract and publish release notes
.github/workflows/release.yml
The workflow extracts the matching version section from CHANGELOG.md and warns if the output is empty. The GitHub Release action uses dist/release-notes.md as its body. Generated release notes remain enabled.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 1a325

Release notes should publish as intended, including generated notes when no changelog section matches.

Architecture Summary

Architecture risk: 🔵 Low · up to 1a325

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/workflows/release.yml: Adds a step, gated on no pending Changesets and a nonexistent version tag, that extracts the matching version’s changelog section up to the next ## heading. It passes the version through the environment rather than interpolating it into the shell command, and warns if extraction produces an empty file.
  • observed — Modified behavior in .github/workflows/release.yml: The release action now reads its body from dist/release-notes.md; the previous configuration relied on the action’s generated release notes.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: updating the release workflow to lead the GitHub Release body with the relevant changelog section.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@jeffreylouden
jeffreylouden merged commit ee0cafb into main Sep 27, 2026
7 checks passed
@jeffreylouden
jeffreylouden deleted the claude/great-darwin-yognig branch September 27, 2026 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Changes to CI/CD workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants