Skip to content

Commit beb4f7b

Browse files
authored
Merge pull request #1339 from effigies/ci/py313
CI: Add 3.13-nogil build
2 parents 08f5c44 + 880e13e commit beb4f7b

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

.github/workflows/test.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,9 @@ jobs:
125125
- os: ubuntu-latest
126126
python-version: 3.8
127127
dependencies: 'min'
128-
# NumPy 2.0
128+
# NoGIL
129129
- os: ubuntu-latest
130-
python-version: '3.12'
130+
python-version: '3.13-dev'
131131
dependencies: 'dev'
132132
exclude:
133133
# x86 for Windows + Python<3.12
@@ -168,11 +168,18 @@ jobs:
168168
submodules: recursive
169169
fetch-depth: 0
170170
- name: Set up Python ${{ matrix.python-version }}
171+
if: "!endsWith(matrix.python-version, '-dev')"
171172
uses: actions/setup-python@v5
172173
with:
173174
python-version: ${{ matrix.python-version }}
174175
architecture: ${{ matrix.architecture }}
175176
allow-prereleases: true
177+
- name: Set up Python ${{ matrix.python-version }}
178+
if: endsWith(matrix.python-version, '-dev')
179+
uses: deadsnakes/[email protected]
180+
with:
181+
python-version: ${{ matrix.python-version }}
182+
nogil: true
176183
- name: Display Python version
177184
run: python -c "import sys; print(sys.version)"
178185
- name: Install tox
@@ -182,7 +189,7 @@ jobs:
182189
- name: Show tox config
183190
run: tox c
184191
- name: Run tox
185-
run: tox -v --exit-and-dump-after 1200
192+
run: tox -vv --exit-and-dump-after 1200
186193
- uses: codecov/codecov-action@v4
187194
if: ${{ always() }}
188195
with:

tox.ini

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ envlist =
1616
# x64-only range
1717
py312-{full,pre}-x64
1818
# Special environment for numpy 2.0-dev testing
19-
py312-dev-x64
19+
py313-dev-x64
2020
install
2121
doctest
2222
style
@@ -31,6 +31,7 @@ python =
3131
3.10: py310
3232
3.11: py311
3333
3.12: py312
34+
3.13: py313
3435

3536
[gh-actions:env]
3637
DEPENDS =
@@ -50,7 +51,8 @@ description = Pytest with coverage
5051
labels = test
5152
install_command =
5253
python -I -m pip install -v \
53-
--only-binary numpy,scipy,h5py,pillow,matplotlib \
54+
dev: --only-binary numpy,scipy,h5py \
55+
!dev: --only-binary numpy,scipy,h5py,pillow,matplotlib \
5456
pre,dev: --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \
5557
{opts} {packages}
5658
pip_pre =
@@ -69,6 +71,8 @@ pass_env =
6971
NO_COLOR
7072
CLICOLOR
7173
CLICOLOR_FORCE
74+
set_env =
75+
py313: PYTHON_GIL=0
7276
extras = test
7377
deps =
7478
# General minimum dependencies: pin based on API usage
@@ -89,15 +93,15 @@ deps =
8993
# Numpy 2.0 is a major breaking release; we cannot put much effort into
9094
# supporting until it's at least RC stable
9195
pre: numpy <2.0.dev0
92-
dev: numpy >=2.0.dev0
96+
dev: numpy >=2.1.dev0
9397
# Scipy stopped producing win32 wheels at py310
9498
py3{8,9}-full-x86,x64,arm64: scipy >=1.6
9599
# Matplotlib depends on scipy, so cannot be built for py310 on x86
96100
py3{8,9}-full-x86,x64,arm64: matplotlib >=3.4
97101
# h5py stopped producing win32 wheels at py39
98-
py38-full-x86,x64,arm64: h5py >=2.10
102+
py38-full-x86,{full,pre}-{x64,arm64}: h5py >=2.10
99103
full,pre,dev: pillow >=8.1
100-
full,pre,dev: indexed_gzip >=1.4
104+
full,pre: indexed_gzip >=1.4
101105
full,pre,dev: pyzstd >=0.14.3
102106
full,pre: pydicom >=2.1
103107
dev: pydicom @ git+https://github.com/pydicom/pydicom.git@main

0 commit comments

Comments
 (0)