@@ -22,10 +22,11 @@ defaults:
2222
2323jobs :
2424 ubuntu :
25- runs-on : ubuntu-22.04
25+ runs-on : ${{ matrix.platform }}
2626 timeout-minutes : 90
2727 strategy :
2828 matrix :
29+ platform : [ubuntu-22.04, ubuntu-24.04-arm]
2930 env_file : [actions-310.yaml, actions-311.yaml, actions-312.yaml]
3031 # Prevent the include jobs from overriding other jobs
3132 pattern : [""]
3536 env_file : actions-311-downstream_compat.yaml
3637 pattern : " not slow and not network and not single_cpu"
3738 pytest_target : " pandas/tests/test_downstream.py"
39+ platform : ubuntu-22.04
3840 - name : " Minimum Versions"
3941 env_file : actions-310-minimum_versions.yaml
4042 pattern : " not slow and not network and not single_cpu"
43+ platform : ubuntu-22.04
4144 - name : " Locale: it_IT"
4245 env_file : actions-311.yaml
4346 pattern : " not slow and not network and not single_cpu"
4851 # Also install it_IT (its encoding is ISO8859-1) but do not activate it.
4952 # It will be temporarily activated during tests with locale.setlocale
5053 extra_loc : " it_IT"
54+ platform : ubuntu-22.04
5155 - name : " Locale: zh_CN"
5256 env_file : actions-311.yaml
5357 pattern : " not slow and not network and not single_cpu"
@@ -58,25 +62,32 @@ jobs:
5862 # Also install zh_CN (its encoding is gb2312) but do not activate it.
5963 # It will be temporarily activated during tests with locale.setlocale
6064 extra_loc : " zh_CN"
65+ platform : ubuntu-22.04
6166 - name : " Future infer strings"
6267 env_file : actions-312.yaml
6368 pandas_future_infer_string : " 1"
69+ platform : ubuntu-22.04
6470 - name : " Future infer strings (without pyarrow)"
6571 env_file : actions-311.yaml
6672 pandas_future_infer_string : " 1"
73+ platform : ubuntu-22.04
6774 - name : " Pypy"
6875 env_file : actions-pypy-39.yaml
6976 pattern : " not slow and not network and not single_cpu"
7077 test_args : " --max-worker-restart 0"
78+ platform : ubuntu-22.04
7179 - name : " Numpy Dev"
7280 env_file : actions-311-numpydev.yaml
7381 pattern : " not slow and not network and not single_cpu"
7482 test_args : " -W error::DeprecationWarning -W error::FutureWarning"
83+ platform : ubuntu-22.04
7584 - name : " Pyarrow Nightly"
7685 env_file : actions-311-pyarrownightly.yaml
7786 pattern : " not slow and not network and not single_cpu"
87+ pandas_future_infer_string : " 1"
88+ platform : ubuntu-22.04
7889 fail-fast : false
79- name : ${{ matrix.name || format('ubuntu-latest {0}' , matrix.env_file) }}
90+ name : ${{ matrix.name || format('{0} {1}', matrix.platform , matrix.env_file) }}
8091 env :
8192 PATTERN : ${{ matrix.pattern }}
8293 LANG : ${{ matrix.lang || 'C.UTF-8' }}
91102 REMOVE_PYARROW : ${{ matrix.name == 'Future infer strings (without pyarrow)' && '1' || '0' }}
92103 concurrency :
93104 # https://github.community/t/concurrecy-not-work-for-push/183068/7
94- group : ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.env_file }}-${{ matrix.pattern }}-${{ matrix.extra_apt || '' }}-${{ matrix.pandas_future_infer_string }}
105+ group : ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.env_file }}-${{ matrix.pattern }}-${{ matrix.extra_apt || '' }}-${{ matrix.pandas_future_infer_string }}-${{ matrix.platform }}
95106 cancel-in-progress : true
96107
97108 services :
@@ -385,10 +396,12 @@ jobs:
385396 nogil : true
386397
387398 - name : Build Environment
399+ # TODO: Once numpy 2.2.1 is out, don't install nightly version
400+ # Tests segfault with numpy 2.2.0: https://github.com/numpy/numpy/pull/27955
388401 run : |
389402 python --version
390- python -m pip install --upgrade pip setuptools wheel numpy meson[ninja]==1.2.1 meson-python==0.13.1
391- python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython
403+ python -m pip install --upgrade pip setuptools wheel meson[ninja]==1.2.1 meson-python==0.13.1
404+ python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython numpy
392405 python -m pip install versioneer[toml]
393406 python -m pip install python-dateutil pytz tzdata hypothesis>=6.84.0 pytest>=7.3.2 pytest-xdist>=3.4.0 pytest-cov
394407 python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
@@ -417,20 +430,20 @@ jobs:
417430 with :
418431 fetch-depth : 0
419432
420- - name : Set up Python for Pyodide
433+ - name : Set up Python for pyodide-build
421434 id : setup-python
422435 uses : actions/setup-python@v5
423436 with :
424- python-version : ' 3.11.3 '
437+ python-version : ' 3.12 '
425438
426439 - name : Set up Emscripten toolchain
427440 uses : mymindstorm/setup-emsdk@v14
428441 with :
429- version : ' 3.1.46 '
442+ version : ' 3.1.58 '
430443 actions-cache-folder : emsdk-cache
431444
432445 - name : Install pyodide-build
433- run : pip install "pyodide-build==0.25.1 "
446+ run : pip install "pyodide-build>=0.29.2 "
434447
435448 - name : Build pandas for Pyodide
436449 run : |
@@ -439,10 +452,13 @@ jobs:
439452 - name : Set up Node.js
440453 uses : actions/setup-node@v4
441454 with :
442- node-version : ' 18 '
455+ node-version : ' 20 '
443456
444457 - name : Set up Pyodide virtual environment
458+ env :
459+ pyodide-version : ' 0.27.1'
445460 run : |
461+ pyodide xbuildenv install ${{ env.pyodide-version }}
446462 pyodide venv .venv-pyodide
447463 source .venv-pyodide/bin/activate
448464 pip install dist/*.whl
0 commit comments