2626 timeout-minutes : 90
2727 strategy :
2828 matrix :
29- platform : [ubuntu-22 .04, ubuntu-24.04-arm]
29+ platform : [ubuntu-24 .04, ubuntu-24.04-arm]
3030 env_file : [actions-310.yaml, actions-311.yaml, actions-312.yaml, actions-313.yaml]
3131 # Prevent the include jobs from overriding other jobs
3232 pattern : [""]
@@ -36,11 +36,15 @@ jobs:
3636 env_file : actions-311-downstream_compat.yaml
3737 pattern : " not slow and not network and not single_cpu"
3838 pytest_target : " pandas/tests/test_downstream.py"
39- platform : ubuntu-22 .04
39+ platform : ubuntu-24 .04
4040 - name : " Minimum Versions"
4141 env_file : actions-310-minimum_versions.yaml
4242 pattern : " not slow and not network and not single_cpu"
43- platform : ubuntu-22.04
43+ platform : ubuntu-24.04
44+ - name : " Freethreading"
45+ env_file : actions-313-freethreading.yaml
46+ pattern : " not slow and not network and not single_cpu"
47+ platform : ubuntu-24.04
4448 - name : " Locale: it_IT"
4549 env_file : actions-311.yaml
4650 pattern : " not slow and not network and not single_cpu"
5155 # Also install it_IT (its encoding is ISO8859-1) but do not activate it.
5256 # It will be temporarily activated during tests with locale.setlocale
5357 extra_loc : " it_IT"
54- platform : ubuntu-22 .04
58+ platform : ubuntu-24 .04
5559 - name : " Locale: zh_CN"
5660 env_file : actions-311.yaml
5761 pattern : " not slow and not network and not single_cpu"
@@ -62,30 +66,30 @@ jobs:
6266 # Also install zh_CN (its encoding is gb2312) but do not activate it.
6367 # It will be temporarily activated during tests with locale.setlocale
6468 extra_loc : " zh_CN"
65- platform : ubuntu-22 .04
69+ platform : ubuntu-24 .04
6670 - name : " Future infer strings"
6771 env_file : actions-312.yaml
6872 pandas_future_infer_string : " 1"
69- platform : ubuntu-22 .04
73+ platform : ubuntu-24 .04
7074 - name : " Future infer strings (without pyarrow)"
7175 env_file : actions-311.yaml
7276 pandas_future_infer_string : " 1"
73- platform : ubuntu-22 .04
77+ platform : ubuntu-24 .04
7478 - name : " Pypy"
7579 env_file : actions-pypy-39.yaml
7680 pattern : " not slow and not network and not single_cpu"
7781 test_args : " --max-worker-restart 0"
78- platform : ubuntu-22 .04
82+ platform : ubuntu-24 .04
7983 - name : " Numpy Dev"
8084 env_file : actions-311-numpydev.yaml
8185 pattern : " not slow and not network and not single_cpu"
8286 test_args : " -W error::DeprecationWarning -W error::FutureWarning"
83- platform : ubuntu-22 .04
87+ platform : ubuntu-24 .04
8488 - name : " Pyarrow Nightly"
8589 env_file : actions-311-pyarrownightly.yaml
8690 pattern : " not slow and not network and not single_cpu"
8791 pandas_future_infer_string : " 1"
88- platform : ubuntu-22 .04
92+ platform : ubuntu-24 .04
8993 fail-fast : false
9094 name : ${{ matrix.name || format('{0} {1}', matrix.platform, matrix.env_file) }}
9195 env :
@@ -165,6 +169,9 @@ jobs:
165169 - name : Build Pandas
166170 id : build
167171 uses : ./.github/actions/build_pandas
172+ with :
173+ # xref https://github.com/cython/cython/issues/6870
174+ werror : ${{ matrix.name != 'Freethreading' }}
168175 # TODO: Re-enable once Pypy has Pypy 3.10 on conda-forge
169176 if : ${{ matrix.name != 'Pypy' }}
170177
@@ -220,7 +227,7 @@ jobs:
220227 uses : ./.github/actions/run-tests
221228
222229 Linux-32-bit :
223- runs-on : ubuntu-22 .04
230+ runs-on : ubuntu-24 .04
224231 container :
225232 image : quay.io/pypa/manylinux2014_i686
226233 options : --platform linux/386
@@ -258,7 +265,7 @@ jobs:
258265 cancel-in-progress : true
259266
260267 Linux-Musl :
261- runs-on : ubuntu-22 .04
268+ runs-on : ubuntu-24 .04
262269 container :
263270 image : quay.io/pypa/musllinux_1_2_x86_64
264271 steps :
@@ -327,7 +334,7 @@ jobs:
327334 fail-fast : false
328335 matrix :
329336 # Separate out macOS 13 and 14, since macOS 14 is arm64 only
330- os : [ubuntu-22 .04, macOS-13, macOS-14, windows-latest]
337+ os : [ubuntu-24 .04, macOS-13, macOS-14, windows-latest]
331338
332339 timeout-minutes : 90
333340
@@ -364,48 +371,6 @@ jobs:
364371 - name : Run Tests
365372 uses : ./.github/actions/run-tests
366373
367- python-freethreading :
368- defaults :
369- run :
370- shell : bash -eou pipefail {0}
371- runs-on : ubuntu-22.04
372-
373- timeout-minutes : 90
374-
375- concurrency :
376- # https://github.community/t/concurrecy-not-work-for-push/183068/7
377- group : ${{ github.event_name == 'push' && github.run_number || github.ref }}-python-freethreading-dev
378- cancel-in-progress : true
379-
380- env :
381- PYTEST_WORKERS : " auto"
382- PANDAS_CI : 1
383- PATTERN : " not slow and not network and not clipboard and not single_cpu"
384- PYTEST_TARGET : pandas
385-
386- steps :
387- - uses : actions/checkout@v4
388- with :
389- fetch-depth : 0
390-
391- - name : Set up Python Free-threading Version
392- uses : deadsnakes/action@v3.2.0
393- with :
394- python-version : 3.13-dev
395- nogil : true
396-
397- - name : Build Environment
398- run : |
399- python --version
400- python -m pip install --upgrade pip setuptools wheel numpy meson[ninja]==1.2.1 meson-python==0.13.1
401- python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython
402- python -m pip install versioneer[toml] python-dateutil pytz tzdata hypothesis>=6.84.0 pytest>=7.3.2 pytest-xdist>=3.4.0 pytest-cov
403- python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
404- python -m pip list
405-
406- - name : Run Tests
407- uses : ./.github/actions/run-tests
408-
409374 # NOTE: this job must be kept in sync with the Pyodide build job in wheels.yml
410375 emscripten :
411376 # Note: the Python version, Emscripten toolchain version are determined
@@ -415,7 +380,7 @@ jobs:
415380 # The Node.js version can be determined via Pyodide:
416381 # https://pyodide.org/en/stable/usage/index.html#node-js
417382 name : Pyodide build
418- runs-on : ubuntu-22 .04
383+ runs-on : ubuntu-24 .04
419384 concurrency :
420385 # https://github.community/t/concurrecy-not-work-for-push/183068/7
421386 group : ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm
0 commit comments