Skip to content

chore: categorize auto-generated release notes#1608

Open
jeffspahr wants to merge 3 commits intokagent-dev:mainfrom
jeffspahr:release-notes-preview
Open

chore: categorize auto-generated release notes#1608
jeffspahr wants to merge 3 commits intokagent-dev:mainfrom
jeffspahr:release-notes-preview

Conversation

@jeffspahr
Copy link
Copy Markdown

@jeffspahr jeffspahr commented Apr 1, 2026

Summary

  • Adds .github/release.yml to categorize auto-generated release notes, surfacing features and bug fixes above dependency updates
  • Adds .github/workflows/conventional-label.yml to automatically label PRs based on conventional commit prefixes in the title (feat:enhancement, fix:bug, docs:documentation, test:testing)
  • Dependencies are placed in their own section at the bottom so human contributions are more prominent
  • No changes needed to the release workflow — works with the existing generate_release_notes: true in tag.yaml

Before: All PRs listed in a flat "What's Changed" list (71% dependabot noise in v0.8.3)
After: PRs grouped into Features, Bug Fixes, Documentation, Testing, Dependencies, and Other Changes

How labels get applied

Source Label Mechanism
feat: in PR title enhancement conventional-label.yml (new)
fix: in PR title bug conventional-label.yml (new)
docs: in PR title documentation conventional-label.yml (new)
test: in PR title testing conventional-label.yml (new)
Dependabot PRs dependencies dependabot.yml (existing)
Files in design/ enhancement-proposal label-pull-requests.yml (existing)

Previews

This PR implements the flat-section approach:
https://github.com/jeffspahr/kagent/releases/tag/v0.8.3

An alternative with dependencies collapsed into an expandable <details> block is also available for comparison:
https://github.com/jeffspahr/kagent/releases/tag/v0.8.3-collapsed

The collapsed approach would require additional post-processing in the release workflow since .github/release.yml doesn't natively support collapsible sections. We can switch to that later if preferred.

Test plan

  • Previewed both release note formats on fork
  • Verify conventional-label workflow triggers on a test PR

Copilot AI review requested due to automatic review settings April 1, 2026 05:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds .github/release.yml to configure GitHub's auto-generated release notes functionality. It categorizes pull requests into six categories (Features, Bug Fixes, Documentation, Testing, Dependencies, and Other Changes) based on their labels, allowing human contributions to be more prominent by placing dependency updates in a separate section. The configuration integrates with the existing generate_release_notes: true setting in the tag.yaml workflow without requiring any workflow modifications.

Changes:

  • Adds a new .github/release.yml configuration file that categorizes release notes by PR labels
  • Defines exclusion rules for duplicate, invalid, wontfix, and stale labels
  • Establishes six release note categories with corresponding label mappings
  • Uses the wildcard "*" catch-all label for uncategorized changes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Categorize auto-generated release notes to surface features and bug
fixes above dependency updates.

Signed-off-by: Jeff Spahr <spahrj@gmail.com>
@jeffspahr jeffspahr force-pushed the release-notes-preview branch from 84af909 to 0f29684 Compare April 1, 2026 05:49
Signed-off-by: Jeff Spahr <spahrj@gmail.com>
Copy link
Copy Markdown
Contributor

@EItanya EItanya left a comment

Choose a reason for hiding this comment

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

I’m not sure we’re diligent enough with labels for this right now. What do you think?

@jeffspahr
Copy link
Copy Markdown
Author

The main immediate win is actually with Dependabot - all 7 ecosystem configs in dependabot.yml already apply the dependencies label, so dependency bumps will automatically get their own section instead of cluttering the release notes alongside human contributions. If you look at the last release it hides the actual enhancements among a sea of dependabot bumps.

For everything else, the "*" wildcard catch-all means unlabeled PRs still show up under "Other Changes" - nothing gets lost. And since the labeler workflow (actions/labeler@v6) is already wired up, we can incrementally expand auto-labeling as needed. The config is only additive with zero downside. I can fast follow with some auto labeler enhancements too.

Adds a workflow using bcoe/conventional-release-labels to automatically
label PRs based on conventional commit prefixes in the title (feat: →
enhancement, fix: → bug, docs: → documentation, test: → testing).
This feeds directly into the release.yml categories for auto-generated
release notes.

Signed-off-by: Jeff Spahr <spahrj@gmail.com>
@jeffspahr
Copy link
Copy Markdown
Author

I went ahead and added auto labeling based on conventional commits to this PR.

Let me know what you think @EItanya.

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.

3 participants