Skip to content

本页介绍 OpenClaw 的发布策略,适合想了解版本更新节奏或自建部署的用户。OpenClaw 采用 beta-first 发布节奏:所有版本先发布到 npm beta 通道,验证通过后才晋升到 latest。版本格式为 YYYY.M.D(月日不补零),npm 和 macOS 应用同步发布。

OpenClaw 发布策略

OpenClaw 有三个公开发布通道:

  • stable:带标签的发布版,默认发布到 npm beta,或经请求发布到 npm latest
  • beta:预发布标签,发布到 npm beta
  • devmain 分支的最新快照

版本命名

版本类型格式Git 标签
正式版YYYY.M.DvYYYY.M.D
正式修正版YYYY.M.D-NvYYYY.M.D-N
Beta 预发布版YYYY.M.D-beta.NvYYYY.M.D-beta.N
  • 月和日不补零(例如 2026.4.2,而非 2026.04.02
  • latest:当前晋升的正式 npm 版本
  • beta:当前 beta 安装目标
  • 正式版和修正版默认发布到 npm beta;维护者可显式指定 latest 或后续从 beta 晋升
  • 每个 OpenClaw 版本同时发布 npm 包和 macOS 应用

发布节奏

  • 版本先走 beta,验证通过后才发布 stable
  • 稳定版跟随最新 beta 验证后才发布

macOS 稳定版发布就绪检查

macOS 稳定版发布还需要验证更新分发入口:

  • GitHub Release 必须包含打包好的 .zip.dmg.dSYM.zip
  • 发布后 main 分支的 appcast.xml 必须指向新版本的稳定 zip
  • 打包的应用必须满足:
    • 非 debug 的 Bundle ID
    • 非空的 Sparkle feed URL
    • CFBundleVersion 达到或超过该版本的 Sparkle 构建地板值

发布前置检查

发布前需依次完成:

bash
# 1. 先构建,确保 dist/* 工件和 Control UI bundle 存在
pnpm build && pnpm ui:build

# 2. 运行发布检查
pnpm release:check

# 3. 运行 live 缓存回归测试(main 分支 npm 预发布也会运行)
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cache

# 4. 打发布标签前验证
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts

# 5. npm publish 后验证
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D

修正版升级路径验证:对于 YYYY.M.D-N 修正版,post-publish 验证器会额外检查从 YYYY.M.DYYYY.M.D-N 的临时前缀升级路径,确保修正版不会让旧的全局安装静默留在旧基础上。

npm 发布前置检查在以下情况会失败并中止:tarball 缺少 dist/control-ui/index.htmldist/control-ui/assets/ 为空(防止再次发布空浏览器控制台)。

如果发布工作影响了 CI 规划、扩展时序 manifest 或快速测试矩阵,需要在审批前从 .github/workflows/ci.yml 重新生成并审查 checks-fast-extensions 工作流矩阵输出,避免发版说明描述过时的 CI 布局。

npm 工作流输入

OpenClaw NPM Release 工作流接受以下参数:

参数说明
tag必填,如 v2026.4.2v2026.4.2-1v2026.4.2-beta.1
preflight_onlytrue 仅验证/构建/打包;false 真正发布
preflight_run_id真正发布时必填,复用成功 preflight 的已准备 tarball
npm_dist_tag发布目标标签,默认 beta
promote_beta_to_latesttrue 跳过发布,将已发布的 stable beta 版本晋升到 latest

规则:

  • 正式版和修正版可发布到 betalatest
  • Beta 预发布版只能发布到 beta
  • 真正发布路径必须使用与 preflight 相同的 npm_dist_tag
  • 晋升模式需要正式版/修正版标签、preflight_only=false、空 preflight_run_idnpm_dist_tag=beta

正式版 npm 发布步骤

  1. 运行 OpenClaw NPM Releasepreflight_only=true,选择 npm_dist_tag=beta(beta-first 流程)
  2. 保存成功的 preflight_run_id
  3. 再次运行 OpenClaw NPM Releasepreflight_only=false,使用相同的 tagnpm_dist_tagpreflight_run_id
  4. 如果发布到了 beta,之后想晋升到 latest:运行 OpenClaw NPM Release,相同 stable tag、promote_beta_to_latest=truepreflight_only=falsepreflight_run_id 留空、npm_dist_tag=beta

晋升模式仍需要 npm-release 环境审批和有效的 NPM_TOKEN

公开参考文件

常见问题

Q: 我应该安装 beta 版本还是 latest 版本?

A: 对于日常使用,beta 通道(npm install -g openclaw@beta)通常包含最新功能和修复,大多数用户安全可用。latest 是经过更充分验证的版本,适合生产环境或对稳定性有较高要求的场景。

Q: 版本号为什么用日期格式而不是 semver?

A: OpenClaw 用 YYYY.M.D 格式可以直接从版本号判断发布时间,便于用户了解软件的更新频率和当前版本的新旧程度,不需要额外查阅 Changelog。

Q: beta-first 节奏意味着什么,我的龙虾会自动升级吗?

A: 不会自动升级。beta-first 只是发布顺序的策略,意味着每个版本先在 beta 通道验证,通过后才推到 latest。你需要手动运行 npm install -g openclaw@latest(或 @beta)来更新。