Thanks to visit codestin.com
Credit goes to github.com

Skip to content

chore(release): dedupe changelog (type-only categories)#371

Open
eldara-cruncher wants to merge 1 commit into
mainfrom
chore/dedupe-changelog-categories
Open

chore(release): dedupe changelog (type-only categories)#371
eldara-cruncher wants to merge 1 commit into
mainfrom
chore/dedupe-changelog-categories

Conversation

@eldara-cruncher
Copy link
Copy Markdown
Collaborator

Problem

The release changelog lists high-priority and breaking PRs twice — once under "‼️ High Priority Release" / "⚡ Breaking API Changes" and again under their type section ([Feature]/[Bug Fixes]/...).

Root cause

release-drafter (v7.3.0 categorize-pull-requests.ts) pushes a PR into every category whose labels intersect the PR's labels — intentional, with an inline source comment saying so. There is no per-category exclude-labels, no first-match, no precedence (upstream issue #811); global exclude-labels removes a PR from the whole changelog. The only dedupe mechanism is mutually-exclusive label data driving categories.

The A (type) / B (urgency) / C (breaking) label groups are orthogonal and check_labels requires one of each per PR, so any B2/C1 PR matched its highlight category and its A-type category → duplicated.

Fix

Drop the B2-high-priority and C1-breaking-change categories; categorize off the mutually-exclusive A-type (+ D0) labels only (group A is {A0,A1,A2,A3,D0}, exactly one per PR → perfect partition). Each PR appears exactly once. Section titles unchanged. No code/tooling change; breaking-ness is conveyed by the version/RC.

Trade-off (accepted): no dedicated "Breaking" section — a breaking PR appears once under its type. A self-populating Breaking section would require the mono-label/autolabeler pattern (out of scope).

Validation

Changelog path is tag-triggered only (not CI-validatable). YAML validated locally; categories = [UI]/[Feature]/[Bug Fixes]/[Technical]/[Dependencies]. First live exercise is the next tag.

🤖 Generated with Claude Code

release-drafter places a PR in EVERY matching category by design
(v7.3.0 categorize-pull-requests.ts; no per-category exclude,
first-match, or precedence — upstream issue #811). The
B2-high-priority and C1-breaking-change categories are orthogonal
to the A-type axis, so high-priority/breaking PRs were emitted
twice — once in their highlight section, once under their type.

Drop the B2/C1 categories; key categorization off the
mutually-exclusive A-type (and D0) labels only, so each PR appears
exactly once. Section titles kept verbatim. Breaking-ness is
conveyed by the version/RC.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant