Skip to content

chore(release): v2.2.2 发版前置——CHANGELOG 补 09-21/22 这批、版本位对齐并上闸、修正发布治理里两处不成立的自动化描述 - #113

Merged
ReSerendipity merged 1 commit into
mainfrom
chore/release-2.2.2
Sep 22, 2026
Merged

ReSerendipity merged 1 commit into
mainfrom
chore/release-2.2.2

Conversation

@ReSerendipity

Copy link
Copy Markdown
Owner

为什么需要这条

v2.2.2 要发了,而发版说明现在是错的:release-please.yml 结构性空转(见下),所以 09-21/22 这一整批
—— 其中一个 P0 级的打包缺陷修复 —— 在 CHANGELOG 里一个字都没有。照着 CHANGELOG 发出去,
读的人不会知道"镜像和便携包里的默认引擎起不来"这件事被修过。

改了什么

1. CHANGELOG [2.2.2]

  • 标题从「未发布:tag 已撤销、无 Release、无资产」改为正式发布(2026-09-22);
  • 新增「发布前置回归(2026-09-21/22)」9 条:einops/addict 干净环境缺项(P0)、
    镜像 apt 索引就绪守卫(含我先前 bash-builtins 误判的更正)、CSRF 硬失败 + 0o600 + CodeQL 有据抑制、
    IndexTTS 预热并发崩溃(真因不是"第二次切换")、tts-1-hd 500→400、两处"永远绿的假信号"、
    依赖下界回实测 + 16 条公告逐条登记、Dependabot 20 条 triage、CodeQL 台账刷新;
  • 段末如实记两条口径:本批含 43 个 feat: 却仍标 2.2.2(SemVer 应为 2.3.0,是所有者的显式决定,
    与 09-16 那次撤销的 tag 同批);资产不含 26 GB 便携分卷,且 GPG_PRIVATE_KEY secret 不存在 →
    分离签名那步不会执行。

2. 版本位对齐

  • deploy/kubernetes/deployment.yaml 镜像 tag 2.2.1 → 2.2.2(2 处,实测漂移);
  • version.json 的 release_date 与"未发布"文案。
  • desktop/package-lock.json 也停在 2.2.1,但它在 .gitignore:196 里 —— 不是仓库内的版本位,
    所以只在 governance 里注明区别,不假装同步了它。

3. 给"版本位全部同步"上闸(governance §5 那格一直是手工勾选)

  • test_all_version_sites_agree:比对仓库内跟踪的 9 处;任一取不到值就抛错而不是跳过
    (否则"少核一个站点"会被当成"全部一致");
  • test_installer_artifact_names_track_the_version_site:OutFile / VIProductVersion /
    version.json.minimum_shell_version 与 APP_VERSION 同源;
  • 变异自证:把 deployment.yaml 改回 2.2.1 → 测试红并点名是哪一处(已实跑)。

4. 修正 docs/release-governance.md 里两句不成立的话

  • 原文:「发布由 release-please 自动生成 GitHub Release 并打 semver tag」「tag 已推送触发 release-please.yml」。
  • 实测:它设了 skip-github-pull-request: true,而仓库从没产生过 release PR → 每次 main push
    都输出 found 0 possible releases 然后 success;还传了 5 个 v4 不认的入参
    (package-name/changelog-path/draft/label/prerelease,CI 日志有 Unexpected input(s) 警告),
    且没有 release-please-config.json / .release-please-manifest.json。
    挂在它下面的 build-release(sdist/wheel + SHA256SUMS)因 release_created != true 同样从不执行。
  • 改成实际可执行的手工发版流程(tag → gh release create → 本地 python -m build + twine check + SHA256SUMS),
    并写明便携分卷 / GPG 签名不在默认路径。RP 本身的真修另开一条 PR(所有者已点头),
    那条要登记 .release-please-manifest.json = 2.2.2,所以必须等 tag 存在之后再合。

验证

tests/test_version_consistency.py 5 passed(3 旧 + 2 新)+ 上述变异自证;
scripts/check_spec_refs.py → new=0;pre-commit 22 项通过(check yaml/json、engine specs、
integrity sync 等)。纯文档 + 清单 + 测试,不动运行时代码 → 无需重签完整性清单。

依赖顺序

本条应在 #111(deadsnakes 索引守卫 + einops)合并之后、打 v2.2.2 tag 之前进 main。

- CHANGELOG:[2.2.2] 从"未发布(tag 已撤销)"改为正式发布(2026-09-22),并新增
  「发布前置回归(2026-09-21/22)」9 条 —— 这一批(einops/addict 干净环境修复、镜像 apt
  索引就绪守卫、CSRF 硬失败 + 0600、IndexTTS 预热并发崩溃、tts-1-hd 500→400、
  两处"永远绿的假信号"、依赖下界回实测 + 16 条公告逐条登记、CodeQL 台账刷新)此前
  **没有任何 CHANGELOG 条目**(release-please 空转,见下),发版说明会漏掉一个 P0 打包修复。
  另在段末如实记下版本口径的偏差:本批 43 个 feat 仍标 2.2.2 是所有者的显式决定,
  以及"资产不含 26 GB 分卷、GPG 分离签名不会执行(secret 不存在)"。
- 版本位:`deploy/kubernetes/deployment.yaml` 镜像 tag 2.2.1 → 2.2.2(2 处)、
  `version.json` 的 release_date / changelog 文案与"未发布"表述。
  `desktop/package-lock.json` 也在 2.2.1,但它在 .gitignore:196 里 —— 不是仓库内的版本位,
  改了也不会被跟踪,故 governance §1 补一句区分。
- 新增机器闸:`test_all_version_sites_agree` 比对仓库内跟踪的 9 个版本位,
  `test_installer_artifact_names_track_the_version_site` 再核 OutFile / VIProductVersion /
  `version.json.minimum_shell_version` 与 APP_VERSION 同源。
  取值函数在**任何一处取不到版本号时直接抛错**,避免"少核一个站点"被当成"全部一致"。
  变异自证已做:把 deployment.yaml 改回 2.2.1 → 该测试红且点名是哪一处。
- release-governance:§1/§2/§5 里"发布由 release-please 自动完成""推 tag 会触发发版"
  两句是**不成立的**(它设了 skip-github-pull-request 而仓库从无 release PR,
  每次 main push 都 `found 0 possible releases` 后成功;还有 5 个 v4 不认的入参被静默忽略)。
  改成实际可执行的手工发版步骤,并写明便携分卷与 GPG 签名不在默认路径里。

Signed-off-by: ReSerendipity <zengyangc@outlook.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant