release
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRelease Cyrus
发布Cyrus
Run Cyrus releases through the trusted-publishing workflow. Do not publish
workspace packages manually.
通过可信发布工作流(trusted-publishing workflow)运行Cyrus版本发布。请勿手动发布工作区包。
Required reference
必备参考资料
Read completely before taking release actions. Treat it
as the canonical operator guide and as the
canonical package list and dependency order.
apps/cli/RELEASING.mdscripts/release-packages.mjs在执行发布操作前,请完整阅读。将其视为标准操作指南,为标准包列表及依赖顺序文件。
apps/cli/RELEASING.mdscripts/release-packages.mjsWorkflow
工作流
- Fetch , start from current main, and preserve unrelated local changes.
origin/main - Prepare the release on a branch:
- Move both changelogs' Unreleased entries into the new version.
- Set the same version in every manifest printed by
.
node scripts/release-packages.mjs list - Run and commit any lockfile change.
pnpm install - Run the F1 release test-drive protocol and save its report with the
required suffix.
-release-v<version>.md - List every released in
package@version.CHANGELOG.md
- Run , then all checks required by
node scripts/release-packages.mjs validate <version>. Fix failures before continuing.apps/cli/RELEASING.md - Commit, push, open the release PR, and merge it to before dispatching the workflow. Never publish unmerged source or a non-main ref.
main - Dispatch from
.github/workflows/release-cli.ymlin dry-run mode and monitor it through completion.main - Only when the user has explicitly requested the live release, dispatch the
same exact version with . Monitor it through npm publication, git tagging, and GitHub Release creation.
dry_run=false - Independently verify the version on npm and run the published CLI's
command.
--version - Use the Linear integration to move every issue referenced by the version's
changelog section from to
MergedUnreleased.ReleasedMonitoring
- 拉取分支,基于当前main分支开始操作,并保留无关的本地更改。
origin/main - 在分支上准备发布:
- 将两个变更日志中的“Unreleased”条目移至新版本下。
- 在输出的所有清单中设置相同版本号。
node scripts/release-packages.mjs list - 运行并提交任何锁文件变更。
pnpm install - 执行F1发布测试驱动协议,并保存报告,报告需带有必填的后缀。
-release-v<version>.md - 在中列出所有已发布的
CHANGELOG.md。package@version
- 运行,然后执行
node scripts/release-packages.mjs validate <version>要求的所有检查。解决所有失败问题后再继续。apps/cli/RELEASING.md - 提交、推送代码,打开发布PR,并在触发工作流前将其合并至分支。绝不要发布未合并的代码或非main分支的引用。
main - 从分支触发
main工作流的试运行模式(dry-run mode),并监控其完成。.github/workflows/release-cli.yml - 仅当用户明确要求正式发布时,以触发完全相同版本的工作流。监控npm发布、git打标签及GitHub Release创建的整个过程。
dry_run=false - 独立验证npm上的版本,并运行已发布CLI的命令。
--version - 使用Linear集成将版本变更日志部分引用的所有问题从状态移至
MergedUnreleased状态。ReleasedMonitoring
Safety
安全注意事项
- Never add an npm token. Publishing must use GitHub Actions OIDC.
- Confirm every npm package trusts and
cyrusagents/cyrusbefore the first live workflow run.release-cli.yml - A dry run does not authenticate to npm and does not prove registry writes.
- Never rerun a partially published version blindly. npm versions are immutable; inspect which packages landed and recover deliberately.
- Do not create or move a release tag until every package is published. The workflow owns tag and GitHub Release creation.
- 切勿添加npm令牌。发布必须使用GitHub Actions OIDC。
- 在首次触发正式工作流前,请确认所有npm包均信任和
cyrusagents/cyrus。release-cli.yml - 试运行不会向npm进行身份验证,也无法证明可写入注册表。
- 切勿盲目重新运行已部分发布的版本。npm版本不可变;请检查哪些包已发布,并谨慎进行恢复操作。
- 在所有包发布完成前,请勿创建或移动发布标签。标签和GitHub Release的创建由工作流负责。