Skip to content

Commit 34c9ff6

Browse files
committed
Upgrade to ubuntu-24.04, add config for free threading
1 parent 8045c2d commit 34c9ff6

10 files changed

+97
-74
lines changed

.github/workflows/code-checks.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ permissions:
2121
jobs:
2222
docstring_typing_manual_hooks:
2323
name: Docstring validation, typing, and other manual pre-commit hooks
24-
runs-on: ubuntu-22.04
24+
runs-on: ubuntu-24.04
2525
defaults:
2626
run:
2727
shell: bash -el {0}
@@ -102,7 +102,7 @@ jobs:
102102

103103
asv-benchmarks:
104104
name: ASV Benchmarks
105-
runs-on: ubuntu-22.04
105+
runs-on: ubuntu-24.04
106106
defaults:
107107
run:
108108
shell: bash -el {0}
@@ -133,7 +133,7 @@ jobs:
133133
134134
build_docker_dev_environment:
135135
name: Build Docker Dev Environment
136-
runs-on: ubuntu-22.04
136+
runs-on: ubuntu-24.04
137137
defaults:
138138
run:
139139
shell: bash -el {0}
@@ -160,7 +160,7 @@ jobs:
160160

161161
requirements-dev-text-installable:
162162
name: Test install requirements-dev.txt
163-
runs-on: ubuntu-22.04
163+
runs-on: ubuntu-24.04
164164

165165
concurrency:
166166
# https://github.community/t/concurrecy-not-work-for-push/183068/7

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ permissions:
1313

1414
jobs:
1515
analyze:
16-
runs-on: ubuntu-22.04
16+
runs-on: ubuntu-24.04
1717
permissions:
1818
actions: read
1919
contents: read

.github/workflows/comment-commands.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ permissions:
1010

1111
jobs:
1212
issue_assign:
13-
runs-on: ubuntu-22.04
13+
runs-on: ubuntu-24.04
1414
if: (!github.event.issue.pull_request) && github.event.comment.body == 'take'
1515
concurrency:
1616
group: ${{ github.actor }}-issue-assign
@@ -19,7 +19,7 @@ jobs:
1919
echo "Assigning issue ${{ github.event.issue.number }} to ${{ github.event.comment.user.login }}"
2020
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -d '{"assignees": ["${{ github.event.comment.user.login }}"]}' https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees
2121
preview_docs:
22-
runs-on: ubuntu-22.04
22+
runs-on: ubuntu-24.04
2323
if: github.event.issue.pull_request && github.event.comment.body == '/preview'
2424
concurrency:
2525
group: ${{ github.actor }}-preview-docs
@@ -29,7 +29,7 @@ jobs:
2929
previewer-server: "https://pandas.pydata.org/preview"
3030
artifact-job: "Doc Build and Upload"
3131
asv_run:
32-
runs-on: ubuntu-22.04
32+
runs-on: ubuntu-24.04
3333
# TODO: Support more benchmarking options later, against different branches, against self, etc
3434
if: github.event.issue.pull_request && startsWith(github.event.comment.body, '@github-actions benchmark')
3535
defaults:

.github/workflows/deprecation-tracking-bot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
deprecation_update:
1818
permissions:
1919
issues: write
20-
runs-on: ubuntu-22.04
20+
runs-on: ubuntu-24.04
2121
env:
2222
DEPRECATION_TRACKER_ISSUE: 56596
2323
steps:

.github/workflows/docbuild-and-upload.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ permissions:
2323
jobs:
2424
web_and_docs:
2525
name: Doc Build and Upload
26-
runs-on: ubuntu-22.04
26+
runs-on: ubuntu-24.04
2727

2828
concurrency:
2929
# https://github.community/t/concurrecy-not-work-for-push/183068/7

.github/workflows/package-checks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ defaults:
2121
jobs:
2222
pip:
2323
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
24-
runs-on: ubuntu-22.04
24+
runs-on: ubuntu-24.04
2525
strategy:
2626
matrix:
2727
extra: ["test", "pyarrow", "performance", "computation", "fss", "aws", "gcp", "excel", "parquet", "feather", "hdf5", "spss", "postgresql", "mysql", "sql-other", "html", "xml", "plot", "output-formatting", "clipboard", "compression", "all"]
@@ -50,7 +50,7 @@ jobs:
5050
shell: bash -el {0}
5151
conda_forge_recipe:
5252
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}}
53-
runs-on: ubuntu-22.04
53+
runs-on: ubuntu-24.04
5454
strategy:
5555
matrix:
5656
python-version: ['3.10', '3.11']

.github/workflows/stale-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
permissions:
1313
pull-requests: write
1414
if: github.repository_owner == 'pandas-dev'
15-
runs-on: ubuntu-22.04
15+
runs-on: ubuntu-24.04
1616
steps:
1717
- uses: actions/stale@v9
1818
with:

.github/workflows/unit-tests.yml

