返回 DeepSeek-Reasonix
RELEASE_CANDIDATES.zh-CN.md
根目录 / docs / RELEASE_CANDIDATES.zh-CN.md
1 # 发版候选
2
3 受保护的 `main-v2` 控制工作流在 Stable 发布说明审核并嵌入后准备不可变候选。
4 `Prepare release candidate` 使用 `version` 构建共用的 CLI/npm 文件、签名
5 Desktop 文件、执行最终安装包的原生验收并封存记录。`Publish release candidate`
6 只接受该记录,验证来源与文件字节,经过一次 `release` 批准后创建三个标签并发布。
7 `recover` 复用相同的封存文件,不重新构建或签名。
8
9 渲染发布说明时会为贡献者署名:`refs` 中属于合并请求的编号后面加上
10 `by @作者`;属于 issue 的编号,对 GitHub 记录为关闭它的每个已合并请求加上
11 `fixed in #M by @作者`。结尾的「贡献者」列表按首次出现顺序列出这些真人作者,
12 每人一次。直接推送修复的 issue 和机器人作者保持原样。查询需要 GitHub 令牌(`GH_TOKEN`,
13 本地没有时用 `gh auth token`),以及 `issues: read` 和 `pull-requests: read` 权限。
14 暂时性失败(5xx、限流、连接中断)会退避重试;重试后仍失败或鉴权失败时,渲染以
15 `release_credits.*` 错误码失败,而不是发布缺少署名的说明。指向讨论或不存在的编号保持原样并给出警告。
16
17 封存任务只渲染一次,写进候选包的 `evidence/release-notes.md`,记录为
18 `notes.renderedPath` 并与 `notes.renderedSha256` 绑定。发布时校验候选包后直接发布这份
19 内容,不再访问 GitHub,因此封存之后作者改名、issue 新关联了修复或接口故障都不会改变或
20 阻塞发布内容。本改动之前封存的候选没有 `renderedPath`,仍按原方式从自身源码离线渲染。
21
22 需要验收但不发布时,在受保护的 `main-v2` 上调度 `Prepare release candidate`,
23 填写 `version` 和 `rehearsal=true`。可使用已有审核完成的版本进行隔离演练。
24 它使用独立的 `release-candidate-rehearsal-*` 产物,记录
25 `purpose=rehearsal`,无法通过正式发布的解析和文件验证入口。Desktop 子流程
26 仅在这个不发布的模式下接受已存在的版本标签。该运行仍须完成源码 CI、签名和
27 原生验收;它不会创建标签、GitHub Release、npm 包,或更新 Homebrew、R2
28 指针及官网。
29
30 封存后以候选 ID 在 `main-v2` 上运行 `Verify release candidate rehearsal`。
31 这个独立工作流按精确的记录和文件 artifact ID 下载,验证 GitHub 归档摘要、
32 受保护的生产 run、OIDC 文件证明、封存文件摘要和原生验收凭据。保留 90 天的
33 报告绑定生产和复核 run;复核过程不需要编译器或签名凭证。它证明同一份签名
34 文件可以跨 run 复用,不等于公开发布,也不能代替下一次正式发布的公开验收。
35
36 候选文件保留 30 天,记录和验收证据保留 90 天。尚未发布时若文件过期,需
37 重新准备候选。正式发布后的标签、npm、Desktop 更新、Homebrew 与官网
38 渲染结果仍以发布 skill 的公开 postflight 验证为准。
39
39 lines MARKDOWN