用途:该技能面向 cmux 的发布流程,帮助准备或排查正式版本发布,涵盖版本号递增、变更日志更新、标记前守卫、发布标签及发布产物预期。
主要能力与用法:优先使用 /release 命令。它默认按 minor 确定新版本,从上次稳定标签以来合并的每个 PR 中收集 Changelog 行,更新 CHANGELOG.md,运行 ./scripts/bump-version.sh,提交,运行 ./scripts/release-pretag-guard.sh,然后打标签并推送。
变更日志:功能 PR 不直接修改 CHANGELOG.md,而是在 PR 描述中提供 ## Changelog 段落,包含一行面向用户的 Added、Changed、Fixed 或 Removed 说明(现在时),或留空。发布时 /release 第 2 步通过一次 GraphQL 查询获取上次 v* 标签以来合并的所有 PR,并用 references/changelog-lines.jq 分类:有效行成为条目,附 PR 链接,非核心团队成员与机器人作者的贡献会标注 -- thanks @user!;none 被跳过,范围内被后续 revert 撤销的 PR 也跳过;对更早版本已发布 PR 的 revert 会单独成行并提示人工确认;缺少段落或前缀不合规的行会列出供人工检查。随后把遗留的 ## Unreleased 条目并入新版本段并删除该标题。docs 变更日志页面由 CHANGELOG.md 渲染。
版本递增:./scripts/bump-version.sh 为 minor(0.15.0->0.16.0),patch 为 0.15.1,major 为 1.0.0,也可传显式版本。它会更新 MARKETING_VERSION 与 CURRENT_PROJECT_VERSION,构建号自动递增,必须递增才能让 Sparkle 自动更新生效。默认递增 minor。
打标签:运行 ./scripts/release-pretag-guard.sh,然后 git tag vX.Y.Z、git push origin vX.Y.Z,并使用标签推送创建的 run ID 执行 glaeda-gh wait run manaflow-ai/cmux/<run-id>。若守卫失败,运行 ./scripts/bump-version.sh,提交构建号递增后重试。
发布产物与密钥:产物为通用 cmux-macos.dmg 以及精简的 cmux-macos-arm64.dmg 和 cmux-macos-x86_64.dmg,各有 appcast。README 下载按钮与 Homebrew cask 指向通用 releases/latest/download/cmux-macos.dmg。安装读取 appcast.xml,由 scripts/ci/compose_stable_appcast.py 从三项构建;精简安装读取 appcast-arm64.xml 或 appcast-x86_64.xml,因此每个稳定版都必须发布两者,且只有最高版本可标记 latest。本地 scripts/build-sign-upload.sh 只构建通用 DMG 并在两个按架构 feed 下发布。签名需要 GitHub secrets:APPLE_CERTIFICATE_BASE64、APPLE_CERTIFICATE_PASSWORD、APPLE_SIGNING_IDENTITY。CI 公证使用团队 App Store Connect API key(ASC_API_KEY_ID、ASC_API_ISSUER_ID、ASC_API_KEY_P8_BASE64),通过 scripts/ci/lib/notary-auth.sh 解码为 mode-600 临时文件并由调用方删除。本地脚本仍使用 Apple ID 与 app 专用密码。
限制与参考:失败排查、changelog 语气与产物重命名影响见 references/release-checklist.md。其它细节资料未提供。