docs(changelog): the changelog re-arm entry (#67)
This commit is contained in:
parent
971f33096d
commit
a43d91e7f9
1 changed files with 34 additions and 0 deletions
34
CHANGELOG.md
34
CHANGELOG.md
|
|
@ -66,6 +66,40 @@ on the way to cutting its first release, and this file starts there.
|
|||
|
||||
### Fixed
|
||||
|
||||
- **A release no longer disarms the changelog under the PRs still in
|
||||
flight** (#67) — the ceremony stamps `## Unreleased` to
|
||||
`## X.Y.Z — YYYY-MM-DD` and stops. Every PR authored before that merge
|
||||
wrote its entry under `## Unreleased`; with the heading gone, git files
|
||||
the entry under whatever now occupies the position — the release that
|
||||
already shipped. There is no conflict, because the stamped heading and
|
||||
the incoming entry never overlap textually, so the one signal an author
|
||||
relies on ("git told me to look") is absent exactly when the outcome is
|
||||
wrong. It happened here: #60's #58 entry landed inside `## 0.1.0` at
|
||||
`67386b4` and was repaired two minutes later by `0ff520c`; #54 would
|
||||
have filed a **BREAKING** entry the same way. The published release body
|
||||
is never affected — `release.yml` extracts it from the tree at the tag,
|
||||
before the late merges land — so the only file that drifts is the one
|
||||
only maintainers read, which is why it survived a whole release batch
|
||||
unnoticed. Fixed in both halves the failure has. The ceremony now
|
||||
**re-arms**: it adds a fresh empty `## Unreleased` above the section it
|
||||
just stamped, so a late merge has somewhere correct to land with no
|
||||
author action. That belongs to the ceremony step in
|
||||
[CONTRIBUTING.md](CONTRIBUTING.md), not to `release.yml` — no workflow
|
||||
has ever touched the heading; the stamping was always by hand, and the
|
||||
`-dev` re-arm the workflow does perform was only ever about `VERSION`.
|
||||
And `test/release.sh` now keys its guard to `VERSION` rather than
|
||||
demanding a literal heading: a stamped top section is legal exactly when
|
||||
`VERSION` is bare, and the moment it carries `-dev` — main, where
|
||||
feature PRs merge — the top section must be `## Unreleased`. That
|
||||
distinguishes the two states the old check collapsed into one, so it
|
||||
catches a disarmed main **without** re-breaking the ceremony's own tree
|
||||
the way the pre-#44 guard did. The rule is proven against seven
|
||||
constructed `VERSION` + `CHANGELOG.md` pairs, including a re-armed
|
||||
ceremony whose top section is legitimately empty — the state the old
|
||||
non-empty assert would have rejected. box and cast carry the same flow
|
||||
and the same exposure (`heavy-duty/box#96`); cast is disarmed on `main`
|
||||
as of this writing and is getting the sibling fix.
|
||||
|
||||
- **A `host=no` box with an `incus` group no longer hands out the bare
|
||||
socket** (#58) — `users apply` consulted the `host=` trait only when group
|
||||
`incus` was ABSENT (die on `host=yes`, skip on `host=no`). When the group
|
||||
|
|
|
|||
Loading…
Reference in a new issue