Skip to content

Commit 54ea755

Browse files
committed
Add 3.13 to ci.
1 parent 499a92b commit 54ea755

File tree

4 files changed

+196
-4
lines changed

4 files changed

+196
-4
lines changed

.github/workflows/github-actions.yml

+187
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ jobs:
5353
tox_env: 'py39-nocov'
5454
cibw_arch: 'x86_64'
5555
cibw_build: 'cp39-*manylinux*'
56+
cibw_ft: 'false'
5657
os: 'ubuntu-latest'
5758
- name: 'py39-nocov (ubuntu/x86_64/musllinux)'
5859
python: '3.9'
@@ -61,6 +62,7 @@ jobs:
6162
tox_env: 'py39-nocov'
6263
cibw_arch: 'x86_64'
6364
cibw_build: 'cp39-*musllinux*'
65+
cibw_ft: 'false'
6466
os: 'ubuntu-latest'
6567
- name: 'py39-nocov (ubuntu/aarch64/manylinux)'
6668
python: '3.9'
@@ -69,6 +71,7 @@ jobs:
6971
tox_env: 'py39-nocov'
7072
cibw_arch: 'aarch64'
7173
cibw_build: 'cp39-*manylinux*'
74+
cibw_ft: 'false'
7275
os: 'ubuntu-latest'
7376
- name: 'py39-nocov (ubuntu/aarch64/musllinux)'
7477
python: '3.9'
@@ -77,6 +80,7 @@ jobs:
7780
tox_env: 'py39-nocov'
7881
cibw_arch: 'aarch64'
7982
cibw_build: 'cp39-*musllinux*'
83+
cibw_ft: 'false'
8084
os: 'ubuntu-latest'
8185
- name: 'py39-nocov (windows/AMD64)'
8286
python: '3.9'
@@ -85,6 +89,7 @@ jobs:
8589
tox_env: 'py39-nocov'
8690
cibw_arch: 'AMD64'
8791
cibw_build: 'cp39-*'
92+
cibw_ft: 'false'
8893
os: 'windows-latest'
8994
- name: 'py39-nocov (macos/arm64)'
9095
python: '3.9'
@@ -93,6 +98,7 @@ jobs:
9398
tox_env: 'py39-nocov'
9499
cibw_arch: 'arm64'
95100
cibw_build: 'cp39-*'
101+
cibw_ft: 'false'
96102
os: 'macos-latest'
97103
- name: 'py310-cover (ubuntu/x86_64)'
98104
python: '3.10'
@@ -128,6 +134,7 @@ jobs:
128134
tox_env: 'py310-nocov'
129135
cibw_arch: 'x86_64'
130136
cibw_build: 'cp310-*manylinux*'
137+
cibw_ft: 'false'
131138
os: 'ubuntu-latest'
132139
- name: 'py310-nocov (ubuntu/x86_64/musllinux)'
133140
python: '3.10'
@@ -136,6 +143,7 @@ jobs:
136143
tox_env: 'py310-nocov'
137144
cibw_arch: 'x86_64'
138145
cibw_build: 'cp310-*musllinux*'
146+
cibw_ft: 'false'
139147
os: 'ubuntu-latest'
140148
- name: 'py310-nocov (ubuntu/aarch64/manylinux)'
141149
python: '3.10'
@@ -144,6 +152,7 @@ jobs:
144152
tox_env: 'py310-nocov'
145153
cibw_arch: 'aarch64'
146154
cibw_build: 'cp310-*manylinux*'
155+
cibw_ft: 'false'
147156
os: 'ubuntu-latest'
148157
- name: 'py310-nocov (ubuntu/aarch64/musllinux)'
149158
python: '3.10'
@@ -152,6 +161,7 @@ jobs:
152161
tox_env: 'py310-nocov'
153162
cibw_arch: 'aarch64'
154163
cibw_build: 'cp310-*musllinux*'
164+
cibw_ft: 'false'
155165
os: 'ubuntu-latest'
156166
- name: 'py310-nocov (windows/AMD64)'
157167
python: '3.10'
@@ -160,6 +170,7 @@ jobs:
160170
tox_env: 'py310-nocov'
161171
cibw_arch: 'AMD64'
162172
cibw_build: 'cp310-*'
173+
cibw_ft: 'false'
163174
os: 'windows-latest'
164175
- name: 'py310-nocov (macos/arm64)'
165176
python: '3.10'
@@ -168,6 +179,7 @@ jobs:
168179
tox_env: 'py310-nocov'
169180
cibw_arch: 'arm64'
170181
cibw_build: 'cp310-*'
182+
cibw_ft: 'false'
171183
os: 'macos-latest'
172184
- name: 'py311-cover (ubuntu/x86_64)'
173185
python: '3.11'
@@ -203,6 +215,7 @@ jobs:
203215
tox_env: 'py311-nocov'
204216
cibw_arch: 'x86_64'
205217
cibw_build: 'cp311-*manylinux*'
218+
cibw_ft: 'false'
206219
os: 'ubuntu-latest'
207220
- name: 'py311-nocov (ubuntu/x86_64/musllinux)'
208221
python: '3.11'
@@ -211,6 +224,7 @@ jobs:
211224
tox_env: 'py311-nocov'
212225
cibw_arch: 'x86_64'
213226
cibw_build: 'cp311-*musllinux*'
227+
cibw_ft: 'false'
214228
os: 'ubuntu-latest'
215229
- name: 'py311-nocov (ubuntu/aarch64/manylinux)'
216230
python: '3.11'
@@ -219,6 +233,7 @@ jobs:
219233
tox_env: 'py311-nocov'
220234
cibw_arch: 'aarch64'
221235
cibw_build: 'cp311-*manylinux*'
236+
cibw_ft: 'false'
222237
os: 'ubuntu-latest'
223238
- name: 'py311-nocov (ubuntu/aarch64/musllinux)'
224239
python: '3.11'
@@ -227,6 +242,7 @@ jobs:
227242
tox_env: 'py311-nocov'
228243
cibw_arch: 'aarch64'
229244
cibw_build: 'cp311-*musllinux*'
245+
cibw_ft: 'false'
230246
os: 'ubuntu-latest'
231247
- name: 'py311-nocov (windows/AMD64)'
232248
python: '3.11'
@@ -235,6 +251,7 @@ jobs:
235251
tox_env: 'py311-nocov'
236252
cibw_arch: 'AMD64'
237253
cibw_build: 'cp311-*'
254+
cibw_ft: 'false'
238255
os: 'windows-latest'
239256
- name: 'py311-nocov (macos/arm64)'
240257
python: '3.11'
@@ -243,6 +260,7 @@ jobs:
243260
tox_env: 'py311-nocov'
244261
cibw_arch: 'arm64'
245262
cibw_build: 'cp311-*'
263+
cibw_ft: 'false'
246264
os: 'macos-latest'
247265
- name: 'py312-cover (ubuntu/x86_64)'
248266
python: '3.12'
@@ -278,6 +296,7 @@ jobs:
278296
tox_env: 'py312-nocov'
279297
cibw_arch: 'x86_64'
280298
cibw_build: 'cp312-*manylinux*'
299+
cibw_ft: 'false'
281300
os: 'ubuntu-latest'
282301
- name: 'py312-nocov (ubuntu/x86_64/musllinux)'
283302
python: '3.12'
@@ -286,6 +305,7 @@ jobs:
286305
tox_env: 'py312-nocov'
287306
cibw_arch: 'x86_64'
288307
cibw_build: 'cp312-*musllinux*'
308+
cibw_ft: 'false'
289309
os: 'ubuntu-latest'
290310
- name: 'py312-nocov (ubuntu/aarch64/manylinux)'
291311
python: '3.12'
@@ -294,6 +314,7 @@ jobs:
294314
tox_env: 'py312-nocov'
295315
cibw_arch: 'aarch64'
296316
cibw_build: 'cp312-*manylinux*'
317+
cibw_ft: 'false'
297318
os: 'ubuntu-latest'
298319
- name: 'py312-nocov (ubuntu/aarch64/musllinux)'
299320
python: '3.12'
@@ -302,6 +323,7 @@ jobs:
302323
tox_env: 'py312-nocov'
303324
cibw_arch: 'aarch64'
304325
cibw_build: 'cp312-*musllinux*'
326+
cibw_ft: 'false'
305327
os: 'ubuntu-latest'
306328
- name: 'py312-nocov (windows/AMD64)'
307329
python: '3.12'
@@ -310,6 +332,7 @@ jobs:
310332
tox_env: 'py312-nocov'
311333
cibw_arch: 'AMD64'
312334
cibw_build: 'cp312-*'
335+
cibw_ft: 'false'
313336
os: 'windows-latest'
314337
- name: 'py312-nocov (macos/arm64)'
315338
python: '3.12'
@@ -318,6 +341,169 @@ jobs:
318341
tox_env: 'py312-nocov'
319342
cibw_arch: 'arm64'
320343
cibw_build: 'cp312-*'
344+
cibw_ft: 'false'
345+
os: 'macos-latest'
346+
- name: 'py313-cover (ubuntu/x86_64)'
347+
python: '3.13'
348+
toxpython: 'python3.13'
349+
python_arch: 'x64'
350+
tox_env: 'py313-cover'
351+
cover: true
352+
cibw_arch: 'x86_64'
353+
cibw_build: false
354+
os: 'ubuntu-latest'
355+
- name: 'py313-cover (windows/AMD64)'
356+
python: '3.13'
357+
toxpython: 'python3.13'
358+
python_arch: 'x64'
359+
tox_env: 'py313-cover'
360+
cover: true
361+
cibw_arch: 'AMD64'
362+
cibw_build: false
363+
os: 'windows-latest'
364+
- name: 'py313-cover (macos/arm64)'
365+
python: '3.13'
366+
toxpython: 'python3.13'
367+
python_arch: 'arm64'
368+
tox_env: 'py313-cover'
369+
cover: true
370+
cibw_arch: 'arm64'
371+
cibw_build: false
372+
os: 'macos-latest'
373+
- name: 'py313-nocov (ubuntu/x86_64/manylinux)'
374+
python: '3.13'
375+
toxpython: 'python3.13'
376+
python_arch: 'x64'
377+
tox_env: 'py313-nocov'
378+
cibw_arch: 'x86_64'
379+
cibw_build: 'cp313-*manylinux*'
380+
cibw_ft: 'false'
381+
os: 'ubuntu-latest'
382+
- name: 'py313-nocov (ubuntu/x86_64/musllinux)'
383+
python: '3.13'
384+
toxpython: 'python3.13'
385+
python_arch: 'x64'
386+
tox_env: 'py313-nocov'
387+
cibw_arch: 'x86_64'
388+
cibw_build: 'cp313-*musllinux*'
389+
cibw_ft: 'false'
390+
os: 'ubuntu-latest'
391+
- name: 'py313-nocov (ubuntu/aarch64/manylinux)'
392+
python: '3.13'
393+
toxpython: 'python3.13'
394+
python_arch: 'x64'
395+
tox_env: 'py313-nocov'
396+
cibw_arch: 'aarch64'
397+
cibw_build: 'cp313-*manylinux*'
398+
cibw_ft: 'false'
399+
os: 'ubuntu-latest'
400+
- name: 'py313-nocov (ubuntu/aarch64/musllinux)'
401+
python: '3.13'
402+
toxpython: 'python3.13'
403+
python_arch: 'x64'
404+
tox_env: 'py313-nocov'
405+
cibw_arch: 'aarch64'
406+
cibw_build: 'cp313-*musllinux*'
407+
cibw_ft: 'false'
408+
os: 'ubuntu-latest'
409+
- name: 'py313-nocov (windows/AMD64)'
410+
python: '3.13'
411+
toxpython: 'python3.13'
412+
python_arch: 'x64'
413+
tox_env: 'py313-nocov'
414+
cibw_arch: 'AMD64'
415+
cibw_build: 'cp313-*'
416+
cibw_ft: 'false'
417+
os: 'windows-latest'
418+
- name: 'py313-nocov (macos/arm64)'
419+
python: '3.13'
420+
toxpython: 'python3.13'
421+
python_arch: 'arm64'
422+
tox_env: 'py313-nocov'
423+
cibw_arch: 'arm64'
424+
cibw_build: 'cp313-*'
425+
cibw_ft: 'false'
426+
os: 'macos-latest'
427+
- name: 'py313ft-cover (ubuntu/x86_64)'
428+
python: '3.13ft'
429+
toxpython: 'python3.13ft'
430+
python_arch: 'x64-freethreaded'
431+
tox_env: 'py313ft-cover'
432+
cover: true
433+
cibw_arch: 'x86_64'
434+
cibw_build: false
435+
os: 'ubuntu-latest'
436+
- name: 'py313ft-cover (windows/AMD64)'
437+
python: '3.13ft'
438+
toxpython: 'python3.13ft'
439+
python_arch: 'x64-freethreaded'
440+
tox_env: 'py313ft-cover'
441+
cover: true
442+
cibw_arch: 'AMD64'
443+
cibw_build: false
444+
os: 'windows-latest'
445+
- name: 'py313ft-cover (macos/arm64)'
446+
python: '3.13ft'
447+
toxpython: 'python3.13ft'
448+
python_arch: 'arm64-freethreaded'
449+
tox_env: 'py313ft-cover'
450+
cover: true
451+
cibw_arch: 'arm64'
452+
cibw_build: false
453+
os: 'macos-latest'
454+
- name: 'py313ft-nocov (ubuntu/x86_64/manylinux)'
455+
python: '3.13ft'
456+
toxpython: 'python3.13ft'
457+
python_arch: 'x64-freethreaded'
458+
tox_env: 'py313ft-nocov'
459+
cibw_arch: 'x86_64'
460+
cibw_build: 'cp313ftt-*manylinux*'
461+
cibw_ft: 'true'
462+
os: 'ubuntu-latest'
463+
- name: 'py313ft-nocov (ubuntu/x86_64/musllinux)'
464+
python: '3.13ft'
465+
toxpython: 'python3.13ft'
466+
python_arch: 'x64-freethreaded'
467+
tox_env: 'py313ft-nocov'
468+
cibw_arch: 'x86_64'
469+
cibw_build: 'cp313ftt-*musllinux*'
470+
cibw_ft: 'true'
471+
os: 'ubuntu-latest'
472+
- name: 'py313ft-nocov (ubuntu/aarch64/manylinux)'
473+
python: '3.13ft'
474+
toxpython: 'python3.13ft'
475+
python_arch: 'x64-freethreaded'
476+
tox_env: 'py313ft-nocov'
477+
cibw_arch: 'aarch64'
478+
cibw_build: 'cp313ftt-*manylinux*'
479+
cibw_ft: 'true'
480+
os: 'ubuntu-latest'
481+
- name: 'py313ft-nocov (ubuntu/aarch64/musllinux)'
482+
python: '3.13ft'
483+
toxpython: 'python3.13ft'
484+
python_arch: 'x64-freethreaded'
485+
tox_env: 'py313ft-nocov'
486+
cibw_arch: 'aarch64'
487+
cibw_build: 'cp313ftt-*musllinux*'
488+
cibw_ft: 'true'
489+
os: 'ubuntu-latest'
490+
- name: 'py313ft-nocov (windows/AMD64)'
491+
python: '3.13ft'
492+
toxpython: 'python3.13ft'
493+
python_arch: 'x64-freethreaded'
494+
tox_env: 'py313ft-nocov'
495+
cibw_arch: 'AMD64'
496+
cibw_build: 'cp313ftt-*'
497+
cibw_ft: 'true'
498+
os: 'windows-latest'
499+
- name: 'py313ft-nocov (macos/arm64)'
500+
python: '3.13ft'
501+
toxpython: 'python3.13ft'
502+
python_arch: 'arm64-freethreaded'
503+
tox_env: 'py313ft-nocov'
504+
cibw_arch: 'arm64'
505+
cibw_build: 'cp313ftt-*'
506+
cibw_ft: 'true'
321507
os: 'macos-latest'
322508
- name: 'pypy39-cover (ubuntu/x86_64)'
323509
python: 'pypy-3.9'
@@ -452,6 +638,7 @@ jobs:
452638
TOXPYTHON: '${{ matrix.toxpython }}'
453639
CIBW_ARCHS: '${{ matrix.cibw_arch }}'
454640
CIBW_BUILD: '${{ matrix.cibw_build }}'
641+
CIBW_FREE_THREADED_SUPPORT: '${{ matrix.cibw_ft }}'
455642
CIBW_BUILD_VERBOSITY: '3'
456643
CIBW_TEST_REQUIRES: >
457644
tox

