リリースポリシー
OpenClawには3つの公開リリースレーンがあります:- stable: タグ付きリリース。デフォルトではnpmの
betaへ公開され、明示的に要求された場合はnpmのlatestへ公開されます - beta: npmの
betaへ公開されるプレリリースタグ - dev:
mainの移動中の先端
バージョン命名
- Stableリリースバージョン:
YYYY.M.D- Gitタグ:
vYYYY.M.D
- Gitタグ:
- Stable修正リリースバージョン:
YYYY.M.D-N- Gitタグ:
vYYYY.M.D-N
- Gitタグ:
- Betaプレリリースバージョン:
YYYY.M.D-beta.N- Gitタグ:
vYYYY.M.D-beta.N
- Gitタグ:
- 月と日はゼロ埋めしない
latestは現在昇格済みのstable npmリリースを意味するbetaは現在のbetaインストール対象を意味する- Stableおよびstable修正リリースはデフォルトでnpmの
betaへ公開されます。リリース運用者は明示的にlatestを指定することもでき、また後で検証済みのbetaビルドを昇格させることもできます - すべてのOpenClawリリースは、npmパッケージとmacOSアプリを同時に出荷します
リリース頻度
- リリースはbeta-firstで進行します
- Stableは最新betaが検証された後にのみ続きます
- 詳細なリリース手順、承認、認証情報、および復旧メモは maintainer専用です
リリース事前確認
pnpm release:checkの前にpnpm build && pnpm ui:buildを実行して、 pack 検証ステップに必要なdist/*リリースアーティファクトとControl UIバンドルが存在するようにしてください- タグ付きリリースの前には毎回
pnpm release:checkを実行してください - mainブランチのnpm事前確認では
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheもtarballパッケージ化前に実行され、OPENAI_API_KEYとANTHROPIC_API_KEYの両workflow secretを使用します - 承認前に
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(または対応するbeta/修正タグ)を実行してください - npm公開後は、
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(または対応するbeta/修正バージョン)を実行し、新しいtemp prefixで 公開済みregistryインストールパスを検証してください - Maintainerリリース自動化では現在、事前確認後に昇格する方式を使用しています:
- 実際のnpm公開は、成功したnpm
preflight_run_idを通過していなければならない - stable npmリリースのデフォルトは
beta - stable npm公開では、workflow入力によって明示的に
latestを指定できる - stable npmの
betaからlatestへの昇格は、信頼済みのOpenClaw NPM Releaseworkflow上で、依然として明示的な手動モードとして利用可能 - この昇格モードでも、有効な
NPM_TOKENがnpm-release環境に必要です。npmのdist-tag管理は信頼済み公開とは別だからです - 公開の
macOS Releaseは検証専用 - 実際の非公開mac公開は、成功した非公開macの
preflight_run_idとvalidate_run_idを通過していなければならない - 実際の公開パスでは、再度ビルドするのではなく準備済みアーティファクトを昇格する
- 実際のnpm公開は、成功したnpm
YYYY.M.D-Nのようなstable修正リリースでは、公開後検証でもYYYY.M.DからYYYY.M.D-Nへの同じtemp-prefixアップグレードパスを確認し、 リリース修正によって古いグローバルインストールが ベースstable payloadのまま静かに残ることがないようにします- npmリリース事前確認では、tarballに
dist/control-ui/index.htmlと空でないdist/control-ui/assets/ペイロードの両方が含まれていなければフェイルクローズするため、 空のブラウザーダッシュボードを再び出荷することはありません - リリース作業がCI planning、extension timing manifest、または高速
test matrixに触れた場合は、承認前に
.github/workflows/ci.ymlから planner所有のchecks-fast-extensionsworkflow matrix出力を再生成して確認してください。そうしないとリリースノートが古いCIレイアウトを説明してしまいます - Stable macOSリリースの準備には、updaterサーフェスも含まれます:
- GitHubリリースには、パッケージ済みの
.zip、.dmg、.dSYM.zipが最終的に含まれていなければならない - 公開後の
main上のappcast.xmlは、新しいstable zipを指していなければならない - パッケージ済みアプリは、非デバッグbundle id、空でないSparkle feed
URL、およびそのリリースバージョン向けの正規Sparkleビルド下限以上の
CFBundleVersionを維持していなければならない
- GitHubリリースには、パッケージ済みの
NPM workflow入力
OpenClaw NPM Releaseは、運用者が制御する次の入力を受け付けます:
tag: 必須のリリースタグ。例:v2026.4.2、v2026.4.2-1、またはv2026.4.2-beta.1preflight_only: 検証/ビルド/パッケージのみならtrue、実際の 公開パスならfalsepreflight_run_id: 実際の公開パスで必須。workflowが成功した事前確認実行から準備済みtarballを再利用するためnpm_dist_tag: 公開パス向けのnpm対象タグ。デフォルトはbetapromote_beta_to_latest: すでに公開済みの stablebetaビルドをlatestへ移す場合はtrue。公開はスキップする
- Stableおよび修正タグは
betaまたはlatestのいずれかへ公開可能 - Betaプレリリースタグは
betaにのみ公開可能 - 実際の公開パスでは、事前確認時と同じ
npm_dist_tagを使わなければならず、 workflowは公開継続前にそのメタデータを検証する - 昇格モードでは、stableまたは修正タグ、
preflight_only=false、 空のpreflight_run_id、およびnpm_dist_tag=betaを使用しなければならない - 昇格モードでも、
npm dist-tag addには通常のnpm認証が必要なため、npm-release環境に有効なNPM_TOKENが必要です
Stable npmリリース手順
stable npmリリースを切るとき:preflight_only=trueでOpenClaw NPM Releaseを実行する- 通常のbeta-firstフローでは
npm_dist_tag=betaを選び、意図的に直接stable公開したい場合にのみlatestを選ぶ - 成功した
preflight_run_idを保存する preflight_only=false、同じtag、同じnpm_dist_tag、保存したpreflight_run_idで 再度OpenClaw NPM Releaseを実行する- リリースが
betaへ出た場合、その後 同じstabletag、promote_beta_to_latest=true、preflight_only=false、preflight_run_idを空、npm_dist_tag=betaでOpenClaw NPM Releaseを実行し、 その公開済みビルドをlatestへ移したいタイミングで昇格する
npm-release環境の承認と、その
環境内の有効なNPM_TOKENが必要です。
これにより、直接公開パスとbeta-first昇格パスの両方が文書化され、
運用者から見える状態に保たれます。
公開参照
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
内の非公開リリースドキュメントを使用します。