按用户规矩升到 1.9.0(有新内容+重构,不是只修 bug)+ 加版本号一致性检查

用户定的规矩:
    只修 bug        -> 最后一位 +1    1.8.2 -> 1.8.3
    加新内容/重构    -> 第二位 +1,最后一位清 0    1.8.2 -> 1.9.0

这一轮既有新东西(设置窗口的中转服务器字段、允许新设备接入开关、
双击开设置窗口)又有重构(手表面板切换收成 showOnly()),
所以是 **1.9.0**,不是我之前说的 1.8.3。

== 顺手加了个「版本号一致性」检查(回归阶段 3a8)==

版本号散落在 8 个地方,靠脚本+人工替换很容易漏。实测漏了两个,
而且**漏了不报错**,只是用户看到一个对不上的版本号:

  * windows/version_info.txt 写着 1.7.1
    -> 用户在「文件属性 -> 详细信息」里看到的版本,错了三个版本
  * docs/LICENSE.txt 写着 1.7.1
    -> 安装时许可页上显示 1.7.1

第二个的根因值得记:installer/build_installer.py 会从 docs/ 里三份
文档**重新生成** license-combined.txt,所以光改生成物没用 ——
下次构建又变回去(我第一次就是这么被骗的)。改成在 build_license()
里**统一注入当前版本**,源文档写什么都不影响。

新增:
  _tests/check_version_consistency.py   检查 8 处版本号一致
  _build/add_verify_stage.py            给套件加阶段(不经 shell,
                                        不会被 PowerShell 吃掉 \$ 变量)
  _build/fix_license_version.py         按行精确修 license

== 另外修了两个我自己的坑 ==

1. verify_all.ps1 被 PowerShell heredoc 吃掉了 \ / \,
   整个脚本语法错。**同一个坑踩了两次**(3a7 和 3a8)。
   以后给 .ps1 加含 \$ 的内容一律写 Python 脚本文件再跑。

2. build_exe.ps1 被 edit 工具吃掉了 UTF-8 BOM
   (PowerShell 5.1 会按 GBK 读,中文注释乱码)。

全量回归 43 个阶段全部通过。
This commit is contained in:
xmz7891
2026-10-07 22:10:14 +08:00
parent fc61dad0a3
commit de5018bbbe
19 changed files with 751 additions and 382 deletions
+19 -1
View File
@@ -60,8 +60,26 @@
## 三、发版必须更新版本号
> 用户原话:「自行更新版号」
> 后来又补了怎么加的规定(见下表)
每次上传都要升版本号。版本号散落在多处,**用脚本统一改**:
每次上传都要升版本号。**怎么加按改动性质定**:
| 改动性质 | 怎么加 | 例子 |
|---|---|---|
| **只修 bug** | 最后一位 +1 | 1.8.2 → **1.8.3** |
| **加了新内容 / 重构** | 第二位 +1,**最后一位清 0** | 1.8.2 → **1.9.0** |
⚠️ **一轮里只要同时有"新东西"和"修 bug",就按新东西算**(升第二位)。
比如某一轮既加了设置窗口的中转服务器字段(新功能)、
又把面板切换重构成 `showOnly()`(重构)、还修了 502(bug)——
那就是 **1.9.0**,不是 1.8.3。
**为什么这条重要**:下载站是按 URL 缓存的
(`/download/ykxmz-setup-1.8.2.exe` 带 `max-age=604800, immutable`)。
**内容变了但不换 URL,缓存就会失效一次** —— 实测重新打包 server.zip
之后第一次请求 `cf-cache-status=MISS`。升版本号正好把 URL 换掉。
版本号散落在多处,**用脚本统一改**:
```powershell
python _build\bump_180.py # 改版本号时把里面的 OLD/NEW 改掉