Skip to content

ci: group the generated release notes by category - #47

Merged
lalitadithya merged 1 commit into
NVIDIA:mainfrom
dims:ci/release-notes-config
Aug 7, 2026
Merged

ci: group the generated release notes by category#47
lalitadithya merged 1 commit into
NVIDIA:mainfrom
dims:ci/release-notes-config

Conversation

@dims

@dims dims commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Problem

release.yml already sets generate_release_notes: true, so GitHub lists every merged pull request. It lists them flat. A dependency bump reads the same as a bug fix, and a reader has to scan the whole list to find what changed for them.

Change

.github/release.yml, 38 lines with comments. GitHub groups the list it already generates. No change to how a release is cut, no new tooling, no new workflow.

Sections: New Features, Bug Fixes, Documentation, Dependency Updates, Other Changes.

The limitation, stated up front

Categories match on pull request labels. That is the only thing GitHub's generator can match on — it cannot read a commit or title prefix, so the Conventional Commit prefixes this project already uses do not help here.

Most human pull requests carry no labels today, so they land in Other Changes. That is exactly where they land now, so nothing gets worse, and labelling a pull request starts paying immediately.

Two sections work from day one: Dependency Updates, because Dependabot applies the dependencies label itself, and Other Changes.

Why dependency bumps are grouped rather than excluded

The obvious move is to drop them from the notes entirely, which is what aicr does via GoReleaser's changelog filters. I did not, because a consumer deciding whether to upgrade wants to see them. The problem was never that dependency bumps are published — it was that they were interleaved with everything else. A section at the bottom fixes that without hiding information.

Verification

  • Parses, and every key checked against the documented schema (changelog.exclude.{labels,authors}, changelog.categories[].{title,labels,exclude}).
  • All four referenced labels — enhancement, bug, documentation, dependencies — already exist in the repository.
  • The "*" catch-all is last, so it only claims what nothing above matched.
  • make verify passes.

Possible follow-up

If you want the categories to fill themselves, a small workflow could apply enhancement, bug or documentation from the Conventional Commit prefix already in the pull request title. Titles are consistent enough for it — the last 20 merged pull requests break down as 6 fix, 4 build, 4 docs, 2 chore, 2 feat, 1 ci, 1 test. Not included here because it is a separate change with its own trade-offs.

@dims
dims force-pushed the ci/release-notes-config branch from 6d19d49 to 8bfc49d Compare August 7, 2026 15:37

@ndipebot ndipebot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

nit

Comment thread .github/release.yml
@dims
dims force-pushed the ci/release-notes-config branch 4 times, most recently from 1cb835f to 3b38e4c Compare August 7, 2026 16:59
release.yml already sets generate_release_notes: true, so GitHub lists every
merged pull request. It lists them flat, which means a dependency bump reads
the same as a bug fix and a reader has to scan the whole list to find what
changed for them.

Add .github/release.yml so GitHub groups that list. No change to how a
release is cut, no new tooling, no new workflow.

Categories match on pull request labels, which is the only thing GitHub's
generator can match on. It cannot read a commit or title prefix, so the
conventional-commit prefixes this project already uses do not help here.

That has a consequence worth stating plainly: most human pull requests carry
no labels today, so they will land in Other Changes. That is exactly where
they land now, so nothing gets worse, and labelling a pull request starts
paying immediately. Two sections work from day one: Dependency Updates,
because Dependabot applies the dependencies label itself, and Other Changes.

Dependency bumps are grouped rather than excluded. A consumer deciding
whether to upgrade wants to see them; the problem was never that they are
published, it was that they were interleaved with everything else.

Every label referenced here already exists in the repository, and the
category order puts the "*" catch-all last so it only claims what nothing
above matched.

Signed-off-by: Davanum Srinivas <dsrinivas@nvidia.com>
@dims
dims force-pushed the ci/release-notes-config branch from 3b38e4c to 8b9e46b Compare August 7, 2026 17:30
@lalitadithya
lalitadithya enabled auto-merge (squash) August 7, 2026 17:42
@lalitadithya
lalitadithya merged commit 738a9af into NVIDIA:main Aug 7, 2026
8 checks passed
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