Lines changed: 15 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ jobs:
2626
timeout-minutes: 90
2727
strategy:
2828
matrix:
29-
platform: [ubuntu-22.04, ubuntu-24.04-arm]
30-
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml, actions-313.yaml]
29+
platform: [ubuntu-24.04, ubuntu-24.04-arm]
30+
env_file: [actions-310.yaml, actions-311.yaml, actions-312.yaml, actions-313.yaml, actions-313-freethreading.yaml]
3131
# Prevent the include jobs from overriding other jobs
3232
pattern: [""]
3333
pandas_future_infer_string: ["0"]
@@ -36,11 +36,11 @@ 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
4444
- name: "Locale: it_IT"
4545
env_file: actions-311.yaml
4646
pattern: "not slow and not network and not single_cpu"
@@ -51,7 +51,7 @@ jobs:
5151
# Also install it_IT (its encoding is ISO8859-1) but do not activate it.
5252
# It will be temporarily activated during tests with locale.setlocale
5353
extra_loc: "it_IT"
54-
platform: ubuntu-22.04
54+
platform: ubuntu-24.04
5555
- name: "Locale: zh_CN"
5656
env_file: actions-311.yaml
5757
pattern: "not slow and not network and not single_cpu"
@@ -62,30 +62,30 @@ jobs:
6262
# Also install zh_CN (its encoding is gb2312) but do not activate it.
6363
# It will be temporarily activated during tests with locale.setlocale
6464
extra_loc: "zh_CN"
65-
platform: ubuntu-22.04
65+
platform: ubuntu-24.04
6666
- name: "Future infer strings"
6767
env_file: actions-312.yaml
6868
pandas_future_infer_string: "1"
69-
platform: ubuntu-22.04
69+
platform: ubuntu-24.04
7070
- name: "Future infer strings (without pyarrow)"
7171
env_file: actions-311.yaml
7272
pandas_future_infer_string: "1"
73-
platform: ubuntu-22.04
73+
platform: ubuntu-24.04
7474
- name: "Pypy"
7575
env_file: actions-pypy-39.yaml
7676
pattern: "not slow and not network and not single_cpu"
7777
test_args: "--max-worker-restart 0"
78-
platform: ubuntu-22.04
78+
platform: ubuntu-24.04
7979
- name: "Numpy Dev"
8080
env_file: actions-311-numpydev.yaml
8181
pattern: "not slow and not network and not single_cpu"
8282
test_args: "-W error::DeprecationWarning -W error::FutureWarning"
83-
platform: ubuntu-22.04
83+
platform: ubuntu-24.04
8484
- name: "Pyarrow Nightly"
8585
env_file: actions-311-pyarrownightly.yaml
8686
pattern: "not slow and not network and not single_cpu"
8787
pandas_future_infer_string: "1"
88-
platform: ubuntu-22.04
88+
platform: ubuntu-24.04
8989
fail-fast: false
9090
name: ${{ matrix.name || format('{0} {1}', matrix.platform, matrix.env_file) }}
9191
env:
@@ -220,7 +220,7 @@ jobs:
220220
uses: ./.github/actions/run-tests
221221

222222
Linux-32-bit:
223-
runs-on: ubuntu-22.04
223+
runs-on: ubuntu-24.04
224224
container:
225225
image: quay.io/pypa/manylinux2014_i686
226226
options: --platform linux/386
@@ -256,7 +256,7 @@ jobs:
256256
cancel-in-progress: true
257257

258258
Linux-Musl:
259-
runs-on: ubuntu-22.04
259+
runs-on: ubuntu-24.04
260260
container:
261261
image: quay.io/pypa/musllinux_1_2_x86_64
262262
steps:
@@ -325,7 +325,7 @@ jobs:
325325
fail-fast: false
326326
matrix:
327327
# Separate out macOS 13 and 14, since macOS 14 is arm64 only
328-
os: [ubuntu-22.04, macOS-13, macOS-14, windows-latest]
328+
os: [ubuntu-24.04, macOS-13, macOS-14, windows-latest]
329329

330330
timeout-minutes: 90
331331

@@ -362,48 +362,6 @@ jobs:
362362
- name: Run Tests
363363
uses: ./.github/actions/run-tests
364364

