REGRESSION: #1045's --diff-filter=d makes the rolling cut PR fail fragment-coverage — releases are blocked #1051
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#1051
Loading…
Add table
Add a link
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?
#1045(merged90f30ba4, 2026-08-28) excludes D-status entries from the fragment change set. The rolling cut PR deletes fragments as its entire purpose, so its change set is now empty andfragment-coveragerefuses it asforgotten. The next release cannot cut.Measured on the live rolling PR
Why the fix was right and still did this
#1033is correct: a PR that deletes a fragment and adds nothing must not be graded fragment-present. The rolling cut PR is the one legitimate member of that population — deleting fragments and writingCHANGELOG.mdis exactly whatrt prepdoes.The predicate cannot distinguish "deleted a fragment and provided nothing" from "consumed the fragments into the CHANGELOG" — and the second is the release mechanism itself.
Candidate fixes, not ranked
CHANGELOG.mdas the cut shape, and grade it presentrt prepwrite theno-changelogdeclaration into the rolling PR body⚠️ The first is the only one that describes the actual invariant. The other two encode where the cut happens rather than what a cut is.
Acceptance criteria
fragment-coveragewithout a per-branch exemption. PR #1052 implements the cut-consumed state from deleted fragment paths plusCHANGELOG.mdchanged, and its cut-signal arm passes.CHANGELOG.mdchange — still FAILS, per#1033. The delete-only andCHANGELOG.md-only arms both fail as required.Closeout
Release-toolkit PR #1052 was merged at exact merge commit
bee4b31cfeb4874b1ca528c4ba611b1378bb96f0; its reviewed PR head was856228182eb4c428371872bca8a6006a7bdf73e7. Official Lookout review 6158 was exact-bound and current, and Forgejo CI was 25/25 successful.The merged contract requires
CHANGED_FILESandPR_BODY;DELETED_FILESandCHANGELOG_CHANGEDare optional metadata. When absent, the optional fields provide no cut signal and preserve old-caller behavior; a present malformedCHANGELOG_CHANGEDvalue refuses. The cut shape is deleted fragments plusCHANGELOG.mdchanged, while delete-only remains forgotten.The merged tree verifies the cut, delete-only,
CHANGELOG.md-only, absent-optional-input, malformed-value, and workflow-mutation controls. Go test/vet/build, Bats 146/146, ShellCheck, fragment-check, and diff checks passed. All three acceptance criteria are discharged.Refs frankenbit/release-toolkit#1033 and frankenbit/release-toolkit#1052.