[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings - #17999
Conversation
PR Summary by QodoShip Linux arm64 Selenium Manager across all bindings
AI Description
Diagram
High-Level Assessment
Files changed (26)
|
Code Review by Qodo
1.
|
4f7b348 to
dd447b8
Compare
|
Code review by qodo was updated up to the latest commit dd447b8 |
dd447b8 to
615e50f
Compare
|
Code review by qodo was updated up to the latest commit 615e50f |
#17999 split :selenium-manager-linux into :selenium-manager-linux-x86_64 and :selenium-manager-linux-arm64.
The Python wheels carried no binary at all: py_wheel packages each dep's DefaultInfo files, and py_library keeps data in runfiles, so the manager was silently dropped from all four. Name the binary as a wheel dep. Retag the wheels so pip can actually match them. PyPI rejects the bare linux_x86_64 tag, and the binary is static musl that runs on glibc too, so ship it under manylinux and musllinux. The Windows binary is i686 but pip matches on the tag, not the binary, so a win32-only wheel was invisible to the 64-bit interpreters nearly everyone runs; ship win32, win_amd64 and win_arm64. Add Linux arm64 to both ecosystems. Trunk has shipped that binary in every binding since #17999, but the umbrella packages had nowhere to send those users: the Python marker was gated on x86_64 and the npm map was keyed on platform alone.
#17999 split :selenium-manager-linux into :selenium-manager-linux-x86_64 and :selenium-manager-linux-arm64.
The Python wheels carried no binary at all: py_wheel packages each dep's DefaultInfo files, and py_library keeps data in runfiles, so the manager was silently dropped from all four. Name the binary as a wheel dep. Retag the wheels so pip can actually match them. PyPI rejects the bare linux_x86_64 tag, and the binary is static musl that runs on glibc too, so ship it under manylinux and musllinux. The Windows binary is i686 but pip matches on the tag, not the binary, so a win32-only wheel was invisible to the 64-bit interpreters nearly everyone runs; ship win32, win_amd64 and win_arm64. Add Linux arm64 to both ecosystems. Trunk has shipped that binary in every binding since #17999, but the umbrella packages had nowhere to send those users: the Python marker was gated on x86_64 and the npm map was keyed on platform alone.
🔗 Related Issues
Ships the binary added in #16045
💥 What does this PR do?
arm64overaarch64everywhere we choose a name.🔧 Implementation Notes
arm64overaarch64: NuGet'sruntimes/linux-arm64/is a shipped path we cannot rename, soaarch64would guarantee two spellings in published artifacts whilearm64allows one. This also matches our telemetry which consolidated on arm64.aarch64remains only in values we read.linux-x86_64/andlinux-arm64/;macos/andwindows/stay unqualified because each ships a single binary. .NET usesruntimes/linux-x64/andruntimes/linux-arm64/— NuGet Runtime Identifiers, andlinux-musl-x64resolves through them.ubuntu-24.04-armrunner: thedriver_finderspecs resolvebin/linux-arm64/selenium-manager, execute it, and download working drivers for Firefox, and for Chrome with [rust] Add support for Chrome arm64 on Linux #17915 applied.inputs.os == 'ubuntu', which skippedubuntu-24.04-arm; it now usescontains.🤖 AI assistance
💡 Additional Considerations
common/selenium_manager.bzlstill pins the old artifact names; I'll run./go update_managerand commit the regenerated pins after ci-rust workflow runs from the trunk merge.🔄 Types of changes