@@ -102,13 +102,14 @@ jobs:
102
102
- " 3.10"
103
103
- " 3.11"
104
104
- " 3.12"
105
+ - " 3.13.0-alpha - 3.13.0"
105
106
os : [ubuntu-20.04, macos-11]
106
107
107
108
steps :
108
109
- name : checkout
109
- uses : actions/checkout@v3
110
+ uses : actions/checkout@v4
110
111
- name : Set up Python ${{ matrix.python-version }}
111
- uses : actions/setup-python@v4
112
+ uses : actions/setup-python@v5
112
113
with :
113
114
python-version : ${{ matrix.python-version }}
114
115
# ##
@@ -130,7 +131,18 @@ jobs:
130
131
restore-keys : |
131
132
${{ runner.os }}-pip-
132
133
134
+ - name : Install Build Dependencies (3.13.0-alpha - 3.13.0)
135
+ if : matrix.python-version == '3.13.0-alpha - 3.13.0'
136
+ run : |
137
+ pip install -U pip
138
+ pip install -U setuptools wheel twine
139
+ # cffi will probably have no public release until a Python 3.13 beta
140
+ # or even RC release, see https://github.com/python-cffi/cffi/issues/23
141
+ pip install -U "cffi @ https://github.com/python-cffi/cffi/archive/refs/heads/main.zip"
142
+ # twine has no release for 3.13, yet, see https://github.com/pypa/twine/issues/1030
143
+ pip install -U "git+https://github.com/pypa/twine.git#egg=twine"
133
144
- name : Install Build Dependencies
145
+ if : matrix.python-version != '3.13.0-alpha - 3.13.0'
134
146
run : |
135
147
pip install -U pip
136
148
pip install -U setuptools wheel twine cffi
@@ -174,7 +186,15 @@ jobs:
174
186
python setup.py build_ext -i
175
187
python setup.py bdist_wheel
176
188
189
+ - name : Install AccessControl and dependencies (3.13.0-alpha - 3.13.0)
190
+ if : matrix.python-version == '3.13.0-alpha - 3.13.0'
191
+ run : |
192
+ # Install to collect dependencies into the (pip) cache.
193
+ # Use "--pre" here because dependencies with support for this future
194
+ # Python release may only be available as pre-releases
195
+ pip install --pre .[test]
177
196
- name : Install AccessControl and dependencies
197
+ if : matrix.python-version != '3.13.0-alpha - 3.13.0'
178
198
run : |
179
199
# Install to collect dependencies into the (pip) cache.
180
200
pip install .[test]
@@ -186,7 +206,7 @@ jobs:
186
206
- name : Upload AccessControl wheel (macOS x86_64)
187
207
if : >
188
208
startsWith(runner.os, 'Mac')
189
- uses : actions/upload-artifact@v3
209
+ uses : actions/upload-artifact@v4
190
210
with :
191
211
name : AccessControl-${{ runner.os }}-${{ matrix.python-version }}.whl
192
212
path : dist/*x86_64.whl
@@ -195,7 +215,7 @@ jobs:
195
215
startsWith(runner.os, 'Mac')
196
216
&& !(startsWith(matrix.python-version, 'pypy')
197
217
|| matrix.python-version == '3.7')
198
- uses : actions/upload-artifact@v3
218
+ uses : actions/upload-artifact@v4
199
219
with :
200
220
# The arm64 wheel is uploaded with a different name just so it can be
201
221
# manually downloaded when desired. The wheel itself *cannot* be tested
@@ -205,7 +225,7 @@ jobs:
205
225
- name : Upload AccessControl wheel (all other platforms)
206
226
if : >
207
227
!startsWith(runner.os, 'Mac')
208
- uses : actions/upload-artifact@v3
228
+ uses : actions/upload-artifact@v4
209
229
with :
210
230
name : AccessControl-${{ runner.os }}-${{ matrix.python-version }}.whl
211
231
path : dist/*whl
@@ -218,6 +238,7 @@ jobs:
218
238
&& startsWith(github.ref, 'refs/tags')
219
239
&& startsWith(runner.os, 'Mac')
220
240
&& !startsWith(matrix.python-version, 'pypy')
241
+ && !startsWith(matrix.python-version, '3.13.0-alpha - 3.13.0')
221
242
env :
222
243
TWINE_PASSWORD : ${{ secrets.TWINE_PASSWORD }}
223
244
run : |
@@ -236,13 +257,14 @@ jobs:
236
257
- " 3.10"
237
258
- " 3.11"
238
259
- " 3.12"
260
+ - " 3.13.0-alpha - 3.13.0"
239
261
os : [ubuntu-20.04, macos-11]
240
262
241
263
steps :
242
264
- name : checkout
243
- uses : actions/checkout@v3
265
+ uses : actions/checkout@v4
244
266
- name : Set up Python ${{ matrix.python-version }}
245
- uses : actions/setup-python@v4
267
+ uses : actions/setup-python@v5
246
268
with :
247
269
python-version : ${{ matrix.python-version }}
248
270
# ##
@@ -265,11 +287,29 @@ jobs:
265
287
${{ runner.os }}-pip-
266
288
267
289
- name : Download AccessControl wheel
268
- uses : actions/download-artifact@v3
290
+ uses : actions/download-artifact@v4
269
291
with :
270
292
name : AccessControl-${{ runner.os }}-${{ matrix.python-version }}.whl
271
293
path : dist/
294
+ - name : Install AccessControl 3.13.0-alpha - 3.13.0
295
+ if : ${{ startsWith(matrix.python-version, '3.13.0-alpha - 3.13.0') }}
296
+ run : |
297
+ pip install -U wheel setuptools
298
+ # cffi will probably have no public release until a beta or even RC
299
+ # version of Python 3.13, see https://github.com/python-cffi/cffi/issues/23
300
+ pip install -U 'cffi @ https://github.com/python-cffi/cffi/archive/refs/heads/main.zip ; platform_python_implementation == "CPython"'
301
+ # coverage has a wheel on PyPI for a future python version which is
302
+ # not ABI compatible with the current one, so build it from sdist:
303
+ pip install -U --no-binary :all: coverage
304
+ # Unzip into src/ so that testrunner can find the .so files
305
+ # when we ask it to load tests from that directory. This
306
+ # might also save some build time?
307
+ unzip -n dist/AccessControl-*whl -d src
308
+ # Use "--pre" here because dependencies with support for this future
309
+ # Python release may only be available as pre-releases
310
+ pip install --pre -U -e .[test]
272
311
- name : Install AccessControl
312
+ if : ${{ !startsWith(matrix.python-version, '3.13.0-alpha - 3.13.0') }}
273
313
run : |
274
314
pip install -U wheel setuptools
275
315
pip install -U coverage
@@ -317,9 +357,9 @@ jobs:
317
357
318
358
steps :
319
359
- name : checkout
320
- uses : actions/checkout@v3
360
+ uses : actions/checkout@v4
321
361
- name : Set up Python ${{ matrix.python-version }}
322
- uses : actions/setup-python@v4
362
+ uses : actions/setup-python@v5
323
363
with :
324
364
python-version : ${{ matrix.python-version }}
325
365
# ##
@@ -342,7 +382,7 @@ jobs:
342
382
${{ runner.os }}-pip-
343
383
344
384
- name : Download AccessControl wheel
345
- uses : actions/download-artifact@v3
385
+ uses : actions/download-artifact@v4
346
386
with :
347
387
name : AccessControl-${{ runner.os }}-${{ matrix.python-version }}.whl
348
388
path : dist/
@@ -370,9 +410,9 @@ jobs:
370
410
371
411
steps :
372
412
- name : checkout
373
- uses : actions/checkout@v3
413
+ uses : actions/checkout@v4
374
414
- name : Set up Python ${{ matrix.python-version }}
375
- uses : actions/setup-python@v4
415
+ uses : actions/setup-python@v5
376
416
with :
377
417
python-version : ${{ matrix.python-version }}
378
418
# ##
@@ -422,7 +462,7 @@ jobs:
422
462
bash .manylinux.sh
423
463
424
464
- name : Upload AccessControl wheels
425
- uses : actions/upload-artifact@v3
465
+ uses : actions/upload-artifact@v4
426
466
with :
427
467
path : wheelhouse/*whl
428
468
name : manylinux_${{ matrix.image }}_wheels.zip
0 commit comments