docs(changelog): one line per entry, and a pass over the whole file #100
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:bootstrap
scope:coolify
scope:db
scope:docs
scope:drill
scope:installer
scope:labels
scope:platform
scope:runner
scope:users
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/rig#100
Loading…
Reference in a new issue
No description provided.
Delete branch "docs/changelog-one-line"
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?
A house rule, and the pass that makes the file obey it.
The rule: every changelog entry is one line. Say what changed, cite the
issue, stop. The reasoning — why it was wrong, how it was found, what it cost,
what it implies — belongs in the PR body and the commit message, which is where
anyone chasing it already goes.
CHANGELOG.mdanswers one question: what isdifferent in this version.
Documented as a new
## Changelog entriessection in CONTRIBUTING.md, directlyabove
## Releasing. Same rule, same words, in all three sibling repos.The pass
CHANGELOG.md: 852 lines → 72. Every entry in every section, including theshipped ones.
Before:
After:
What was preserved, and how it was checked
##heading added, removed, altered or reorderedgit diff origin/main -- CHANGELOG.md | grep -E '^[-+]## 'grep -c '^- 'before/aftertest/release.shtest/cli.shchangelog-monotonic.sh origin/mainThe heading row is load-bearing:
changelog-monotonic.shfails the build if a## X.Y.Zheading disappears, andchangelog_section()extracts by exactheading match.
One structural fix taken along the way
## Unreleasedcarried two separate### Fixedblocks — one at the top ofthe section, one at the bottom, with
### Addedand### Changedin between.They are now a single
### Fixed, entry order preserved (first block's six,then second block's three). Legal markdown either way, but it meant the section
listed fixes, changed subject, and then listed more fixes.
Two judgement calls
BREAKING:markers kept on all four breaking entries —--class→--root-door(#77), the-boxtenant role suffix (#76), the-servermachine role suffix (#76), and 0.2.0's
rig bootstrap(#51). This releaseis the reason rig goes to 0.3.0 rather than 0.2.1.
(#39, #41)survives intact where #41 was a genuine co-primary; aheavy-duty/box#88cited three paragraphs into a body does not.Consequence worth stating
The GitHub release bodies already published for 0.2.0 and 0.1.0 were generated
from the old prose, so they no longer match this file. Re-pushing them from the
rewritten sections is queued as a follow-up once this lands.
Verdict: Approve — I agree with this as-is.
Why
CONTRIBUTING.mdgets the matching## Changelog entriessection.##heading churn; 27→28 bullets (+ the rule);BREAKING:markers kept on the four real breaks; single merged### Fixedunder Unreleased (was two blocks split by Added/Changed) is a net readability win, entry order preserved.@
d69ecd1✅ Approved — I agree with all of this, no concerns.
Independently re-checked the invariants from the diff: no
##heading lines changed, entry lines 27 → 28 (+1 for the rule), and the single removed### Fixedline is precisely the declared merge of the duplicate blocks under## Unreleased— the right structural fix to take along. All fourBREAKING:markers survive the rewrite (checked-/+pairs for #77, both #76 entries, #51), which matters given they justify 0.3.0 over 0.2.1. The sampled one-liners are faithful and keep their refs, including cross-repo ones.— automated review by
claude-bot-andresmgsl· heavy-duty-review-botVerdict: I agree with everything and have no additional feedback. The rewrite preserves release structure, references, and all four breaking markers; the duplicate Fixed grouping is consolidated without reordering entries, and all checks pass.
@danmt — round 1 closed, all three bots approving with no changes requested. Handing this over.
What it does
Adopts the one-line changelog rule, documents it in
CONTRIBUTING.mdas## Changelog entriesabove## Releasing(same words as box#147 and cast#136), and applies the full pass:CHANGELOG.md852 lines → 72.Round history
One round, three approvals, zero changes requested, no nits:
grok-bot-andresmgsl### Fixeda net readability win;BREAKING:markers kept on the four real breaksclaude-bot-andresmgslBREAKING:markers survive by checking-/+pairs, which matters because they justify 0.3.0 over 0.2.1codex-bot-andresmgslVerification
##heading added/removed/altered/reorderedgit diff origin/main -- CHANGELOG.md | grep -E '^[-+]## 'grep -c '^- 'test/release.shtest/cli.shchangelog-monotonic.sh origin/mainOne structural fix taken along the way
## Unreleasedcarried two separate### Fixedblocks — one at the top of the section, one at the bottom, with### Addedand### Changedbetween them. They are now a single### Fixed, entry order preserved (first block's six, then second block's three). Legal markdown either way, but the section listed fixes, changed subject, then listed more fixes. Flagging because it is a structural change beyond a pure reword.For your judgement
Secondary refs buried mid-essay were dropped, headline refs all kept.
(#39, #41)survives intact where #41 was a genuine co-primary; aheavy-duty/box#88cited three paragraphs into a body does not. If you want cross-repo companions retained they go back as comma lists without breaking the one-line rule.Consequence, queued as follow-up
The published GitHub release bodies for 0.2.0 and 0.1.0 were generated from the old prose and no longer match this file. Re-pushing them from the rewritten sections is queued once this lands.
Ordering
#100 (this)→#101 release: 0.3.0(draft until this merges). rig's stack is two deep — no fix PR needed here, rig's release suite already accepted the ceremony tree.