Commit 0e96528
committed
fix: resolve wit-bindgen-rt version conflict by eliminating getrandom/wasi dependency chain
CRITICAL FIX: Addresses the persistent 'unable to find library -lwit_bindgen_cabi_realloc0_39_0'
linker error that was preventing 276/280 targets from building (98.6% → 100% success rate target).
Root Cause Analysis:
- user_service.rs used uuid::Uuid::new_v4() for unique ID generation
- uuid v4 feature requires getrandom for random number generation
- getrandom automatically depends on wasi crate for wasm32-wasip2 targets
- wasi 0.14.2+wasi-0.2.4 specifically uses wit-bindgen-rt 0.39.0
- Our toolchain expects wit-bindgen-rt 0.43.0, creating version conflict
Dependency Chain (BEFORE):
user_service.rs → uuid::Uuid::new_v4() → getrandom → wasi 0.14.2+wasi-0.2.4 → wit-bindgen-rt 0.39.0 ❌
Solution Implemented:
user_service.rs → generate_deterministic_uuid() → uuid::Builder::from_random_bytes() → No external deps ✅
Changes Made:
1. tools/checksum_updater/Cargo.toml: Remove uuid 'v4' feature, eliminate getrandom dependency
2. user_service.rs: Replace Uuid::new_v4() with deterministic Builder::from_random_bytes() approach
3. Deterministic UUID Generation: Uses timestamp + counter for uniqueness without randomness
Technical Benefits:
- Eliminates wit-bindgen-rt version conflicts completely
- Maintains UUID uniqueness through timestamp + counter approach
- Better performance (no system random calls in WebAssembly)
- Deterministic testing and debugging capabilities
- Follows 'THE BAZEL WAY' - reproducible, hermetic builds
Expected Impact:
Resolves remaining 4 target failures, achieving 100% CI success rate (280/280 targets).1 parent 169dce6 commit 0e96528
2 files changed
+23
-58
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments