changelog-body-check misses a repeated entry: a section with every fragment entry doubled passes all nine checks #1509
Labels
No labels
bump
major
bump
minor
bump
patch
kind
bug
kind
chore
kind
docs
kind
epic
kind
feature
loop/paused
mirror-drift
priority
critical
priority
high
priority
low
priority
medium
size
L
size
M
size
S
size
XL
status
blocked
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
frankenbit/release-toolkit#1509
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
changelog-body-checkcheck 6 ("duplicates") grades two things: duplicate## [vX.Y.Z]headings across the whole CHANGELOG, and duplicate###headings inside the newest section (check6DuplicateHeaders,internal/gates/changelog_body_check.go). It never compares entries. A section in which every entry appears twice passes.Measured
On
main@7bfd0ba(2026-10-02), I ranrt changelog-body-checkon the section #1487 produced before its fix, with every fragment entry doubled:All nine checks PASS, rc=0. Check 6 reports
no duplicate version sections in whole CHANGELOG.md; no duplicate ### Section headers in newest section, which is accurate about its two scopes and silent on entries.Why it matters
#1490 fixed one producer,
recover-pending-cut. Nothing grades the output, so any other path that composes an entry twice ships doubled release notes with every gate green.[Unreleased]and in a fragment.MergeSectionsconcatenates without dedup, and #1490 deliberately keeps one copy per source (TestFoldBackExceptKeepsTheUnreleasedCopyOfADuplicate), so the doubled section re-composes.rt prep→MirrorCutGates→ComposeVerify→ChangelogBodyCheck. So a fix to check 6 guards both the rolling PR and the cut.Acceptance criteria
None.sentinels, blank lines and indented continuation lines are not entries.main(the doubled section above passes today) and green after the change, and the same section is refused by the prepare-time mirror (MirrorCutGates).Open for the PR to decide: FAIL or WARN. A repeated entry is never intended in a release section, which argues for FAIL, the same verdict check 6 gives a repeated
###heading.