ci/templates/.github/workflows/github-actions.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
os: 'ubuntu-latest'
2222
{% for env in tox_environments %}
2323
{% set prefix = env.split('-')[0] -%}
24+
{% set nogil = 'ft' in env %}
2425
{% if prefix.startswith('pypy') %}
2526
{% set python %}pypy-{{ prefix[4] }}.{{ prefix[5:] }}{% endset %}
2627
{% set cpython %}pp{{ prefix[4:5] }}{% endset %}
@@ -44,14 +45,15 @@ jobs:
4445
- name: '{{ env }} ({{ os }}/{{ cibw_arch }}{{ name_suffix }})'
4546
python: '{{ python }}'
4647
toxpython: '{{ toxpython }}'
47-
python_arch: '{{ python_arch }}'
48+
python_arch: '{{ python_arch }}{% if nogil %}-freethreaded{% endif %}'
4849
tox_env: '{{ env }}'
4950
{% if 'cover' in env %}
5051
cover: true
5152
{% endif %}
5253
cibw_arch: '{{ cibw_arch }}'
5354
{% if 'nocov' in env and not prefix.startswith('pypy') %}
54-
cibw_build: '{{ cpython }}-{{ wheel_arch }}'
55+
cibw_build: '{{ cpython }}{% if nogil %}t{% endif %}-{{ wheel_arch }}'
56+
cibw_ft: '{% if nogil %}true{% else %}false{% endif %}'
5557
{% else %}
5658
cibw_build: false
5759
{% endif %}
@@ -90,6 +92,7 @@ jobs:
9092
TOXPYTHON: '{{ '${{ matrix.toxpython }}' }}'
9193
CIBW_ARCHS: '{{ '${{ matrix.cibw_arch }}' }}'
9294
CIBW_BUILD: '{{ '${{ matrix.cibw_build }}' }}'
95+
CIBW_FREE_THREADED_SUPPORT: '{{ '${{ matrix.cibw_ft }}' }}'
9396
CIBW_BUILD_VERBOSITY: '3'
9497
CIBW_TEST_REQUIRES: >
9598
tox

0 commit comments

Comments
 (0)