You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[rust] Allow cross-compilation of selenium-manager on all platforms
Upgrades the Bazel Rust toolchain stack to enable hermetic cross-compilation
of selenium-manager for every supported OS/arch combination:
Build system changes:
- Upgrade llvm 0.7.9 → 0.8.0 and rules_rs 0.0.61 → 0.0.76
- Register hermetic LLVM exec toolchains for Linux, macOS, and Windows so
all C/C++ compilation in the exec config (process_wrapper, build scripts)
is version-pinned and reproducible across CI runners
- Add `experimental_stub_libgcc_s` patch for llvm 0.8.0 so the flag
propagates to exec-config builds (fixes process_wrapper link on Linux)
- Disable local_config_cc auto-detection globally; LLVM toolchain now covers
all platforms (macOS is viable because the ring fix removed aws-lc-sys)
- Windows uses the gnullvm ABI — the hermetic LLVM package produces correct
PE binaries without a separately-provisioned Visual Studio installation
- Add bzip2, xz, zstd BCR deps so *-sys crates use the hermetic CC toolchain
- Patch windows-link and windows-targets to remove include_str! doc attrs
that fail in Bazel's source-only sandbox
Cross-compilation targets in rust/BUILD.bazel:
- platform_transition_binary for each (os, arch) pair using musl on Linux
(self-contained, no glibc dependency) and gnullvm on Windows
- selenium-manager-bundle collects all variants; stub binaries stand in for
targets that are skipped on the current host
Binding updates (Java, Python, Ruby, .NET, JS):
- All selenium_manager helpers updated to probe per-(os, arch) paths from
the bundle and fall back to the legacy single-file location
- .NET nuspec/csproj updated with per-RID native asset paths
0 commit comments