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
{{ message }}
Repository navigation
GH-47329: [Packaging][Python][C++] Build and test PyArrow against Pyodide 314 (2026_0 ABI) - #47330
This PR updates the Pyodide version in the build scripts to 314.0.7 and the Emscripten version to 5.0.3, along with associated build-time changes to fix compilation issues.
Are these changes tested?
Are there any user-facing changes?
Yes, downstream packagers trying to build a WASM wheel for Pyodide are now required to use newer Pyodide and Emscripten versions, and the latest stable version of pyodide-build.
Only contributors can submit requests to this bot. Please ask someone from the community for help with getting the first commit in.
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/16950058312
Hello, could the maintainers with the necessary permissions please trigger an Emscripten build on this PR? Thank you!
I thought I could do this, as I previously submitted a PR that was accepted and merged: #45072, so I'm not sure if I understand the bot's message above. Is it that the word "contributors" here actually means those with a commit bit? 🤔
Thanks. We'll need a docker.io/apache/arrow-dev:amd64-conda-python-3.13 image for this, as the required Python version for Pyodide 0.28 builds is 3.13.
I am trying to find out the correct place to install libatomic1; it's required by the Brotli and Protocol Buffers Emscripten builds. In the meantime; I changed -fexceptions to -fwasm-exceptions in eebb7a8.
agriyakhetarpal
changed the title
GH-47329: [Packaging][Python] Build and test PyArrow against the pyodide_2025_0 ABI
GH-47329: [Packaging][Python][C++] Build and test PyArrow against the pyodide_2025_0 ABI
Aug 14, 2025
agriyakhetarpal
changed the title
GH-47329: [Packaging][Python][C++] Build and test PyArrow against the pyodide_2025_0 ABI
GH-47329: [Packaging][Python][C++] Build and test PyArrow against Pyodide 314 (2026_0 ABI)
Aug 15, 2026
The reason will be displayed to describe this comment to others. Learn more.
I hope this change is fine to keep here; this happened to me because I am using AppleClang 21 on my macOS machine to cross-compile for Emscripten.
The reason is that in the host protoc build, where CMAKE_CXX_FLAGS is blanked and no standard is set, absl compiles as C++14 and uses absl::string_view. That results in an ABI mismatch because Protobuf's targets reference the std::string_view signatures (since Protobuf compiles to C++17 or newer).
(I guess no one has hit this before, since the CI job exercises going from Linux to Emscripten, where gcc defaults to C++17)
Could the maintainers with the necessary permissions please submit a test-conda-python-emscripten build on this PR? I was able to figure out the problem locally; I think this should be ready. Thank you!
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Updates Arrow’s Pyodide/Emscripten build + test tooling to target the Pyodide 314 (2026_0) ABI, aligning CI images, build flags, and runtime package setup needed to build/test PyArrow as a Pyodide WASM wheel.
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.
Suppressed comments (1)
cpp/cmake_modules/SetupCxxFlags.cmake:750
ARROW_EMSCRIPTEN_DYLIB_CREATE_FLAGS embeds '-Wl,-rpath,$ORIGIN' in single quotes. CMake does not perform shell-style quote parsing, so the quotes are likely passed through as literal characters in the linker argument, which can break linking or produce an incorrect rpath. Use the raw -Wl,-rpath,$ORIGIN argument (no surrounding quotes).
Could the maintainers with the necessary permissions please submit a test-conda-python-emscripten build on this PR? I was able to figure out the problem locally; I think this should be ready. Thank you!
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
Update the documentation’s pyodide-build prerequisite to a Pyodide 314-compatible baseline before approval.
No open issues 🎉
1 previously missed issue
In code that hasn't changed since last review
Update pyodide-build version for Pyodide 314 compatibility
docs/source/developers/cpp/emscripten.rst:39
The prerequisite example now targets Pyodide 314.0.x, but the install command immediately below still tells users to install pyodide-build>=0.26. Following these instructions can select an incompatible build tool for the new ABI, so update this example to the 314-compatible pyodide-build baseline (the CI image uses 0.39.2).
Review effort: Lite
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
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.
Rationale for this change
This PR allows PyArrow to be built and tested against the new Pyodide
2026_0ABI introduced with the Pyodide 314.0.0 release.Closes #47329
What changes are included in this PR?
This PR updates the Pyodide version in the build scripts to 314.0.7 and the Emscripten version to 5.0.3, along with associated build-time changes to fix compilation issues.
Are these changes tested?
Are there any user-facing changes?
Yes, downstream packagers trying to build a WASM wheel for Pyodide are now required to use newer Pyodide and Emscripten versions, and the latest stable version of pyodide-build.
2026_0ABI) #47329cc: @hoodmane @ryanking13