Releasing monetize
This is monetize's part of a release: what must be true of this repository before its commit goes into a release set. The live release itself (the KVM gate host, the test2 ONE-box boot check, feeding the live boxes) is the coordinator's and runs by its own RELEASE.md. Since the owner's 2026-10-25 GO, R3 and R4 are one live release; each phase still gets its KVM gate and the test2 boot check.
xtask/tests/release_checklist.rs holds this page to the verbs that exist: every xtask verb named below is monetize's, or that of the sibling named on its line.
Release checklist
- One commit. The release is cut from a merged
main, fetched just before. Every later step runs on that commit, from a clean clone withgit lfs pulldone. - The full CI is green on that commit:
cargo xtask ci(not--quick). It runs the lock check, the guests, the workspace tests, the detached workspaces (admin, monetize-fast, build-thing), the 12 buy trials, the Lake benches, the lint gate and, on a host with podman, both fast flows (fast --product holger,fast --product gunnar). Run the toolchain steps in the pinned CI image (ci3-…), never:live. - The locks follow.
cargo xtask ci --only lockcheckis green, and every nested lock is at its manifest's versions. No lock is hand-edited to make it green. - The guests are the release's.
cargo xtask build-guestsbuilds the product, vendor and cloud guests from this commit. Each guest that ships is signed (.p7sunderguest_trust_roots) and pinned by sha256 in private-monetize-ops'solo.toml;cargo xtask pins(private-monetize-ops) is green. - The buy flow still buys.
cargo xtask trialsis green: the 12 buy trials onmonetize_admin::linked()with the signed guests, Stripe in test mode and UpCloud on the mock. - The score does not fall.
cargo xtask score --out <file>is recorded with the release, and no area is lower than at the last release. - The public tree builds.
cargo xtask publishwrites thepublicbranch and compiles it; only the owner pushes it (--push). - The open crates go out in order. The coordinator publishes them with
cargo xtask open-crates(dwarves), first as--live-dry-run. A product that links a crate from crates.io (Gunnar's lone clone) is re-pointed only after its crates are published. - The products follow.
cargo xtask publish(private-monetize-ops) releases each product (publish <product>); it ends with the ONE box's plugin update,cargo xtask box(private-monetize-ops)plugins --apply, followed untildone, before any estate is updated. - Gate, boot check, then live. The KVM gate and the test2 ONE-box boot check are green for the set, and the coordinator's RELEASE.md takes it live. Nothing is deployed live from a lane.
After a release
- The release's commits and the score file are named in its handback.
- A red that was waved through (an environment red, a known flake) is named with its reason, never left out.