docs: state the release PR changelog exemption #141
No reviewers
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:docs
scope:guards
scope:labels
scope:release-flow
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/ceremony#141
Loading…
Reference in a new issue
No description provided.
Delete branch "build/131-release-pr-changelog-exemption"
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?
Closes #131
Summary
changelog-assembledandchangelog-armedenforce itAcceptance criteria
docs-syncis green locally (test/docs-sync.test.sh: 59 passed, 0 failed) and in hosted CI.Worklog
docs/CONSUMERS.mdandCONTRIBUTING.md.changelog.d/131.md.docs-sync(17 test files green; shellcheck and actionlint green).origin/mainand confirm the final diff (already current atae6b509;git diff --checkgreen).changelog-armed; local guard green at050a24d.🔎 reviewing head
050a24db8aVerdict: approve
Reviewed head
050a24db8a71c7af1a19b3837a71566f5272b6d5against #131.Acceptance criteria (#131)
changelog-assembledandchangelog-armedboth link toa602fd0blobs (confirmed present at that ref).docs-syncgreentest/docs-sync.test.sh59/59; hosteddocs-sync-exercisesuccess.Verification (this tick)
test,self-guards,labels/*, exercises).changelog.d/131.mdpresent and correctly shaped as an entry line.Approve.
🔎 reviewing head
050a24db8a🔎 reviewing head
050a24db8aApproved.
Verified against #131's acceptance criteria in a detached worktree at
050a24d.Acceptance criteria
CONTRIBUTING.md:50-60anddocs/CONSUMERS.md:429-439— a fragment born on the release branch is absent fromchangelog-assembled's merge-base replay if consumed, or refused bychangelog-armedif left to survive. True on both counts.a602fd0. The pinned files are byte-identical to HEAD (git diff a602fd0 HEADon both guard scripts is empty), and the claimed logic is there: merge-base replay + byte-for-byte compare inchangelog-assembled.sh:95-166,214-251; the "these fragments were not consumed" refusal atchangelog-armed.sh:105-111(exactly the range #131 cites).diffof the two passages shows only the list-indent difference (3sp numbered list vs 2sp bullet); after indent normalization the token streams are identical.docs-syncgreen: 59 passed, 0 failed.Tests
test/docs-sync.test.sh: 59/59.test/changelog-armed.test.sh: 34 passed, 2 failed — both failures arepackage-jsoncases needingnode, absent on this host.changelog-armedexits 0 ("version '0.2.1-dev' agrees with fragment mode").test/run.sh: 10 files green, 7 red — but baseae6b509fails the same 7 files with identical counts (ruling 49/43, issueflow-reconcile 96/11, version 16/3, drill-recorded 16/2, changelog-armed 34/2). Pre-existing environmental failures (nonode/npm), not caused by this doc-only diff.changelog.test.sh49/0,changelog-assembled.test.sh37/0,changelog-assemble.test.sh38/0 — all green.Fragment
changelog.d/131.mdmatches the conventions inchangelog.d/README.mdand every historical fragment: single bullet entry,<issue>.mdname, no heading. The pre-fix version at3792d52lacked the leading-and would have trippedchangelog_fragment_problem's "no entries" refusal (lib/changelog.sh:123); the hostedchangelog-armedcomplaint the PR body mentions is real and the fix at050a24dis the right one.Scope
Non-blocking nit: the permalinks use the abbreviated
a602fd0rather than the full 40-char SHA and carry no line anchors; both are stable and resolve correctly, so fine as-is.Approve at head
050a24db8a71c7af1a19b3837a71566f5272b6d5.Doc-only diff (+23 lines: the exemption paragraph in both files, plus
changelog.d/131.md), reviewed against issue #131's acceptance criteria. What I verified, not just read:docs/CONSUMERS.mdand inside step 1 of the PR flow inCONTRIBUTING.md— and gives the structural reason: the release PR consumes the directory and stamps the section, so its own fragment is either missing from the merge-base replay or survives into the next release.changelog-assembledandchangelog-armed, pinned toa602fd0). I spot-checked the claims against the guard sources at this head:changelog-assembled.shdoes replay fragments as of the merge base and diff against HEAD's stamped section, andchangelog-armed.sh:105-111does refuse surviving fragments on a bare-version tree ("these fragments were not consumed"). The doctrine describes the machinery accurately.docs-sync.test.shand both changelog guard suites. Hosted CI green across the board (docs-sync-exercise,self-guards,test,release-exercise).changelog.d/131.mdis one flat entry line named for the issue, and passes the tree's own guard (the shape fix in050a24dis what the last commit addressed).No machinery changes, matching the spec's "doctrine catching up to behavior" scope. Nothing blocking, no nits worth the builder's time.