jkooe
bce11514a9
fix(release): 发版脚本漏改 Cargo 清单导致版本号分叉
release.mjs patch --dry-run 实测:只改 8 个 package.json + 1 个 tauri.conf.json,而
apps/console/src-tauri/{Cargo.toml,Cargo.lock} 里**同样存着 2.0.2** —— 发版后必然滞留,
与 tauri.conf.json 悄悄分叉,且**不报错**(Tauri 打包以 tauri.conf.json 为准)。
- 版本写入抽成 scripts/lib/version-write.mjs(纯函数、可测),release.mjs 调用它。
抽出来的理由:埋在脚本里时单测只能断言「源码里出现过某个字符串」—— 那种守卫注入
故障都不会变红(铁律:守卫要落在最终产物字节上)。
- Cargo.toml **只在 [package] 段**改(非 package 段里也可能有独占一行的 version = "…");
Cargo.lock **按 [[package]] 块 + crate 名定位**(全文盲替换会改坏 thiserror 2.0.21
这类依赖版本)。
- release.mjs 的「脏文件白名单」改为取自**实际改写结果**(changed),不再手写文件名列表 ——
手写的那份一旦与写入逻辑漂移,要么拦下本该放行的(发版卡死),要么放过不该放行的
(静默推走改动)。
- 新增 tests/unit/version-write.test.mjs(9 条):在临时目录铺**真实文件**并 git init/git add
(versionTargets 走 git ls-files,不真进索引就会假绿),跑完读回文件断言;另含一条
**仓库版本号一致性守卫**,发版漏项会直接变红。
- 注入 4 处故障实测:编排漏 Cargo / Cargo.toml 全文盲替换 / Cargo.lock 按位置盲改 /
仓库版本分叉 —— 全部变红,还原后全绿。
2026-10-13 17:16:46 +08:00
..
2026-10-13 17:16:46 +08:00
2026-10-11 00:18:43 +08:00
2026-10-04 23:54:51 +08:00
2026-10-11 00:05:42 +08:00
2026-09-29 10:55:38 +08:00
2026-10-10 14:27:12 +08:00
2026-10-10 14:27:12 +08:00
2026-09-29 10:55:38 +08:00
2026-10-11 11:41:38 +08:00
2026-10-11 11:41:56 +08:00
2026-10-13 17:16:46 +08:00
2026-10-10 12:26:41 +08:00
2026-10-10 13:39:42 +08:00
2026-10-04 23:03:37 +08:00
2026-10-04 22:54:45 +08:00
2026-10-11 01:13:12 +08:00
2026-09-29 15:47:34 +08:00
2026-09-27 17:04:21 +08:00