Skip to content

ci: generate release body and update changelog#523

Merged
grunch merged 1 commit into
mainfrom
fix/release-notes
Mar 9, 2026
Merged

ci: generate release body and update changelog#523
grunch merged 1 commit into
mainfrom
fix/release-notes

Conversation

@grunch

@grunch grunch commented Mar 9, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Chores
    • Improved release automation workflow with enhanced changelog and release notes generation, including better categorization and formatting of release information across multiple documentation files.

@coderabbitai

coderabbitai Bot commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

The release workflow is restructured to generate three separate markdown files: RELEASE_NOTES.md for categorized release information, RELEASE_BODY.md for the GitHub release body, and CHANGELOG.md for changelog documentation. The workflow now includes distinct steps for each output and commits all updated files to the main branch.

Changes

Cohort / File(s) Summary
Release Workflow Enhancement
.github/workflows/release.yml
Renamed changelog generation step; added separate generation logic for RELEASE_NOTES.md (categorized content with full changelog link), CHANGELOG.md (structured prepended entry with headers and version info), and RELEASE_BODY.md (formatted release description with install instructions); updated commit and push steps to include both CHANGELOG.md and version files; replaced release body source from RELEASE_NOTES.md to RELEASE_BODY.md.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 Three files hop with purpose now,
CHANGELOG, NOTES, and BODY bow,
Each with structured tales to tell,
In the release dance they dwell. 📝✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'ci: generate release body and update changelog' clearly and accurately describes the main changes: introducing release body generation and changelog updates in the CI workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/release-notes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.github/workflows/release.yml (1)

131-137: Fragile assumption on header line count.

The tail -n +7 assumes the CHANGELOG.md header is exactly 6 lines. While the workflow controls this header, any manual edits to the header block could cause content loss or duplication.

Consider adding a comment documenting this assumption, or using a marker-based approach:

♻️ Optional: Marker-based approach
           # Append previous changelog content (skip the header block — first 6 lines)
+          # NOTE: Header is regenerated each release (lines 1-6). Line 7+ contains version entries.
           if [ -f CHANGELOG.md ]; then
             tail -n +7 CHANGELOG.md
           fi

Alternatively, use a marker pattern for more robustness:

# Skip to first version entry
if [ -f CHANGELOG.md ]; then
  sed -n '/^## \[v/,$p' CHANGELOG.md
fi
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/release.yml around lines 131 - 137, The workflow uses a
fragile fixed-line skip (tail -n +7) when appending CHANGELOG.md into
CHANGELOG_NEW.md which can lose or duplicate content if the header length
changes; replace this with a marker-based extraction (e.g., locate the first
version heading such as lines matching the pattern used for releases) or at
minimum add an explicit comment explaining the 6-line header assumption; update
the block that reads CHANGELOG.md (the tail -n +7 invocation and surrounding if
[ -f CHANGELOG.md ] check that writes to CHANGELOG_NEW.md) to use a robust
sed/grep extraction that starts from the first version entry (or document the
assumption) and keep the mv CHANGELOG_NEW.md CHANGELOG.md step unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/workflows/release.yml:
- Around line 131-137: The workflow uses a fragile fixed-line skip (tail -n +7)
when appending CHANGELOG.md into CHANGELOG_NEW.md which can lose or duplicate
content if the header length changes; replace this with a marker-based
extraction (e.g., locate the first version heading such as lines matching the
pattern used for releases) or at minimum add an explicit comment explaining the
6-line header assumption; update the block that reads CHANGELOG.md (the tail -n
+7 invocation and surrounding if [ -f CHANGELOG.md ] check that writes to
CHANGELOG_NEW.md) to use a robust sed/grep extraction that starts from the first
version entry (or document the assumption) and keep the mv CHANGELOG_NEW.md
CHANGELOG.md step unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 866da929-c401-4158-bb89-fd018563cfbd

📥 Commits

Reviewing files that changed from the base of the PR and between 361ea3a and 44cb531.

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

@grunch grunch merged commit fdb706a into main Mar 9, 2026
2 checks passed
@grunch grunch deleted the fix/release-notes branch March 9, 2026 20:53
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