doc/RELEASE-CHECKLIST.md
The release captain's checklist for every lane. The mechanics live in
RELEASING.md; the user-facing channel guide is
CHANNELS.md.
master push)Release run is green (verify + publish)npm view paperclipai@canary version matches the expected canary:canary updated (the same push's Docker run)npm view paperclipai@nightly version shows the new -nightly.Nnightly/v* tag pushed; :nightly and :nightly-cloud images builtTo force a nightly: dispatch release.yml with channel: nightly
(optional exact canary in source_version; dry_run to preview).
Happy path:
source_version selects the newest)release.yml with channel: betanpm-beta environment gatenpm view paperclipai@beta version shows the new -beta.Nbeta/v* tag pushed; :beta and :beta-cloud images builtsmoke_beta) is greendraft_stable_notes pushed release-notes/v<beta-version>; open the
notes PR from the job-summary linkreleases/beta/v<beta-version>.md from
master)Fix path (cherry-picked candidate):
candidate/beta-<target> from the chosen nightly's source commitchannel: beta with candidate_branchmaster, delete the branchsource_refreleases/beta/v<beta-version>.md) is merged on
master — preflight fails, before the approval gate, without itrelease.yml with channel: stable (a dry run first shows
the resolved version and soak state without publishing)npm-stable environment gatenpm view paperclipai version (dist-tag latest) shows the stablevYYYY.MDD.P tag pushed; GitHub Release created; :latest and the
versioned Docker tags builtskip_soak_justification carries a
real written reason (it lands in the job summary)release-notes/v<version>-canonicalize) so the notes land at
releases/vYYYY.MDD.P.mdFix path: candidate/release-<target> from the beta's source commit; the
soak gate will demand a justification because the exact bits were not
soaked — write one that stands on its own. A candidate branch carries its
own releases/vYYYY.MDD.P.md (preflight prefers source-tree notes), so
author the notes as a commit on the candidate.
The failure playbooks in RELEASING.md cover: red canary,
skipped or failed nightly, a beta that looks bad during soak, partial
stable releases, broken latest, and rejected tag pushes. Every publish
job's summary names what completed and what remains.