Skip to content

TTS MultiModel v2.2.3

Choose a tag to compare

@ReSerendipity ReSerendipity released this 22 Sep 05:39
· 73 commits to main since this release
dace73d

v2.2.3

补丁版,只有一个理由:把修好的 wheel 交出去

v2.2.2 的 tag 打在一处修复之前,所以已发布的 wheel 仍然缺完整性自检的三件套 ——
integrity_manifest.json、它的 Ed25519 签名、验签公钥都没打进包,而配置默认
security.integrity_selfcheck.enforce: true,且"清单不存在"分支只写一行 info 日志就跳过。
后果是:通过 pip install 拿到包的用户,P0 的核心模块完整性保护一条都没有在运行,
而配置声称它在强制运行
(Docker 镜像与便携包另外拷了源码树,所以那两条路一直是好的 ——
也正因如此,这个缺口躲过了所有门禁,直到发布后把 wheel 解开看内容才发现)。

自 v2.2.2 以来的变化

  • security(本次发布的目的):三件套随包分发;enforce 开着却没清单 → 直接 RuntimeError
    拒绝启动,报错给三条出路(源码检出生成清单 / 装出来的包漏打说明是构建问题 /
    确实要关保护就显式写 enforce=false)。非强制模式保持原来的"跳过"语义。
    CI 的 Build (sdist/wheel) 作业新增一步:解开 wheel 断言三件在场 ——
    只查 pyproject 声明不算数,setuptools 行为一变就会重新出现"声明对、产物里没有"。
  • cirelease-please.yml 的三处静默失效已修(skip-github-pull-request + 从无 release PR、
    5 个入参被 action 忽略、build-release 依赖的 job outputs 从未声明)。
    修好后它当场自动开出了下一条 release PR,说明路径通了。
  • test:版本位一致性守卫两处自我修正 —— 撤掉 minimum_shell_version == 本次版本
    (它是下界,强令相等等于每次发版把上一版壳判死;本版仍是 2.2.2),
    以及把"装配中间物" scripts/installer/version.json 从硬性存在改为若在场则必须等于源
    (它被 .gitignore 排除,硬要求会让 CI 在干净检出上直接报错)。

产物

文件 大小 (B) SHA256
tts_multimodel-2.2.3-py3-none-any.whl 28,378,301 7528654771543b7457634fa3c2db5dc2f2bf28697972adc10fae3d54e6dc3f96
tts_multimodel-2.2.3.tar.gz 28,324,368 f73015373827df6daccd925f4df139d286fdb6a5433c567c496983b02bd88feb
SHA256SUMS.txt 198

python -m build 产出、twine check 两件均 PASSED。这次发布的验证点本身就落在产物上
解开 wheel 确认 integrated_app/security/ 里三件套在场,且包内那份清单与仓库里的
integrity_manifest.json 字节一致(sha256 相同);METADATA 也带上
Requires-Dist: einops>=0.7.0 / addict>=2.4.0。发布后再从 Release 页面下载回来比对 SHA256。

不含 ~26 GB 便携分卷与桌面增量包(需 release_gate.ps1 真实构建 + 单独授权;本批无权重变化)。
无 GPG 分离签名:仓库只有 MANIFEST_SIGNING_KEY_B64 一个 secret,gpg-signed-release.yml 只会 notice 跳过。
tag 为注解 tag、不做 GPG 签名(与本仓历史一致)。

已知未覆盖(与 v2.2.2 相同,未变)

  • 桌面安装包链路(staging → 7z 分卷 → NSIS)无任何 workflow 覆盖,本机也无从安装验证。
  • GPU 冒烟(真加载 + 真合成)在 CI 上恒为 skipped:仓库没有注册 runner,真机验收由维护者本人完成。
  • 锁集的全新 venv 真装复验(GB 级下载)仍待执行。
  • Performance Benchmark 门禁仍在制造随机红(同一份代码在 runner 间 mean 摆动 17%–80%,
    门槛 20%,且会拿同一 PR 两分钟前的 run 当"历史基线")→ 见 issue #118