release

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Release Cyrus

发布Cyrus

Run Cyrus releases through the trusted-publishing workflow. Do not publish workspace packages manually.
通过可信发布工作流(trusted-publishing workflow)运行Cyrus版本发布。请勿手动发布工作区包。

Required reference

必备参考资料

Read
apps/cli/RELEASING.md
completely before taking release actions. Treat it as the canonical operator guide and
scripts/release-packages.mjs
as the canonical package list and dependency order.
在执行发布操作前,请完整阅读
apps/cli/RELEASING.md
。将其视为标准操作指南,
scripts/release-packages.mjs
为标准包列表及依赖顺序文件。

Workflow

工作流

  1. Fetch
    origin/main
    , start from current main, and preserve unrelated local changes.
  2. 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
      pnpm install
      and commit any lockfile change.
    • Run the F1 release test-drive protocol and save its report with the required
      -release-v<version>.md
      suffix.
    • List every released
      package@version
      in
      CHANGELOG.md
      .
  3. Run
    node scripts/release-packages.mjs validate <version>
    , then all checks required by
    apps/cli/RELEASING.md
    . Fix failures before continuing.
  4. Commit, push, open the release PR, and merge it to
    main
    before dispatching the workflow. Never publish unmerged source or a non-main ref.
  5. Dispatch
    .github/workflows/release-cli.yml
    from
    main
    in dry-run mode and monitor it through completion.
  6. Only when the user has explicitly requested the live release, dispatch the same exact version with
    dry_run=false
    . Monitor it through npm publication, git tagging, and GitHub Release creation.
  7. Independently verify the version on npm and run the published CLI's
    --version
    command.
  8. Use the Linear integration to move every issue referenced by the version's changelog section from
    MergedUnreleased
    to
    ReleasedMonitoring
    .
  1. 拉取
    origin/main
    分支,基于当前main分支开始操作,并保留无关的本地更改。
  2. 在分支上准备发布:
    • 将两个变更日志中的“Unreleased”条目移至新版本下。
    • node scripts/release-packages.mjs list
      输出的所有清单中设置相同版本号。
    • 运行
      pnpm install
      并提交任何锁文件变更。
    • 执行F1发布测试驱动协议,并保存报告,报告需带有必填的
      -release-v<version>.md
      后缀。
    • CHANGELOG.md
      中列出所有已发布的
      package@version
  3. 运行
    node scripts/release-packages.mjs validate <version>
    ,然后执行
    apps/cli/RELEASING.md
    要求的所有检查。解决所有失败问题后再继续。
  4. 提交、推送代码,打开发布PR,并在触发工作流前将其合并至
    main
    分支。绝不要发布未合并的代码或非main分支的引用。
  5. main
    分支触发
    .github/workflows/release-cli.yml
    工作流的试运行模式(dry-run mode),并监控其完成。
  6. 仅当用户明确要求正式发布时,以
    dry_run=false
    触发完全相同版本的工作流。监控npm发布、git打标签及GitHub Release创建的整个过程。
  7. 独立验证npm上的版本,并运行已发布CLI的
    --version
    命令。
  8. 使用Linear集成将版本变更日志部分引用的所有问题从
    MergedUnreleased
    状态移至
    ReleasedMonitoring
    状态。

Safety

安全注意事项

  • Never add an npm token. Publishing must use GitHub Actions OIDC.
  • Confirm every npm package trusts
    cyrusagents/cyrus
    and
    release-cli.yml
    before the first live workflow run.
  • 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的创建由工作流负责。