- feat: add atomic save mechanism for config write protection - feat: improve source/deps encoding compatibility (GBK, UTF-8 with BOM) - feat: add smart retry mechanism to prevent AV lock (Permission Denied) - feat: add global exception logging and isolate engine build env vars - fix: resolve [WinError 1] crash during packaging on RamDisk - fix: ensure temp directory setting fully applies to venv and PyInstaller cache
349 lines
25 KiB
Markdown
349 lines
25 KiB
Markdown
# 更新日志 (Changelog)
|
||
|
||
QPyPack 项目的所有重要变更都将记录在此文件中。
|
||
|
||
本日志格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/) 规范,
|
||
且本项目严格遵循 [语义化版本 (Semantic Versioning)](https://semver.org/lang/zh-CN/) 规范。
|
||
|
||
[English Version](./CHANGELOG_EN.md) | **中文**
|
||
|
||
---
|
||
|
||
# 更新日志 (Changelog)
|
||
|
||
---
|
||
|
||
## [2.7.7] - 2026-08-09
|
||
|
||
#### 新增
|
||
- **配置写入保护**:引入原子化保存机制,彻底杜绝因断电、死机或磁盘满导致的配置丢失/损坏问题。。
|
||
- **提高编码兼容**:升级源码与依赖的读取逻辑,智能兼容 GBK、带 BOM 的 UTF-8 等多种复杂编码,告别乱码闪退。
|
||
- **抗杀软拦截**:产物输出阶段加入智能重试机制,有效解决生成瞬间被安全软件锁定而导致的“权限不足”报错。
|
||
- **稳定性增强**:增加全局异常日志捕获,并隔离了引擎编译时的环境变量,避免干扰主程序运行。
|
||
|
||
#### 修复
|
||
- 修复在部分 RamDisk(内存盘)环境下打包时,因路径解析引发 [WinError 1] 导致程序崩溃的问题。
|
||
- 修复设置面板中的“临时目录”选项未对虚拟环境和 PyInstaller 缓存完全生效的漏洞。
|
||
|
||
---
|
||
|
||
## [2.7.6] - 2026-08-08
|
||
|
||
#### 新增
|
||
- **项目沙箱智能感知**:基于脚本路径哈希与 Python 版本/架构生成唯一沙箱标识,加载项目脚本时自动感知识别已有环境并快速复用。
|
||
- **虚拟环境一键清理**:设置面板新增项目虚拟环境清理功能,自动扫描项目关联的虚拟环境,提供一键清理功能。
|
||
- **AI翻译工具**:新增 `update_locales_ai.py` 现代化 GUI 翻译管理工具,填写大模型API后可自动一键补全更新程序的翻译。
|
||
- **窗口大小记忆**:新增窗口大小调整后自己记忆保存功能,重新启动不会丢失。
|
||
|
||
#### 改进
|
||
- **环境自愈与容错降级**:重构虚拟环境有效性校验逻辑,检测到环境损坏或清理失败时自动降级至临时沙箱,确保打包流程零中断。
|
||
- **跨平台进程彻底回收**:优化打包任务取消逻辑,Linux / macOS 平台开启独立会话组销毁,彻底解决中断构建时的后台残留进程。
|
||
- **环境检测与降级告警**:优化 Python 解释器版本与架构(x64/x86)检测超时处理,增加完善的异常捕获与日志降级提示。
|
||
- **界面文案精炼**:重构依赖项与虚拟环境复选框文本,统一清理确认对话框按钮样式与风险提示。
|
||
|
||
#### 修复
|
||
- **国际化词条同步**:补全并同步环境清理、时间戳签名日志及降级告警等新增 UI 词条的简体中文映射。
|
||
|
||
---
|
||
|
||
## [2.7.5] - 2026-08-06
|
||
|
||
#### 新增
|
||
- **代码签名与时间戳**:新增 Windows / macOS 产物自动数字签名功能,支持 `.pfx` 自签名证书生成与商业证书配置;Windows 签名集成微软、DigiCert、Sectigo 等权威时间戳服务器盖章支持。
|
||
- **macOS DMG 构建**:CI/CD 构建流程支持自动生成 macOS 平台的 `.dmg` 安装包镜像。
|
||
|
||
#### 改进
|
||
- **macOS 默认签名**:macOS 平台默认开启 Ad-hoc 伪签名,解决 M 系列芯片上未签名二进制运行报“应用已损坏”的问题。
|
||
- **跨平台构建打包**:重构 CI/CD 自动化构建流程,优化 Linux 平台 PySide6 插件依赖打包与稳定性。
|
||
- **系统兼容性矩阵**:调整解释器检测逻辑,动态评估并展示各操作系统与架构的兼容性要求。
|
||
- **界面与文案优化**:统一跨平台文件选择框渲染机制;默认开发者更名为“独立开发者”,应用描述更名为“桌面应用程序”。
|
||
|
||
#### 修复
|
||
- **多语言与国际化同步**:补全并同步简体/繁体中文、日、韩、德、法、西、葡、俄等 8+ 种语言的签名日志与文本框右键菜单翻译。
|
||
- **进程资源回收**:优化打包任务异常终止时的进程管道与句柄清理逻辑。
|
||
|
||
---
|
||
|
||
## [2.7.4] - 2026-08-05
|
||
|
||
#### 新增
|
||
- **打包模式选择**:支持切换「兼容模式」与「精简模式」,兼容模式减少打包出错,精简模式打包后体积更小,构建失败时自动提供重试提示。
|
||
- **保留虚拟环境**:支持生成并复用项目本地虚拟环境,不用每次新建环境,大幅提升同一项目的建构速度。
|
||
|
||
#### 改进
|
||
- **Nuitka 策略优化**:精简模式下动态优化 `playwright`、`ttkbootstrap` 等框架的打包参数,进一步缩小产物体积。
|
||
- **右键菜单优化**:动态加载 Qt 系统翻译包,完善原生右键菜单与对话框的多语言体验,修复右键菜单底色为黑色的BUG(用了一下午才修复好==!)。
|
||
- **UI与视觉统一**:显式配置 Fusion 浅色主题 Palette,统一全局右键菜单样式,优化预设按钮布局与页面边距。
|
||
- **AST 依赖扫描**:扫描路径自动排除虚拟打包目录,统一包名小写判重匹配。
|
||
- **细节修复**:修复提示音开关响应逻辑;支持子进程独立环境变量设置;加强表格空指针安全校验;更新部分翻译;修复多个细小bug。
|
||
|
||
## [2.7.3] - 2026-08-04
|
||
|
||
#### 新增
|
||
* **Python 环境管理器**:新增环境管理弹窗,支持本地已安装 Python 的智能识别切换,以及官方/国内镜像源的一键下载安装。
|
||
* **文件夹打包模式**:运行模式新增文件夹模式,并支持自定义内部资源目录名。
|
||
* **原生 AST 依赖分析**:全面重构依赖扫描机制,使用原生 AST 解析替代 pipreqs,大幅提升隐式依赖分析速度与准确度。
|
||
* **Playwright 镜像加速**:新增 Playwright 浏览器驱动的镜像源下载及官方 CDN 自动回退机制。
|
||
|
||
#### 改进
|
||
* **UPX 动态避让**:升级 UPX 压缩策略,自动识别并排除当前 Python 版本的核心 DLL 及 `vcruntime140_1.dll`,防止报错。
|
||
* **线程与中断控制**:强化构建取消与清理逻辑,避免线程残留与临时文件锁死。
|
||
* **平台兼容与超时保护**:优化 macOS Bundle Identifier 生成逻辑,增加命令执行超时保护机制。
|
||
* **界面细节调整**:重构打包模式单选区域,精简关于页面布局与间距,更新版权标识。
|
||
* **国际化翻译**:更新部分文字表述及翻译。
|
||
|
||
---
|
||
|
||
## [2.7.2] - 2026-08-03
|
||
|
||
### 改进
|
||
* **编译器选择策略调整**:取消之前对 Python 3.13+ 强行硬编码/限制使用 Zig 编译器的逻辑。改由优化后的自适应探测策略:优先检测本地 MSVC / Clang / GCC(MinGW64) 环境,若均未检测到,则转由 Nuitka 自动检测并托管下载兼容的 MinGW-w64 C 编译器工具链。
|
||
* **更新 Python 平台兼容性矩阵**:修正设置面板中 Python 解释器选择器的平台指示卡片,更加准确地反映 Nuitka C 后端编译器的自动选择与托管能力。
|
||
* **优化构建日志与提示**:当未检测到本地 C 编译器时,显示下载 MinGW-w64 提示;增加对本地编译器的显式识别与反馈。
|
||
* **界面提示微调**:优化附加资源列表提示,引导用户使用“导出预设”进行资源配置复用;简化临时目录选项文本,提升 UI 简洁度。
|
||
* **恢复默认依赖目录**:将 PyInstaller 单目录模式的依赖文件夹名称恢复为官方默认的 `_internal`,方便同类软件合并放置以共用运行库,减少磁盘占用。
|
||
* **优化交互状态保持**:拖入新脚本或重置工作区时,不再清空用户已配置的“自定义输出目录”,提升连续打包时的操作体验。
|
||
|
||
---
|
||
|
||
## [2.7.1] - 2026-08-02
|
||
|
||
### 新增
|
||
* **防锁临时目录选项**:设置页面新增“临时目录”位置选择,支持将 Nuitka 中间编译沙盒切换至系统 Temp 目录,解决 OneDrive/杀毒软件锁定文件导致的构建中断问题。
|
||
|
||
### 改进
|
||
* **无缝多版本重构建体验**:打包完成后,切换 Python 解释器或修改配置保存返回时,自动保持脚本载入状态,100% 完整保留图标、版本元数据、隐式导入与附加资源,告别重复拖入与重新加载预设的繁琐流程。
|
||
|
||
---
|
||
|
||
## [2.7.0] - 2026-08-01
|
||
|
||
### 新增
|
||
* **Nuitka 自动编译器嗅探与探测**:新增对 `Clang` (LLVM) 与 `Zig`(专为 Python 3.13+ C 后端优化)编译器的自动探测与调用支持,优先与系统 MSVC (`--msvc=latest`) 或 Clang 自动匹配。
|
||
* **免配置第三方库打包预设**:内置对 `ttkbootstrap`、`customtkinter`、`playwright`、`moviepy` 等高频报错/丢失资源库的自动化 `--collect-all` 与 `--collect-data` 处理,实现零配置打包。
|
||
* **双模式实时日志查看器**:引入“精简模式 (Concise)”与“详细模式 (Detailed)”双视图日志查看器,支持在面板上方一键无缝实时切换、清空与导出日志。
|
||
* **智能 Python 平台兼容性提示**:设置页面的 Python 解释器选择器新增动态指示卡片,实时展示对 Windows 7/8/10/11、macOS 及 Linux 的支持状态与官方下载引导。
|
||
* **构建容错与降级保护机制**:新增编译前物理内存与磁盘空间评估;遭遇 `ZstdError` (OOM 内存溢出) 时自动触发单线程 (`--jobs=1`) 降级重试;遭遇杀毒软件或系统锁定图标时自动触发剥离图标降级构建。
|
||
|
||
### 修复
|
||
* **源码 BOM 与编码解析兼容**:修复处理包含特殊 BOM (`utf-8-sig`) 或非标准系统回退编码的源码时,AST 模块可能抛出解码异常导致扫描中断的问题。
|
||
* **云盘锁定感知与预警**:修复工作所在目录受 OneDrive / Dropbox 等云盘锁定同步时,缺乏明确预警导致打包中断的问题。
|
||
* **控制台程序运行时崩溃**:修复因控制台“按回车退出逻辑与源码语法块作用域/闭合冲突引发的崩溃问题。
|
||
|
||
### 改进
|
||
* **AST 解析引擎原生化重构**:将源码隐式依赖扫描由子进程调用彻底重构为同进程原生 AST 模块解析,大幅降低系统资源开销并成倍提升扫描速度。
|
||
* **环境检索异步并发加速**:引入多线程异步并发检测机制,对系统内所有候选 Python 环境进行并行嗅探与版本校验,彻底消除软件启动时的 I/O 卡顿。
|
||
* **纯矢量 UI 规范与 Emoji 清理**:全面清理侧边栏、Tab 标签及语言列表中的 Emoji 表情,全量升级为 Google Material SVG 矢量图标栈,解决 Linux 及老旧 Windows 系统下的字体回退乱码与排版跳动问题。
|
||
* **卡片式动态构建状态反馈**:主面板拖拽区与状态栏支持实时捕获并渲染编译引擎(Nuitka / Scons / PyInstaller)极细粒度的编译进度文本,大幅缓解打包等待焦虑。
|
||
* **重构“关于”页面与赞助交互**:全新设计“关于”选项卡,引入可视化 GitHub、PyPI、Issues 动作行按钮及自愿赞助模块。
|
||
* **依赖安装弹性降级策略**:重构 pip 依赖构建逻辑,采用统一原子依赖清单;当指定严格版本号(`==`)安装失败时,自动剥离版本约束并拉取最新兼容版本。
|
||
* **跨平台原生字节流图标生成**:剥离对 macOS `sips` 命令行工具的强依赖,重构纯 Python 原生字节流拼装机制处理跨平台 `.ico` 与 `.icns` 生成。
|
||
* **扩展第三方包名映射库**:扩展内置包名映射字典,补充 `pyside6_addons`、`pyside6_essentials`、`attrs`、`psycopg2-binary` 等常见第三方包映射。
|
||
|
||
---
|
||
|
||
## [2.6.2] - 2026-07-27
|
||
|
||
* **新增界面推移动画**:重构切页逻辑,新增双图层平滑推移过渡动画,彻底消除从设置页返回主界面时的排版闪烁与图标跳动。
|
||
* **非打断式通知系统**:全面剥离强侵入式的 `QMessageBox` 阻塞弹窗,改用底部状态栏 Toast 轻量级通知,保障打包工作流连贯。
|
||
* **错误日志红色高亮**:遇致命异常、锁定文件或依赖缺失时,自动展开日志面板并以醒目红色 HTML 字体高亮呈现,便于快速定位。
|
||
|
||
* **GNU gettext 引擎重构**:引入 `TranslationEngine`,将全软件中文硬编码重构为英文原文 Base Key 模式;内置 `zh_CN` 兜底字典,实现零外部依赖运行。
|
||
* **全球主流多语言扩展**:新增日 (`ja_JP`)、韩 (`ko_KR`)、法 (`fr_FR`)、德 (`de_DE`)、西 (`es_ES`)、俄 (`ru_RU`)、葡 (`pt_BR`)、繁中 (`zh_TW`) 等语言包支持。
|
||
* **智能语言选择器**:设置界面新增语言切换下拉框,支持各国原生母语名称显示(如 Deutsch, Français),并能精准动态识别当前系统默认语言。
|
||
|
||
* **作用域变量冲突**:修复 `QFileDialog` 解构占位符 `fp, _` 意外覆盖全局翻译函数 `_()` 导致局部作用域崩溃的严重隐患。
|
||
* **Qt 动画引擎警告**:修复旧版 geometry 动画作用于 `QStackedLayout` 时抛出 `starting an animation without end value` 的底层警告。
|
||
* **PyPI 静态资源打包**:`pyproject.toml` 补全 `locales/*.json` 资源打包规则,確保 `pip install` 安装后多语言功能依然有效。
|
||
|
||
---
|
||
|
||
## [2.6.1] - 2026-07-25
|
||
|
||
* **消除依赖污染**:修复开启“精简模式”时,AST 引擎错误遍历整个父目录的 Bug,解决打包产物被混入无关依赖的问题。
|
||
* **构建沙盒隔离**:默认将目标脚本放入独立沙盒中解析,杜绝同目录其他脚本的依赖干扰;同时在 UI 界面新增“允许扫描同目录所有文件”开关。
|
||
* **MSVC 智能检测**:引入本地 C++ 编译环境智能嗅探。若系统已安装 MSVC,Nuitka 将自动启用 `--msvc=latest`,优先使用系统原生编译器,提升兼容性并免除耗时的 MinGW 下载。
|
||
* **UPX 警告静默**:自动识别并跳过系统核心动态库的 UPX 压缩报错,并小幅提升构建速度。
|
||
|
||
---
|
||
|
||
## [2.6.0] - 2026-07-24
|
||
|
||
### 🎨 交互与 UI 架构重构
|
||
* **重构 TAB 导航**:重新分配 TAB 布局,界面更加美观易用。
|
||
* **布局与字体精细化**:紧凑化引擎描述框布局;引入跨平台安全字体栈,零侵权风险且全平台优雅回退。
|
||
* **高分屏渲染优化**:优先提取 256px 高清图标图层,结合浮点精度绘制,解决 125%~200% 屏幕缩放下的图标模糊。
|
||
|
||
### 🛠️ 打包引擎与稳定性修复
|
||
* **防穿透包名兜底**:内置 C 扩展模块硬编码映射,避免出现找不到包的错误。
|
||
* **拦截虚假切源警报**:智能识别 pip 包名错误,避免在镜像源网络正常时误报“主镜像源连接超时”。
|
||
* **只读目录权限防护**:控制台防闪退注入脚本改写至系统临时目录,防止因源目录只读导致打包中断。
|
||
|
||
---
|
||
|
||
## [2.5.7] - 2026-07-23
|
||
|
||
* **完善日志右键菜单**:新增清空日志、导出日志功能。
|
||
* **下拉菜单与样式优化**:修复非编辑模式下拉框导致的文本重叠 Bug。
|
||
* **按钮与布局规格统一**:统一“浏览”、“AST 扫描”等工具按钮的长度和大小。
|
||
* **细节提升**:拖拽区域的主标题与副标题均开启自动换行,防止载入长路径文件时挤压主面板。
|
||
|
||
---
|
||
|
||
## [2.5.6] - 2026-07-23
|
||
|
||
* **PIP 双源备份**:新增备用镜像源配置与故障自动重试机制,内置国内主流 PyPI 镜像预设。
|
||
* **UI 与视觉重构**:重构 `QComboBox` 悬浮下拉框,统一极简白色主题与滚动体验;Tab 标签栏改为居中对齐,优化窗口最小宽度(710px)。
|
||
* **打包稳定性提升**:依赖安装全流程接管,支持主/备源自动降级切源;补全 PyInstaller Windows 版本元数据的 `VarFileInfo` 翻译头字段;优化精简模式下的排除模块策略。
|
||
|
||
---
|
||
|
||
## [2.5.5] - 2026-07-22
|
||
|
||
* **消除误删风险**:优化目录 `build/dist` 智能清理,保护桌面及工作区安全。
|
||
* **全沙盒隔离编译**:引入系统级临时目录隔离输出,彻底解决跨盘符与路径割裂异常。
|
||
* **修复路径映射与 UX**:构建 cwd 重定向至源码目录以完美解析相对路径;修正 `open_dist` 打开逻辑。
|
||
* **修复 pipreqs 崩溃**:解决依赖自动扫描过程中的编码中断问题。
|
||
|
||
---
|
||
|
||
## [2.5.4] - 2026-07-18
|
||
|
||
* **新增精简模式**:自动剔除 `pip`、`unittest` 等冗余库并启用 Nuitka `-OO` 优化,大幅缩减产物体积;配套深度源码静态扫描(至多检索 500 个本地依赖),保障极致精简下的运行稳定性。
|
||
* **修复 UPX 假性报错**:当未勾选 UPX 时,显式向引擎传递 `--noupx` 指令,阻断 PyInstaller 静默调用系统 UPX 造成的兼容性报错与日志干扰。
|
||
* **修复日志中文乱码**:对底层命令行调用 (`subprocess`) 全面强制追加 `encoding="utf-8"` 参数,彻底解决 Windows 默认编码 (GBK) 解析字节流时引发的控制台乱码。
|
||
|
||
---
|
||
|
||
## [2.5.3] - 2026-07-17
|
||
|
||
* **引擎版本锁定**:支持在高级设置中自定义 Nuitka / PyInstaller / pipreqs 的版本,杜绝上游更新导致的打包失败。
|
||
* **动态进度 UI**:主界面大字标题实时同步并轮播当前构建步骤,告别卡顿感与等待焦虑。
|
||
* **解决编译崩溃**:全局强制注入 UTF-8 环境,修复 Windows 中文系统下 Nuitka 解析 PyTorch 等库时因 GBK 编码导致的致命报错。
|
||
* **高分屏渲染修复**:解决非整数缩放(如 125%)下的字体发虚问题,清理冗余代码消除 DPI 权限报错。
|
||
* **依赖扫描自适应**:修复非 UTF-8 编码源码导致 `pipreqs` 分析崩溃的问题,支持自动回退本地编码。
|
||
* **智能解释器检索**:合并 `.EXE/.exe` 重复路径,默认选中当前环境,并剥离 `\\?\` 路径前缀以防子进程调用异常。
|
||
* **绝对无痕清理**:增加对 `nuitka-crash-report.xml` 与临时 `__pycache__` 的强制回收,绝不污染用户目录。
|
||
* **修复图标未更新问题**:修复添加新的打包会导致图标未能更新的问题。
|
||
|
||
---
|
||
|
||
## [2.5.2] - 2026-07-15
|
||
|
||
* **重构编译后端指令集**:将 PyInstaller 与 Nuitka 的底层打包参数生成逻辑重构为两套完全独立、互不干扰的构建分支,彻底消除参数污染隐患。
|
||
* **优化 Nuitka 附加资源兼容性**:针对 Nuitka 编译器在处理单个附加数据文件时,若目标相对路径为 `.` 会导致编译崩溃的问题进行了自适应修复 (`os.path.normpath` 路径标准化)。
|
||
* **修正 Nuitka 排除模块指令**:将排除特定模块参数修正为 Nuitka 官方标准的 `--nofollow-import-to`。
|
||
* **完善 Windows 二进制属性映射**:修正应用描述正确映射至 `--file-description`,应用名称映射至 `--product-name`,补充 `--product-version` 参数。
|
||
|
||
---
|
||
|
||
## [2.5.1] - 2026-07-15
|
||
|
||
* **多平台自动编译**:利用 GitHub Actions,在 windows-latest、macos-latest 和 ubuntu-latest 三种容器中并发运行,自动将产物打包归档并上传至 Tag Release 附件。
|
||
* **扁平风格**:清除 Emoji 表情,全面换装扁平化 Google 风格矢量图标。
|
||
* **修改版权信息显示**:删除标题栏作者信息,增加状态栏右侧常驻版权声明(自适应隐藏)。
|
||
|
||
---
|
||
|
||
## [2.5.0] - 2026-07-15
|
||
|
||
* **安全去耦与跨平台稳定性优化**:完全隔离 Windows 的 `winreg` 注册表静态调用,保障 macOS 与 Linux 等非 Windows 环境下的静态加载安全性。
|
||
* **自适应图像格式转换引擎**:引入全新的 `convert_image_to_format` 弹性图形转译机制,支持 SVG、PNG、JPG 转换为 `.ico` 与 `.icns`。
|
||
* **应用元数据精准转译与写入**:Windows 下自动动态写入 `VSVersionInfo` 元数据,macOS 平台自动映射生成规范的 Bundle ID(如 `com.company.appname`)。
|
||
* **多维异构构建产物精准提炼**:重构底层产物移动(Move)与重置逻辑,精准捕获 Windows `.exe`、macOS `.app` 以及 UNIX 无后缀二进制。
|
||
|
||
---
|
||
|
||
## [2.4.6] - 2026-07-12
|
||
|
||
* **跨平台兼容性适配**:修复底层进程调用中 Windows 平台专有 `creationflags` 导致非 Windows 系统崩溃的异常;重构 UNIX 环境下的 Python 解释器探测器。
|
||
* **UI 现代化重构与 UX 体验升级**:采用卡片式容器布局 (Card-based Layout),引入“胶囊式子导航 (Pill-Tabs)”,全面解决低分辨率缩放下的组件挤压问题。
|
||
* **多版本内核独立编译沙盒**:支持全局指定或浏览任意版本的 Python 解释器,并在专属内核沙盒中完成代码解析与独立编译。
|
||
* **关于界面视觉重构**:引入原生交互式动作行 (Action Row),支持无缝调用系统浏览器跳转开源仓库;修复 ICO 图标抗锯齿失真问题。
|
||
|
||
---
|
||
|
||
## [2.4.5] - 2026-07-06
|
||
|
||
* **源码解析安全修复**:移除了进行依赖扫描和控制台防闪退注入时对源码换行符 (CRLF 强转 LF) 的干预,修复潜在的多行字符串解析错误及文件破坏问题。
|
||
|
||
---
|
||
|
||
## [2.4.4] - 2026-07-06
|
||
|
||
* **附加资源可视化管理**:引入列表化管理组件,支持通过图形化对话框分别添加“文件”和“文件夹”,并支持双击列表条目修改相對釋放路徑。
|
||
* **路径解析引擎升级**:重写底层存储与 `--add-data` 指令拼接逻辑,解决绝对路径被错误切割的解析隐患。
|
||
|
||
---
|
||
|
||
## [2.4.3] - 2026-07-01
|
||
|
||
* **自定义依赖清单支持**:新增指定依赖文件路径配置,支持为不同脚本绑定不同的 `requirements.txt`。
|
||
* **修复控制台模式下导入及资源读取异常**:调整控制台防闪退代码注入逻辑,将临时入口文件限制在源脚本同级目录下,规避相对导入 (Import) 失效。
|
||
* **重构后台分析线程控制逻辑**:废弃不安全的 `QThread.terminate()`,采用解绑信号的处理机制,降低界面卡死或死锁概率。
|
||
* **提升 Nuitka Standalone 打包兼容性**:改用动态扫描匹配 `.dist` 产物文件夹,避免入口重命名导致的构建异常。
|
||
|
||
---
|
||
|
||
## [2.4.2] - 2026-06-28
|
||
|
||
* **编译语法异常诊断**:编译失败时,自动扫描构建日志,精准识别源码中的 `IndentationError`、`SyntaxError` 和 `TabError`。
|
||
* **精准定位错误源**:解析并高亮展示语法错误的源文件名、行号及错误描述,区分“源码逻辑异常”与“打包工具故障”。
|
||
|
||
---
|
||
|
||
## [2.4.1] - 2026-06-25
|
||
|
||
* **模块化配置重构**:重构设置面板,将参数分类为“应用元数据”、“编译控制”、“资源与沙盒”、“软件设置”四大模块。
|
||
* **自定义归档目录**:支持将编译产物输出至全局指定的自定义目录,并支持对缺失的多级父目录进行自动递归创建。
|
||
* **并发编译限制**:支持手动限制打包引擎并发编译时占用的最大 CPU 核心数。
|
||
* **编译提示音效与自动日志保存**:引入系统级音频通知,并在任务结束后支持在目标输出路径自动保存 `.log` 运行日志。
|
||
|
||
---
|
||
|
||
## [2.4.0] - 2026-06-22
|
||
|
||
* **控制台防闪退机制**:非 GUI 模式打包时,自动在临时脚本尾部注入防闪退控制代码。
|
||
* **提升文件删除鲁棒性**:重构临时目录清理机制,引入带重试延时与只读属性解除的 `robust_rmtree` 回收机制。
|
||
* **云盘锁状态前置拦截**:对处于 OneDrive 等云同步锁定状态的文件提供前置 I/O 异常检测。
|
||
* **持续集成与自动发布**:新增 GitHub Actions 工作流,推送 Tag 自动触发 PyPI 发布与 GitHub Release 附件上传。
|
||
|
||
---
|
||
|
||
## [2.3.5] - 2026-06-17
|
||
|
||
* **防漏包机制**:重构依赖拉取架构为“三重绝对安全网”(`Requirements -> Pipreqs -> AST 源码强扫`),彻底解决漏包闪退问题。
|
||
* **工作区零污染**:配置文件迁移至全局路径 `~/.qpypack/config.ini`,所有中间产物转移至系统 Temp 目录。
|
||
* **构建日志规范化**:引入规范的 CI/CD 生命周期状态标签 (`[Init]`, `[Env]`, `[Deps]`, `[Build]`, `[Pack]`)。
|
||
* **虚拟环境沙盒智能自愈**:分配隔离 venv 后自动升级 pip,清除老旧模块的大段警告乱码。
|
||
|
||
---
|
||
|
||
## [2.3.0] - 2026-06-15
|
||
|
||
* **UI 框架重构**:由 PyQt5 升级至 PySide6,优化高分屏 (High-DPI) 缩放表现。
|
||
* **精简架构**:移除 cx_Freeze,专注打磨 PyInstaller 与 Nuitka 双核心引擎。
|
||
* **Nuitka 最佳实践**:单文件模式下强制启用 `zstandard` 压缩;引入 `anti-bloat` 防膨胀插件;自动识别 `tkinter` 探针。
|
||
|
||
---
|
||
|
||
## [2.2.0] - 2026-06-14
|
||
|
||
* **更名与规范**:正式更名为 **QPyPack**,规范化内部沙盒与临时文件命名。
|
||
* **超时守护 (Watchdog)**:引入看门狗机制,为关键打包步骤设置超时限制,防止构建无限期挂起。
|
||
* **智能命名输出**:自动解析脚本版本,预设输出文件名为 `{Name}_{Version}` 格式。
|
||
|
||
---
|
||
|
||
## [1.0.1] - 2026-05-31
|
||
|
||
* **自定义 PIP 镜像源**:引入 PIP 镜像源配置,默认使用清华大学开源镜像源,支持修改即时生效与 QSettings 持久化存储。
|
||
* **构建逻辑统一**:虚拟环境初始化与依赖解析统一走用户配置的自定义 PIP 镜像源。
|
||
|
||
---
|
||
|
||
## 📄 License
|
||
|
||
Copyright (C) 2026 QwejayHuang.
|
||
Licensed under the [GNU General Public License v3.0](LICENSE).
|