Skip to content

build(deps): bump zip from 4.6.1 to 9.0.5 in /apps/desktop/loopx-control-plane/src-tauri - #7629

Merged
huangruiteng merged 1 commit into
mainfrom
dependabot/cargo/apps/desktop/loopx-control-plane/src-tauri/zip-9.0.5
Oct 29, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
dependabot/cargo/apps/desktop/loopx-control-plane/src-tauri/zip-9.0.5

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 29, 2026

Copy link
Copy Markdown
Contributor

Bumps zip from 4.6.1 to 9.0.5.

Release notes

Sourced from zip's releases.

v9.0.5

🐛 Bug Fixes

  • use mode_t for fchmodat's mode, which is u32 on NetBSD and OpenBSD (#1076)
  • (write) prevent duplicate 0x9901 AES extra field in raw_copy_file (#1078)

⚙️ Miscellaneous Tasks

  • Enable release-plz on backport branches in future (#1079)

v9.0.4

🐛 Bug Fixes

  • enclosed_name rejects a separator inside one verbatim path component (#1066)
  • return Ok(None) when read_zipfile_from_stream is called on an empty archive (#1063)

⚙️ Miscellaneous Tasks

  • Revert impl Copy for Zip64CentralDirectoryEndLocator due to failing semver check, fix CI where most Miri tests weren't running, and other fixes so other PRs can pass CI (#1065)
  • update lzma-rust2 and ppmd-rust dependencies (#1060)

v9.0.3

🐛 Bug Fixes

  • Preserve directories' read-only status when extracting on non-Unix systems (#1054)

v9.0.1

🐛 Bug Fixes

  • set_permissions was still following symlinks in non-streaming extraction (#1038)
  • two arithmetic overflows in the implode decoder (#1028)
  • reject an empty archive whose central directory offset is past the EOCD (#1025)
  • don't panic when two entries extract to the same path (#1023)
  • fail reads that exceed the declared uncompressed size (#1022)
  • shrink decoder skipped LZW code 8191 (#1029)
  • write only the sentinel-marked values in a central ZIP64 field (#1027)

v9.0.0

🚀 Features

  • add ZipFileBuilder for parallelizing compression (#911)
  • add method by_index_with_data_descriptor (#994)
  • add len, is_empty and entry to ZipArchiveMetadata (#1015)
  • read data descriptor from binary (#990)
  • add comment and test for ZipStreamReader and symlinks (#985)
  • (write) add ZipWriter::hide_file for in-place entry deletion (#924)
  • add compression (#948)
  • add test to in place modification (#945)
  • move CustomExtraField to own file (#941)
  • add a test on enum size (#939)

... (truncated)

Changelog

Sourced from zip's changelog.

9.0.5 - 2026-10-17

🐛 Bug Fixes

  • use mode_t for fchmodat's mode, which is u32 on NetBSD and OpenBSD (#1076)
  • (write) prevent duplicate 0x9901 AES extra field in raw_copy_file (#1078)

⚙️ Miscellaneous Tasks

  • Enable release-plz on backport branches in future (#1079)

9.0.4 - 2026-10-16

🐛 Bug Fixes

  • enclosed_name rejects a separator inside one verbatim path component (#1066)
  • return Ok(None) when read_zipfile_from_stream is called on an empty archive (#1063)

⚙️ Miscellaneous Tasks

  • Revert impl Copy for Zip64CentralDirectoryEndLocator due to failing semver check, fix CI where most Miri tests weren't running, and other fixes so other PRs can pass CI (#1065)
  • update lzma-rust2 and ppmd-rust dependencies (#1060)

9.0.3 - 2026-10-13

🐛 Bug Fixes

  • Preserve directories' read-only status when extracting on non-Unix systems (#1054)

9.0.2 - 2026-10-11

🐛 Bug Fixes

  • additional bug fixes for symlink extraction

9.0.1 - 2026-10-10

🐛 Bug Fixes

  • set_permissions was still following symlinks in non-streaming extraction (#1038)
  • two arithmetic overflows in the implode decoder (#1028)
  • reject an empty archive whose central directory offset is past the EOCD (#1025)
  • don't panic when two entries extract to the same path (#1023)
  • fail reads that exceed the declared uncompressed size (#1022)
  • shrink decoder skipped LZW code 8191 (#1029)
  • write only the sentinel-marked values in a central ZIP64 field (#1027)

9.0.0 - 2026-10-08

🚀 Features

... (truncated)

Commits
  • 0123ed1 chore: release v9.0.5 (#1093)
  • 00cf82b docs: Repeal policy of yanking versions with known vulnerabilities, add menti...
  • 52165b9 chore: Enable release-plz on backport branches in future (#1079)
  • ca51e64 docs: Remove doc links that break when doc build doesn't enable all features ...
  • 6639687 fix: use mode_t for fchmodat's mode, which is u32 on NetBSD and OpenBSD (#1076)
  • 5e06fa8 fix(write): prevent duplicate 0x9901 AES extra field in raw_copy_file (#1078)
  • b6f9fb8 Merge commit from fork
  • ea2ccfe Merge commit from fork
  • 8068ab4 Merge commit from fork
  • 0b51128 doc: Clarifications to security policy (#1074)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [zip](https://github.com/zip-rs/zip2) from 4.6.1 to 9.0.5.
- [Release notes](https://github.com/zip-rs/zip2/releases)
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md)
- [Commits](zip-rs/zip2@v4.6.1...v9.0.5)

---
updated-dependencies:
- dependency-name: zip
  dependency-version: 9.0.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Oct 29, 2026
@dependabot
dependabot Bot requested a review from huangruiteng as a code owner October 29, 2026 06:08
@dependabot dependabot Bot added the rust Pull requests that update rust code label Oct 29, 2026

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=max.

APPROVE:未发现阻断项。 这是 Windows 测试依赖的有界升级,生产 updater 仍使用 zip 4.6.1。评审绑定完整 head 090c752ee2a34ce18b7f2780c14fbbf8e94d9c96,base ee7b65f124f5f461b3e5f9f6fb45eae0e6c317f4。

动机 / Motivation

Windows 桌面更新回归测试的维护者。既有 NSIS 归档夹具使用 zip 4.6.1;本提案仅把其 writer 依赖更新为 9.0.5,并保持旧 updater 的读取输入兼容。在已执行的 macOS 源码复用验证中,新旧 writer 输出相同归档,现有读取和签名负例继续成立。不升级生产解压器、不改安装或服务回收逻辑,也不声称完成 Windows 原生窗口/安装验收。

旧夹具本来就能生成归档;本次收益是让已有回归的生成端完成依赖维护,而不是证明修复了某个生产安全漏洞。实际消费者仍是原来的 Windows 更新失败回归,没有另建测试入口或安装流程。

改动思路 / Approach

writer 属于既有测试夹具,reader 继续由已锁定的 updater 拥有;保持不同依赖版本比扩大到生产更新器迁移更符合本次边界。当前 PR 保留为 Windows 测试归档生成器的依赖维护;不顺带升级生产 updater,也不增加新 helper 或状态 owner。

先用 Cargo 的实际 Windows 目标解析确认边界,再直接比较归档协议:原样复用 nsis_artifact,分别链接 registry 中的 zip 4.6.1 和 9.0.5;输出交给真实 zip 4.6.1 解包及原 minisign 验证器。这样能发现“macOS 桌面测试通过,却根本没编译 Windows-only 新依赖”的盲区,同时不把一个 writer 更新扩成 updater 的生产迁移。

具体改动 / Changes

完整 diff 是两文件 +41/-4:Cargo.toml 一行 Windows dev-dependency 的 4→9,default-features=false 保持;生成的 Cargo.lock 加入 zip 9.0.5、typed-path、nix 0.31.3、cfg_aliases,并给原有 zip/nix 引用补版本以消除歧义。原有生产包版本及 checksum 没被替换。本维护项没有专用 RFC/issue 规定版本 9;我采用现有 Cargo 目标边界、桌面 README 和原回归作为兼容性依据,没有虚构规范编号。

关键代码讲解

  • Cargo.toml:55:声明位于 cfg(target_os = "windows") 的 dev-dependencies。真实 cargo tree 也显示 zip 9 仅通过该测试边进入;普通 Windows normal/build 图仍只有 updater 引入的 zip 4.6.1。
  • nsis_artifact:116:原函数未改,SimpleFileOptions 明确选择 Stored,写入同一安装包名与非 PE 测试内容,再用 finish 返回内存字节;不依赖被关闭的默认压缩功能。
  • 原 Windows 回归:302:已有测试通过真实下载、签名、旧 ZIP 读取及 Windows 启动失败来检查窗口资源和服务恢复,保留 handoff_active 等断言,不能仅凭 install 返回错误就假装命中了正确分支。本次只实际执行其归档/验签边界,未在 macOS 上冒称跑过原生窗口测试。

对主干的风险 / Risks

最强反例是新版 writer 能编译,却生成旧 updater 无法消费的归档,使 Windows 回归在预期的退出钩子之前失败。我在 Rust 1.99.0/macOS 的独立源码复用检查中取得以下结果:

检查 结果
旧 writer / 新 writer / 恢复控制 PASS;均为完全相同的 231 字节归档,旧 reader 提取的安装包名和完整内容相同
实际签名验证、byte-64 篡改、截断归档 PASS;有效内容通过,两种损坏正确拒绝
仅将安装包名改为 fixture.txt 的反例 预期 FAIL:BinaryNotFoundInArchive / exit 101;恢复后 PASS / exit 0
Windows 目标 normal/build 依赖图 PASS;964 行仅归一化 checkout 路径后全等,zip 9 不进入生产图
cargo fmt --check、原生 premerge PASS;4 个直接检查、4 个选中 canary、0 hold;精确 CQR cqr_069723d9c5a765696b19 读回 valid

归档完整 SHA-256 为 b4a4ccae3793fcb25374e054dd878ec6e8b742926e0a0577e90100b66be7ad57,字节比较未做归一化。原 NSIS producer 在 base/head 逐字相同,probe 使用的两个 ZIP crate checksum 与应用 lock 一致。最新已读取主干在这些 owner/fixture 路径与 base 无差异;完整当前队列的相关路径元数据也未出现另一条重叠改动。

UNVERIFIED: 本机没有运行 Windows 原生窗口、ShellExecuteW、完整桌面 cargo test/clippy 或旧 Rust 工具链。zip 9 声明 Rust 1.88;仓库相关工作流使用 stable,本次实跑为 1.99。上述结论限定在本次实际变化的纯归档生成/消费边界,不代替 Windows 发布或安装资格;生产实现和 normal/build 图保持不变。按配置未查询或等待远端 CI。

我的整体评价 / Verdict

维护增量完整且比例合适:复用既有测试及 reader,无额外状态、自动执行或人工确认步骤。普通用户旅程保持,长期调度/Goal 语义不适用本次两文件变化;不能从依赖更新或检查数量推导长期收益。仅 Cargo 声明及锁文件变化,没有渲染界面或阅读层级变化,视觉检查不适用。原生 Windows 执行仍是上述明确未验范围。

不建议为消除两个 zip 版本而顺带升级生产插件,也不需要给未改的短夹具再包一层 helper。保留当前边界可独立核验和回滚;评审通过不代表合并、发布或已安装采用。

English verdict: APPROVE — the Windows test-writer update preserves the existing archive contract; production dependencies are unchanged. Native Windows execution was not claimed.

@huangruiteng
huangruiteng merged commit 2517a2c into main Oct 29, 2026
38 of 63 checks passed
@huangruiteng
huangruiteng deleted the dependabot/cargo/apps/desktop/loopx-control-plane/src-tauri/zip-9.0.5 branch October 29, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants