Skip to content

📝 chore(release): regenerate CHANGELOG.md so the drift gate is green again - #108

Open
konih wants to merge 1 commit into
mainfrom
lane/redmain-f01
Open

📝 chore(release): regenerate CHANGELOG.md so the drift gate is green again#108
konih wants to merge 1 commit into
mainfrom
lane/redmain-f01

Conversation

@konih

@konih konih commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Why

main has been RED since 2026-08-31. This is the fix.

Root cause

CHANGELOG.md was never re-rendered after dfdae69's own CI-docs commit landed
on main. A fresh git-cliff render therefore carries exactly one entry that
the committed CHANGELOG.md does not have:

### Other
- ci(docs): stop uploading the Pages artifact on pull requests

hack/release/verify-changelog.sh compares the two and exits 1 on that single
line of drift.

Blast radius — one drift, two red jobs

That one missing entry reds both:

  • the verify job's changelog drift gate (AUD-S02 — REQ-AUD-S02-02), which
    runs task changelog-verify directly; and
  • the release-exitgate job's AUD audit exit gate (AUD-S18), whose full
    task check reaches the same changelog-verify stage (stage 10).

They are two paths into one script, so one regeneration clears both.

The fix

A pure regeneration. One file, 3 insertions / 0 deletions — the missing
### Other section and its single entry. No script, workflow, or config change.

Why the subject line is :memo: chore(release):

cliff.toml:119 skips exactly that pattern:

{ message = "^:memo: chore\\(release\\):|^:wrench: chore\\(release\\):", skip = true },

and it is ordered before the ^:memo:|^docs Documentation rule, so the skip
wins. That is load-bearing here, not cosmetic: a regeneration commit with any
other subject would itself render into the next changelog and become the new
missing entry, re-creating the very drift it is fixing. This subject makes the
fix a fixed point.

Reviewer note — a green PR here is NOT proof

Both jobs this PR repairs are skipped on the pull_request event:
.github/workflows/verify.yaml:153-155 guards the drift gate with
if: github.event_name != 'pull_request', and release-exitgate carries the
same condition at line 160. This PR will go green whether or not the fix works.

The required checks here are a regression check only. The real proof is the
push-to-main run after merge, where both gates actually execute.

Land order

This must land first and alone. Rebasing onto an unchanged main keeps
verify-changelog.sh at exit 0, but rebasing onto a main advanced by even one
rendering commit puts the gate back to exit 1. Any lane that lands after this
one needs its own task changelog-write regeneration on its rebased head.

…again

The changelog was never re-rendered after the CI docs commit landed on main,
so `hack/release/verify-changelog.sh` saw a fresh `git-cliff` render carrying
one entry CHANGELOG.md did not have:

    ### Other
    - ci(docs): stop uploading the Pages artifact on pull requests

That single drift failed two jobs at once — the `verify` job's changelog drift
gate (AUD-S02 / REQ-AUD-S02-02) and the `release-exitgate` job's `task check`,
which reaches the same `changelog-verify` stage.

This commit is only the regenerated render. Its own subject matches the
`^:memo: chore\(release\):` skip rule in cliff.toml, so it is excluded from the
changelog and does not itself become the next missing entry.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant