agriyakhetarpal commented on code in PR #47330:
URL: https://github.com/apache/arrow/pull/47330#discussion_r3789762179
##########
ci/docker/conda-python-emscripten.dockerfile:
##########
@@ -18,32 +18,37 @@
ARG repo
ARG arch
ARG arch_short
-ARG python="3.12"
+ARG python="3.14"
FROM --platform=linux/${arch} ${repo}:${arch_short}-conda-python-${python}
ARG selenium_version="4.41.0"
-ARG pyodide_version="0.26.0"
+ARG pyodide_version="314.0.4"
ARG chrome_version="latest"
-ARG required_python_min="(3,12)"
-# fail if python version < 3.12
+ARG required_python_min="(3,14)"
+# fail if python version < 3.14
RUN echo "check PYTHON>=${required_python_min}" && python -c "import
sys;sys.exit(0 if sys.version_info>=${required_python_min} else 1)"
-# install selenium and recent pyodide-build and recent python
+RUN apt-get update -y -q && \
+ apt-get install -y -q --no-install-recommends \
+ libatomic1 && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
# needs to be a login shell so ~/.profile is read
SHELL ["/bin/bash", "--login", "-c", "-o", "pipefail"]
+# install selenium and recent pyodide-build and recent python
RUN python -m pip install --no-cache-dir selenium==${selenium_version} && \
python -m pip install --no-cache-dir --upgrade
pyodide-build>=${pyodide_version}
# install pyodide dist directory to /pyodide
RUN
pyodide_dist_url="https://github.com/pyodide/pyodide/releases/download/${pyodide_version}/pyodide-${pyodide_version}.tar.bz2"
&& \
wget -q "${pyodide_dist_url}" -O- | tar -xj -C /
-# install node 20 (needed for async call support)
+# install node 22 (needed for async call support and JSPI)
Review Comment:
```suggestion
# install node 24 (needed for async call support and JSPI)
```
##########
cpp/cmake_modules/ThirdpartyToolchain.cmake:
##########
@@ -2183,6 +2183,10 @@ function(build_protobuf)
set(PROTOBUF_HOST_CMAKE_ARGS
"-DCMAKE_CXX_FLAGS="
"-DCMAKE_C_FLAGS="
+ # Explicitly set the C++ standard for the host build. Without this,
+ # Abseil may be compiled with the host compiler's default standard,
+ # which can be older than C++17.
+ "-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}"
Review Comment:
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)
##########
ci/docker/conda-python-emscripten.dockerfile:
##########
@@ -18,32 +18,37 @@
ARG repo
ARG arch
ARG arch_short
-ARG python="3.12"
+ARG python="3.14"
FROM --platform=linux/${arch} ${repo}:${arch_short}-conda-python-${python}
ARG selenium_version="4.41.0"
-ARG pyodide_version="0.26.0"
+ARG pyodide_version="314.0.4"
ARG chrome_version="latest"
-ARG required_python_min="(3,12)"
-# fail if python version < 3.12
+ARG required_python_min="(3,14)"
+# fail if python version < 3.14
RUN echo "check PYTHON>=${required_python_min}" && python -c "import
sys;sys.exit(0 if sys.version_info>=${required_python_min} else 1)"
-# install selenium and recent pyodide-build and recent python
+RUN apt-get update -y -q && \
+ apt-get install -y -q --no-install-recommends \
+ libatomic1 && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
# needs to be a login shell so ~/.profile is read
SHELL ["/bin/bash", "--login", "-c", "-o", "pipefail"]
+# install selenium and recent pyodide-build and recent python
RUN python -m pip install --no-cache-dir selenium==${selenium_version} && \
python -m pip install --no-cache-dir --upgrade
pyodide-build>=${pyodide_version}
# install pyodide dist directory to /pyodide
RUN
pyodide_dist_url="https://github.com/pyodide/pyodide/releases/download/${pyodide_version}/pyodide-${pyodide_version}.tar.bz2"
&& \
wget -q "${pyodide_dist_url}" -O- | tar -xj -C /
-# install node 20 (needed for async call support)
+# install node 22 (needed for async call support and JSPI)
# and pthread-stubs for build, and unzip needed for chrome build to work
# xz is needed by emsdk to extract node tarballs
-RUN conda install nodejs=20 unzip pthread-stubs make xz -c conda-forge
+RUN conda install nodejs=22 unzip pthread-stubs make xz -c conda-forge
Review Comment:
```suggestion
RUN conda install nodejs=24 unzip pthread-stubs make xz -c conda-forge
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]