Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions ci/docker/conda-python-emscripten.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,26 @@

ARG repo
ARG arch
ARG python="3.12"
ARG python="3.13"
FROM ${repo}:${arch}-conda-python-${python}

ARG selenium_version="4.15.2"
ARG pyodide_version="0.26.0"
ARG pyodide_version="0.28.1"
ARG chrome_version="latest"
ARG required_python_min="(3,12)"
# fail if python version < 3.12
ARG required_python_min="(3,13)"
# fail if python version < 3.13
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}

Expand All @@ -46,9 +51,9 @@ RUN bash /arrow/ci/scripts/install_emscripten.sh ~ /pyodide
# make sure zlib is cached in the EMSDK folder
RUN source ~/emsdk/emsdk_env.sh && embuilder --pic build zlib

# 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
RUN conda install nodejs=20 unzip pthread-stubs make -c conda-forge
RUN conda install nodejs=22 unzip pthread-stubs make -c conda-forge

# install chrome for testing browser based runner
COPY ci/scripts/install_chromedriver.sh /arrow/ci/scripts/
Expand Down
2 changes: 1 addition & 1 deletion dev/tasks/tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -849,7 +849,7 @@ tasks:
params:
env:
UBUNTU: 22.04
PYTHON: 3.12
PYTHON: 3.13
image: conda-python-emscripten

test-conda-python-3.11-hypothesis:
Expand Down
4 changes: 2 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -930,10 +930,10 @@ services:
arch: ${ARCH}
clang_tools: ${CLANG_TOOLS}
llvm: ${LLVM}
pyodide_version: "0.26.0"
pyodide_version: "0.28.1"
chrome_version: "134"
selenium_version: "4.15.2"
required_python_min: "(3,12)"
required_python_min: "(3,13)"
python: ${PYTHON}
shm_size: *shm-size
volumes: *ubuntu-volumes
Expand Down
4 changes: 2 additions & 2 deletions docs/source/developers/cpp/emscripten.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ activate it using the commands below (see https://emscripten.org/docs/getting_st
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
# replace <version> with the desired EMSDK version.
# e.g. for Pyodide 0.26, you need EMSDK version 3.1.58
# e.g. for Pyodide 0.28, you need EMSDK version 4.0.9
# the versions can be found in the Makefile.envs file in the Pyodide repo:
# https://github.com/pyodide/pyodide/blob/10b484cfe427e076c929a55dc35cfff01ea8d3bc/Makefile.envs
# https://github.com/pyodide/pyodide/blob/0db5ff79f310694a7d72ae0b3279e9809ab836d6/Makefile.envs
./emsdk install <version>
./emsdk activate <version>
source ./emsdk_env.sh
Expand Down
Loading