Remove all references to deleted workflows (ci-run.yml, CI Required Gate, sec-audit, pub-docker-img, pub-release, pub-homebrew-core, pr-intake-checks, pr-labeler, pr-auto-response, pr-check-stale, pr-check-status, pr-label-policy, workflow-sanity, main-promotion-gate, sec-codeql, sec-vorpal, etc.). Rewrite docs to match the current 4 workflows: - ci.yml (PR checks: test + build) - release.yml (automatic beta release on push to master) - ci-full.yml (manual full cross-platform build matrix) - promote-release.yml (manual stable release) Files rewritten: - docs/ci-map.md — complete rewrite for current workflows - docs/release-process.md — new two-tier release model (beta/stable) - .github/workflows/main-branch-flow.md — simplified delivery flows - .github/workflows/README.md — removed deleted helper scripts Files updated (stale CI references removed): - docs/pr-workflow.md - docs/reviewer-playbook.md - CONTRIBUTING.md - Vietnamese locale sync: docs/vi/ and docs/i18n/vi/ (ci-map, pr-workflow, release-process, reviewer-playbook) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.2 KiB
3.2 KiB
ZeroClaw Release Process
This runbook defines the maintainers' standard release flow.
Last verified: March 6, 2026.
Release Goals
- Keep releases predictable and repeatable.
- Publish only from code already in
master. - Verify multi-target artifacts before publish.
- Keep release cadence regular even with high PR volume.
Release Model
ZeroClaw uses a two-tier release model:
- Beta releases are automatic — every merge to
mastertriggers a beta pre-release (vX.Y.Z-beta.<run_number>). - Stable releases are manual — a maintainer runs
Promote Releasevia workflow dispatch to cut a non-pre-release version.
Workflow Contract
Release automation lives in:
.github/workflows/release.yml— automatic beta release on push tomaster.github/workflows/promote-release.yml— manual stable release via workflow dispatch
Beta Release (automatic)
- Triggered on every push to
master. - Computes version from
Cargo.toml:vX.Y.Z-beta.<run_number>. - Builds 5-target matrix (linux x86_64/aarch64, macOS x86_64/aarch64, Windows x86_64).
- Publishes GitHub pre-release with archives + SHA256SUMS.
- Builds and pushes multi-platform Docker image to GHCR (
beta+ version tag).
Stable Release (manual)
- Triggered via
workflow_dispatchwith aversioninput (e.g.0.2.0). - Validates version matches
Cargo.tomland tag does not already exist. - Builds same 5-target matrix as beta.
- Publishes GitHub stable release with archives + SHA256SUMS.
- Builds and pushes Docker image to GHCR (
latest+ version tag).
Maintainer Procedure
1) Preflight on master
- Ensure CI is green on latest
master. - Confirm no high-priority incidents or known regressions are open.
- Confirm recent beta releases are healthy (check GitHub Releases page).
2) Optional: run CI Full Matrix
If verifying cross-compilation before a stable release:
- Run
CI Full Matrixmanually (.github/workflows/ci-full.yml). - Confirms builds succeed on
aarch64-unknown-linux-gnu,x86_64-apple-darwin, andx86_64-pc-windows-msvc.
3) Bump version in Cargo.toml
- Create a branch, update
versioninCargo.tomlto the target version. - Open PR, merge to
master. - The merge triggers a beta release automatically.
4) Promote to stable release
- Run
Promote Releaseworkflow manually:version: the target version (e.g.0.2.0) — must matchCargo.toml
- Workflow validates version, builds all targets, and publishes.
5) Post-release validation
- Verify GitHub Release assets are downloadable.
- Verify GHCR tags for the released version.
- Verify install paths that rely on release assets (for example bootstrap binary download).
Standard Cadence
- Patch/minor releases: weekly or bi-weekly.
- Emergency security fixes: out-of-band.
- Beta releases ship continuously with every merge.
Emergency / Recovery Path
If a stable release fails:
- Fix the issue on
master. - Re-run
Promote Releasewith the same version (if the tag was not yet created). - If the tag already exists, bump to the next patch version.
Operational Notes
- Keep release changes small and reversible.
- Prefer one release issue/checklist per version so handoff is clear.
- Avoid publishing from ad-hoc feature branches.