Skip to content

Commit 75e91e8

Browse files
committed
docs(releases-maintenance): correct three pre-ADR-0125 publish-lane sentences
The rc-vs-GA table's GA Trigger cell, the "both lanes are `workflow_dispatch`" paragraph under it, and the GA cut step still described the publish lane as it was before ADR-0125 (2026-08-20): dispatch-started, with a typed version the releaser supplies. ADR-0125 D1 moved the publish job onto `push: branches: [main]`, D2 made the `release` environment approval the human act, and D4 kept `workflow_dispatch` as the repair lane with no `version` input at all. `.github/workflows/release.yml` implements exactly that, so the docs were the drifted party. The 2026-08-07 ruling quotation is preserved byte-for-byte; only the mechanism prose around it changed. `cut-rc.yml` is still `workflow_dispatch`-only with a typed version, so the rc half of every corrected sentence is unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ahemw8RcTgqtxrj15PEZx
1 parent 7e83932 commit 75e91e8

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

docs/releases-maintenance.md

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -326,16 +326,25 @@ different things, so they get different lanes.
326326
| | **rc prerelease** | **GA** |
327327
|---|---|---|
328328
| Workflow | `.github/workflows/cut-rc.yml` | `.github/workflows/release.yml` |
329-
| Trigger | one `workflow_dispatch` | merge the Version Packages PR, then dispatch |
329+
| Trigger | one `workflow_dispatch` | merge the Version Packages PR, then approve the `release` environment |
330330
| objectui pin | bumped **inside** the run, to a snapshot | must already be fresh on the PR |
331331
| Changelog review | none (the record is generated) | human review on the PR |
332332
| Board-clearing / #7275-A precondition | not required | required |
333333

334-
Both lanes are `workflow_dispatch` + `environment: release`, and neither can be
335-
started by a push, a bot, a merge-queue landing or a schedule. That is the
336-
2026-08-07 ruling (「版本发布必须是人工的」) and it is not negotiable in either
337-
direction — see `release.yml`'s header for the two releases that were minted
338-
without a human and the lane split that ended it.
334+
Both lanes are gated by `environment: release`, and neither publishes anything until
335+
a human approves the deployment there. What differs since ADR-0125 (2026-08-20) is
336+
the *start*: `cut-rc.yml` is still `workflow_dispatch`-only — an event no push, bot,
337+
merge-queue landing or schedule can synthesise — while `release.yml`'s publish lane
338+
**is** started by the push that lands the Version Packages PR (D1), and is then held,
339+
**whole**, at the environment gate until a required reviewer approves it (D2). The
340+
approval is the release act on that lane, so read ADR-0125 D3 before touching it: an
341+
environment with no required reviewers passes automatically and silently, which on a
342+
push-started lane is not a weakened gate but no gate at all. (`release.yml` also
343+
carries a 6-hourly `schedule`, added by #11233; it reaches only the bookkeeping
344+
`version-pr` job, which has no publish capability by construction.) That is the
345+
2026-08-07 ruling (「版本发布必须是人工的」) re-implemented, not relaxed, and it is not
346+
negotiable in either direction — see `release.yml`'s header for the two releases that
347+
were minted without a human and the lane split that ended it.
339348

340349
### Cutting an rc — the snapshot flow (#7447)
341350

@@ -445,8 +454,14 @@ generated changelogs on the PR. ⚠️ There is no longer a pin-freshness gate o
445454
lane either (#10134) — a GA release ships the committed pin, same as an rc, and the
446455
judgement about which console revision that should be belongs in an issue and a bump
447456
PR *before* the cut. Merge the `chore: version
448-
packages` PR (#4935), then **Actions → Release → Run workflow** with the version
449-
`main` now carries. `release.yml`'s three lanes are untouched by the rc lane.
457+
packages` PR (#4935); that push is what starts the publish lane, and the run then
458+
waits at `environment: release` for a required reviewer to approve a job named
459+
`Publish <version> to npm (awaiting approval)` — the version read from the commit,
460+
never one you supply (ADR-0125 D1/D2). ⛔ **Actions → Release → Run workflow** is
461+
**not** the GA publish path: since ADR-0125 D4 that dispatch takes no version input at
462+
all, and left unchecked it starts the repair lane for a publish that died partway —
463+
checked, it starts the bookkeeping lane described next.
464+
`release.yml`'s three lanes are untouched by the rc lane.
450465

451466
**First, check #4935 is current** (#11233). It is regenerated on a 6-hourly schedule
452467
rather than on every push, so at cut time it can be up to one refresh window behind

0 commit comments

Comments
 (0)