build: use branded release package names

This commit is contained in:
chengma
2026-07-08 14:21:31 +08:00
parent ebb1f8a354
commit 5469479f3e
6 changed files with 55 additions and 22 deletions
+12 -12
View File
@@ -36,7 +36,7 @@ dist\cmshopee\
<PyInstaller 依赖文件和依赖目录>
```
正式分发入口是 `release\cmshopee-<APP_VERSION>-portable.zip`。`dist\cmshopee\` 只是 PyInstaller 构建中间产物,不直接作为正式发包名称。
正式分发入口是 `release\蝦皮圈優化助手<APP_VERSION>.zip`。`dist\cmshopee\` 只是 PyInstaller 构建中间产物,不直接作为正式发包名称。
当前 `requirements-build.txt` 锁定 PyInstaller 6.11.1,onedir 产物必须是 `cmshopee.exe` + `_internal\` 集中依赖布局。`scripts\build_exe.ps1` 会校验 `_internal\` 存在;缺失时直接失败,避免把不一致的打包环境误发给用户。
@@ -80,32 +80,32 @@ APP_UPDATE_CHECK_URL = "https://cm.833729.com/api/v1/client/releases/latest?plat
```text
release\
cmshopee-0.1.0\
蝦皮圈優化助手0.1.0\
cmshopee.exe
_internal\
<PyInstaller 依赖文件和依赖目录>
version.txt
README.txt
cmshopee-0.1.0-portable.zip
蝦皮圈優化助手0.1.0.zip
```
说明:
- `dist\cmshopee\` 是构建中间产物,不直接作为正式发包名称。
- `release\cmshopee-<APP_VERSION>\` 是人工验收和分发目录。
- `release\cmshopee-<APP_VERSION>-portable.zip` 是交付给用户的便携压缩包。
- `release\蝦皮圈優化助手<APP_VERSION>\` 是人工验收和分发目录。
- `release\蝦皮圈優化助手<APP_VERSION>.zip` 是交付给用户的便携压缩包。
- `version.txt` 使用 ASCII/UTF-8 无 BOM 写入 `APP_VERSION`,用于人工排查和未来更新机制读取。
- `README.txt` 用中文写明启动方式、不要放入 `Program Files`、保留 `data\`、升级时覆盖程序文件但不覆盖 `data\`。
当前 PyInstaller 6.11.1 的 onedir 为集中依赖结构,所以 `release\cmshopee-<APP_VERSION>\` 必须包含 `cmshopee.exe` 和 `_internal\`,不得只复制单个 exe。
当前 PyInstaller 6.11.1 的 onedir 为集中依赖结构,所以 `release\蝦皮圈優化助手<APP_VERSION>\` 必须包含 `cmshopee.exe` 和 `_internal\`,不得只复制单个 exe。
### 3.3 正式出包流程
1. 修改 `app/version.py` 中的 `APP_VERSION`。
2. 运行语法检查和单元测试。
3. 运行 `powershell -ExecutionPolicy Bypass -File scripts\build_exe.ps1`。
4. 检查 `release\cmshopee-<APP_VERSION>\version.txt`、GUI 标题栏版本、压缩包文件名三者一致。
5. 在无 Python 环境的 Windows 10/11 机器上解压 `cmshopee-<APP_VERSION>-portable.zip` 并启动验证。
4. 检查 `release\蝦皮圈優化助手<APP_VERSION>\version.txt`、GUI 标题栏版本、压缩包文件名三者一致。
5. 在无 Python 环境的 Windows 10/11 机器上解压 `蝦皮圈優化助手<APP_VERSION>.zip` 并启动验证。
正式发布构建固定使用 Python 3.10。源码在 Python 3.7.9 上曾验证可运行,但发布包不再以 3.7.9 作为打包基线;脚本会直接调用 `py -3.10` 并校验返回版本必须是 `3.10.x`,避免同一个 `APP_VERSION` 在不同 Python 版本下打出不可比对的包。CI 仍可继续使用 Python 3.11 做自动测试。
@@ -128,7 +128,7 @@ T-544 第一版目标是**启动时检查是否必须升级**,但仍不做自
"latest_version": "0.1.1",
"min_supported_version": "0.1.1",
"force_update": true,
"download_url": "https://example.com/cmshopee-0.1.1-portable.zip",
"download_url": "https://example.com/蝦皮圈優化助手0.1.1.zip",
"sha256": "optional-release-zip-sha256",
"message": "发现必须升级的新版本,请下载后覆盖当前程序文件,保留 data 目录。"
}
@@ -141,7 +141,7 @@ T-544 第一版目标是**启动时检查是否必须升级**,但仍不做自
"platform": "windows",
"release": {
"version": "0.1.0",
"download_url": "https://example.com/cmshopee-0.1.0-portable.zip",
"download_url": "https://example.com/蝦皮圈優化助手0.1.0.zip",
"sha256": "",
"release_notes": "发布说明"
}
@@ -238,7 +238,7 @@ cmshopee\
1. 让用户先关闭 cmshopee。
2. 建议用户备份当前整个程序文件夹。
3. 解压新版 `release\cmshopee-<APP_VERSION>-portable.zip`。
3. 解压新版 `release\蝦皮圈優化助手<APP_VERSION>.zip`。
4. 覆盖新版程序文件和依赖文件。当前 PyInstaller 6.11.1 是 `cmshopee.exe` + `_internal\` onedir,不能只覆盖 `cmshopee.exe`;应把新版 `cmshopee.exe`、`_internal\`、`version.txt`、`README.txt` 等程序文件整体覆盖到旧程序目录。
5. 保留旧目录里的 `data\`,不要删除、覆盖或合并它。
@@ -259,7 +259,7 @@ powershell -ExecutionPolicy Bypass -File scripts\build_exe.ps1
- `dist\cmshopee\cmshopee.exe` 存在。
- 当前 PyInstaller 6.11.1 下 `dist\cmshopee\_internal\` 必须存在。
- `dist\cmshopee\` 中没有第四节列出的本地数据,尤其不能含 `data\`。
- `release\cmshopee-<APP_VERSION>\version.txt`、GUI 标题栏版本、压缩包文件名三者一致。
- `release\蝦皮圈優化助手<APP_VERSION>\version.txt`、GUI 标题栏版本、压缩包文件名三者一致。
- 在干净目录首次启动时能生成 `data\config.json` 并进入 GUI。
- 在目标 Windows 10/11 机器或虚拟机上启动 release exe 后,主窗口标题栏完整可见,左边缘不出屏,用户能用标题栏拖动窗口;小分辨率环境不得出现窗口卡在左上角且标题栏不可拖动的问题(见 T-541)。