365-
python-freethreading:
366-
defaults:
367-
run:
368-
shell: bash -eou pipefail {0}
369-
runs-on: ubuntu-22.04
370-
371-
timeout-minutes: 90
372-
373-
concurrency:
374-
# https://github.community/t/concurrecy-not-work-for-push/183068/7
375-
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-python-freethreading-dev
376-
cancel-in-progress: true
377-
378-
env:
379-
PYTEST_WORKERS: "auto"
380-
PANDAS_CI: 1
381-
PATTERN: "not slow and not network and not clipboard and not single_cpu"
382-
PYTEST_TARGET: pandas
383-
384-
steps:
385-
- uses: actions/checkout@v4
386-
with:
387-
fetch-depth: 0
388-
389-
- name: Set up Python Free-threading Version
390-
uses: deadsnakes/[email protected]
391-
with:
392-
python-version: 3.13-dev
393-
nogil: true
394-
395-
- name: Build Environment
396-
run: |
397-
python --version
398-
python -m pip install --upgrade pip setuptools wheel numpy meson[ninja]==1.2.1 meson-python==0.13.1
399-
python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple cython
400-
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
401-
python -m pip install -ve . --no-build-isolation --no-index --no-deps -Csetup-args="--werror"
402-
python -m pip list
403-
404-
- name: Run Tests
405-
uses: ./.github/actions/run-tests
406-
407365
# NOTE: this job must be kept in sync with the Pyodide build job in wheels.yml
408366
emscripten:
409367
# Note: the Python version, Emscripten toolchain version are determined
@@ -413,7 +371,7 @@ jobs:
413371
# The Node.js version can be determined via Pyodide:
414372
# https://pyodide.org/en/stable/usage/index.html#node-js
415373
name: Pyodide build
416-
runs-on: ubuntu-22.04
374+
runs-on: ubuntu-24.04
417375
concurrency:
418376
# https://github.community/t/concurrecy-not-work-for-push/183068/7
419377
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm

.github/workflows/wheels.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
(github.event_name == 'pull_request' &&
4141
contains(github.event.pull_request.labels.*.name, 'Build')) ||
4242
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && ( ! endsWith(github.ref, 'dev0')))
43-
runs-on: ubuntu-22.04
43+
runs-on: ubuntu-24.04
4444
env:
4545
IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
4646
IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
@@ -92,8 +92,8 @@ jobs:
9292
# GitHub Actions doesn't support pairing matrix values together, let's improvise
9393
# https://github.com/github/feedback/discussions/7835#discussioncomment-1769026
9494
buildplat:
95-
- [ubuntu-22.04, manylinux_x86_64]
96-
- [ubuntu-22.04, musllinux_x86_64]
95+
- [ubuntu-24.04, manylinux_x86_64]
96+
- [ubuntu-24.04, musllinux_x86_64]
9797
- [ubuntu-24.04-arm, manylinux_aarch64]
9898
- [macos-13, macosx_x86_64]
9999
# Note: M1 images on Github Actions start from macOS 14
@@ -109,7 +109,7 @@ jobs:
109109
# Build Pyodide wheels and upload them to Anaconda.org
110110
# NOTE: this job is similar to the one in unit-tests.yml except for the fact
111111
# that it uses cibuildwheel instead of a standard Pyodide xbuildenv setup.
112-
- buildplat: [ubuntu-22.04, pyodide_wasm32]
112+
- buildplat: [ubuntu-24.04, pyodide_wasm32]
113113
python: ["cp312", "3.12"]
114114
cibw_build_frontend: 'build'
115115

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: pandas-dev-313
2+
channels:
3+
- conda-forge
4+
dependencies:
5+
- python-freethreading
6+
7+
# build dependencies
8+
- versioneer
9+
- meson=1.2.1
10+
- meson-python=0.13.1
11+
12+
# test dependencies
13+
- pytest>=7.3.2
14+
- pytest-cov
15+
- pytest-xdist>=3.4.0
16+
- pytest-localserver>=0.8.1
17+
- pytest-qt>=4.4.0
18+
- boto3
19+
20+
# required dependencies
21+
- python-dateutil
22+
- numpy
23+
24+
# optional dependencies
25+
- beautifulsoup4>=4.12.3
26+
- blosc>=1.21.3
27+
- bottleneck>=1.3.6
28+
- fastparquet>=2024.2.0
29+
- fsspec>=2024.2.0
30+
- html5lib>=1.1
31+
- hypothesis>=6.84.0
32+
- gcsfs>=2024.2.0
33+
- jinja2>=3.1.3
34+
- lxml>=4.9.2
35+
- matplotlib>=3.8.3
36+
- numba>=0.59.0
37+
- numexpr>=2.9.0
38+
- odfpy>=1.4.1
39+
- qtpy>=2.3.0
40+
- pyqt>=5.15.9
41+
- openpyxl>=3.1.2
42+
- psycopg2>=2.9.6
43+
- pyarrow>=10.0.1
44+
- pymysql>=1.1.0
45+
- pyreadstat>=1.2.6
46+
- pytables>=3.8.0
47+
- python-calamine>=0.1.7
48+
- pytz>=2023.4
49+
- pyxlsb>=1.0.10
50+
- s3fs>=2024.2.0
51+
- scipy>=1.12.0
52+
- sqlalchemy>=2.0.0
53+
- tabulate>=0.9.0
54+
- xarray>=2024.1.1
55+
- xlrd>=2.0.1
56+
- xlsxwriter>=3.2.0
57+
- zstandard>=0.22.0
58+
59+
# Move Cython to build dependencies, once they release a version that supports freethreading
60+
- pip:
61+
- "adbc-driver-postgresql>=0.10.0"
62+
- "adbc-driver-sqlite>=0.8.0"
63+
- "tzdata>=2022.7"
64+
- "--extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple"
65+
- "cython"

0 commit comments

Comments
 (0)