@@ -70,16 +70,47 @@ jobs:
7070 run : |
7171 tar zxvf *.tar.gz --strip-components=1
7272 - name : Build wheels
73- uses : pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
73+ uses : pypa/cibuildwheel@54327ab9d35de03b359ac25c97de9417d94639c0 # v4.0.0rc1
7474 env :
75- CIBW_BUILD : " cp3{9..14 }{t,}-${{ matrix.wheel_type }}"
75+ CIBW_BUILD : " cp3{9..15 }{t,}-${{ matrix.wheel_type }}"
7676 CIBW_ARCHS_LINUX : auto
77- CIBW_ENABLE : cpython-prerelease cpython-freethreading
77+ CIBW_ENABLE : cpython-prerelease
7878 - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
7979 with :
8080 name : ${{ matrix.wheel_type }}-wheels
8181 path : ./wheelhouse/*.whl
8282
83+ build_cp313t_wheels :
84+ needs : [build_sdist, choose_wheel_types]
85+ name : ${{ matrix.wheel_type }} wheels
86+ runs-on : ${{ matrix.os }}
87+ strategy :
88+ fail-fast : false
89+ matrix :
90+ wheel_type : ${{ fromJSON(needs.choose_wheel_types.outputs.wheel_types) }}
91+ include :
92+ - os : ubuntu-latest
93+ - wheel_type : manylinux_aarch64
94+ os : ubuntu-24.04-arm
95+
96+ steps :
97+ - uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
98+ with :
99+ name : sdist
100+ - name : Extract sdist
101+ run : |
102+ tar zxvf *.tar.gz --strip-components=1
103+ - name : Build wheels
104+ uses : pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
105+ env :
106+ CIBW_BUILD : " cp313t-${{ matrix.wheel_type }}"
107+ CIBW_ARCHS_LINUX : auto
108+ CIBW_ENABLE : cpython-freethreading
109+ - uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
110+ with :
111+ name : ${{ matrix.wheel_type }}-cp313t-wheels
112+ path : ./wheelhouse/*.whl
113+
83114 test_attaching_to_eol_interpreters :
84115 needs : [build_wheels]
85116 runs-on : ubuntu-22.04
@@ -161,12 +192,12 @@ jobs:
161192 run : python3 -m pytest tests -n auto -vvv
162193
163194 test_wheels :
164- needs : [build_wheels]
195+ needs : [build_wheels, build_cp313t_wheels ]
165196 runs-on : ubuntu-22.04
166197 strategy :
167198 fail-fast : false
168199 matrix :
169- python_version : ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
200+ python_version : ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t", "3.15", "3.15t" ]
170201 steps :
171202 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
172203 with :
@@ -179,6 +210,10 @@ jobs:
179210 with :
180211 name : " manylinux_x86_64-wheels"
181212 path : dist
213+ - uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
214+ with :
215+ name : " manylinux_x86_64-cp313t-wheels"
216+ path : dist
182217 - name : Set up dependencies
183218 run : |
184219 sudo add-apt-repository ppa:deadsnakes/ppa
@@ -203,7 +238,7 @@ jobs:
203238 strategy :
204239 fail-fast : false
205240 matrix :
206- python_version : ["3.9", "3.13", "3.14"]
241+ python_version : ["3.9", "3.13", "3.14", "3.15" ]
207242 steps :
208243 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
209244 with :
@@ -243,7 +278,7 @@ jobs:
243278 strategy :
244279 fail-fast : false
245280 matrix :
246- python_version : ["3.13", "3.14"]
281+ python_version : ["3.13", "3.14", "3.15" ]
247282 steps :
248283 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
249284 with :
@@ -448,6 +483,10 @@ jobs:
448483 mv dist/*-wheels/*.whl dist/
449484 rmdir dist/{sdist,*-wheels}
450485 ls -R dist
486+ - name : Avoid publishing Python 3.15 wheels
487+ run : |
488+ rm -f dist/*cp315*
489+ ls -R dist
451490 - uses : pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
452491 with :
453492 skip_existing : true
0 commit comments