Merge pull request #141 from codex-bot-andresmgsl/build/131-release-pr-changelog-exemption

docs: state the release PR changelog exemption
This commit is contained in:
Daniel Marin 2026-07-24 14:13:45 +01:00 committed by GitHub
commit 4bb6ee8f12
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 23 additions and 0 deletions

View file

@ -46,6 +46,17 @@ already proven:
`### Added` / `### Changed` / `### Fixed` headings inside the fragment). `### Added` / `### Changed` / `### Fixed` headings inside the fragment).
Never edit `CHANGELOG.md` for an entry — the release PR assembles the Never edit `CHANGELOG.md` for an entry — the release PR assembles the
section from the fragments (#112). section from the fragments (#112).
The sole exception is the release PR: it writes no fragment. It consumes
the directory and stamps the section, so a fragment it created would be
absent from
[`changelog-assembled`](https://github.com/heavy-duty/ceremony/blob/a602fd0/actions/changelog-assembled/changelog-assembled.sh)'s
merge-base replay if consumed, or refused by
[`changelog-armed`](https://github.com/heavy-duty/ceremony/blob/a602fd0/actions/changelog-armed/changelog-armed.sh)
if left to survive into the next release. A change that must ship inside
the release PR therefore ships without an entry. If it can wait and wants
an entry, land it as an ordinary PR before the release PR, then rebase and
re-assemble the release.
2. **When it's ready**: mark ready-for-review and request the whole panel. 2. **When it's ready**: mark ready-for-review and request the whole panel.
3. **Rounds are answered whole.** Wait until every reviewer has a verdict in, 3. **Rounds are answered whole.** Wait until every reviewer has a verdict in,
then answer the entire round in a **single reply**, push the fixes, and then answer the entire round in a **single reply**, push the fixes, and

1
changelog.d/131.md Normal file
View file

@ -0,0 +1 @@
- The changelog rule now explains why release PRs write no fragment and how entry-worthy changes land instead (#131).

View file

@ -425,6 +425,17 @@ CONTRIBUTING may sharpen it, but this is the floor the guards assume:
working the same issue (#112 D2). Never an edit to `CHANGELOG.md`: the working the same issue (#112 D2). Never an edit to `CHANGELOG.md`: the
release PR assembles the section release PR assembles the section
([below](#assembling-a-release-section)). ([below](#assembling-a-release-section)).
The sole exception is the release PR: it writes no fragment. It consumes
the directory and stamps the section, so a fragment it created would be
absent from
[`changelog-assembled`](https://github.com/heavy-duty/ceremony/blob/a602fd0/actions/changelog-assembled/changelog-assembled.sh)'s
merge-base replay if consumed, or refused by
[`changelog-armed`](https://github.com/heavy-duty/ceremony/blob/a602fd0/actions/changelog-armed/changelog-armed.sh)
if left to survive into the next release. A change that must ship inside
the release PR therefore ships without an entry. If it can wait and wants
an entry, land it as an ordinary PR before the release PR, then rebase and
re-assemble the release.
- **The fragment is the prose, not a description of it** (#112 D3): the - **The fragment is the prose, not a description of it** (#112 D3): the
exact lines that will be published — no front-matter, no `## ` heading exact lines that will be published — no front-matter, no `## ` heading
(that one is the assembler's to write). `changelog-armed` refuses a (that one is the assembler's to write). `changelog-armed` refuses a