fix(workspace): pin zip to 7.1.0 to avoid transitive typed-path nightly requirement#96
Merged
BimaPangestu28 merged 1 commit intodevelopfrom May 8, 2026
Conversation
…ly requirement
zip 7.2.0+ added a `typed-path ^0.12` dependency. typed-path 0.12.x
uses `feature(wasip2)` stdlib APIs that fail on stable Rust under
the wasm32-wasip2 target:
error[E0658]: use of unstable library feature `wasip2`
--> typed-path-0.12.x/src/.../pathbuf.rs
This blocked greentic-biz/greentic-bundle-extensions PR #26 from
taking up the cards2pack-core empty-routing fix (PR #95 of this
repo) — its CI builds for wasm32-wasip2 on stable.
zip 7.1.0 is the most recent zip release before the typed-path dep
was introduced (still maintained, 205k+ downloads, not yanked).
bundle-standard-core only uses minimal zip API (ZipWriter::new,
FileOptions::default, start_file, write_all, finish, ZipArchive::new)
which is unchanged across 7.x. Verified: zero code change required,
all 24 unit tests + 11 golden snapshot tests pass, full WASM build
via cargo-component succeeds for wasm32-wasip2 + wasm32-wasip1.
Pinning to =7.1.0 keeps the dep tree clean; downstream consumers
(bundle-standard.wasm) inherit the fix transparently when they re-
publish against the next dev-publish.yml stamp.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
zip 7.2.0+(and all 8.x) introduced a transitive dependency ontyped-path ^0.12.typed-path 0.12.xusesfeature(wasip2)stdlib APIs that fail on stable Rust underwasm32-wasip2:This blocked
greentic-biz/greentic-bundle-extensions#26— bundle-standard's CI builds forwasm32-wasip2on stable, and after pinningcards2pack-core/bundle-standard-coreto the new1.2.0-dev.25512130996(which lands the cards2pack-core empty-routing fix from #95), the dep tree pullstyped-pathand breaks the build.Why zip 7.1.0
zip 7.1.0 is the most recent release before typed-path was introduced (
zip 7.2.0adds it). Released Jan 2026, 205k+ downloads, not yanked, still maintained.bundle-standard-coreonly uses minimal zip API:zip::ZipWriter::new(...)zip::write::FileOptions::<()>::default().compression_method(zip::CompressionMethod::Deflated)start_file(name, options)write_all(bytes)finish()zip::ZipArchive::new(cursor)Zero code change required in bundle-standard-core. Verified empirically.
Verification
cargo update -p zip --precise 7.1.0removes typed-pathcargo check -p bundle-standard-core --target wasm32-wasip2(stable)cargo test -p cards2pack-core(24 unit tests)cargo test -p cards2pack-core --test golden(11 snapshot tests)cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo component build --target wasm32-wasip2 --releasefrombundle-standardDownstream impact
After merge + dev-publish stamp:
cards2pack-coreandbundle-standard-corepublished with NO typed-path in dep treegreenticai/.github#169(which addedwasm-target-installinput as a workaround) becomes superseded — close as no-longer-neededTest plan
Future-proofing note
If we eventually want to upgrade to zip 8.x (e.g., for new features or security patches), the path is:
feature(wasip2)requirement (issue chipsenkbeil/typed-path#57) — they intentionally added it, so this is a maintainer decisionFor now,
=7.1.0pin is the smallest blast-radius fix that keeps every downstream consumer working without changes.