--- title: "Release Policy" summary: "Public release channels, version naming, and cadence" read_when: - Looking for public release channel definitions - Looking for version naming and cadence --- # Release Policy OpenClaw has three public release lanes: - stable: tagged releases that publish to npm `latest` - beta: prerelease tags that publish to npm `beta` - dev: the moving head of `main` ## Version naming - Stable release version: `YYYY.M.D` - Git tag: `vYYYY.M.D` - Beta prerelease version: `YYYY.M.D-beta.N` - Git tag: `vYYYY.M.D-beta.N` - Do not zero-pad month or day - `latest` means the current stable npm release - `beta` means the current prerelease npm release - Beta releases may ship before the macOS app catches up ## Release cadence - Releases move beta-first - Stable follows only after the latest beta is validated - Detailed release procedure, approvals, credentials, and recovery notes are maintainer-only ## Public references - [`.github/workflows/openclaw-npm-release.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/openclaw-npm-release.yml) - [`scripts/openclaw-npm-release-check.ts`](https://github.com/openclaw/openclaw/blob/main/scripts/openclaw-npm-release-check.ts) Maintainers use the private release docs in [`openclaw/maintainers/release/README.md`](https://github.com/openclaw/maintainers/blob/main/release/README.md) for the actual runbook.