@@ -102,6 +102,7 @@ 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 :
@@ -130,7 +131,17 @@ 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
+ echo "cffi @ git+https://github.com/python-cffi/cffi.git@954cab4f889fb019a7f90df153ee1be501495f58" > cffi_constraint.txt
142
+ PIP_CONSTRAINT=$PWD/cffi_constraint.txt pip install cffi
133
143
- name : Install Build Dependencies
144
+ if : matrix.python-version != '3.13.0-alpha - 3.13.0'
134
145
run : |
135
146
pip install -U pip
136
147
pip install -U setuptools wheel twine cffi
@@ -174,7 +185,18 @@ jobs:
174
185
python setup.py build_ext -i
175
186
python setup.py bdist_wheel
176
187
188
+ - name : Install AccessControl and dependencies (3.13.0-alpha - 3.13.0)
189
+ if : matrix.python-version == '3.13.0-alpha - 3.13.0'
190
+ run : |
191
+ # Install to collect dependencies into the (pip) cache.
192
+ # cffi will probably have no public release until a Python 3.13 beta
193
+ # or even RC release, see https://github.com/python-cffi/cffi/issues/23
194
+ echo "cffi @ git+https://github.com/python-cffi/cffi.git@954cab4f889fb019a7f90df153ee1be501495f58" > cffi_constraint.txt
195
+ # Use "--pre" here because dependencies with support for this future
196
+ # Python release may only be available as pre-releases
197
+ PIP_CONSTRAINT=$PWD/cffi_constraint.txt pip install --pre .[test]
177
198
- name : Install AccessControl and dependencies
199
+ if : matrix.python-version != '3.13.0-alpha - 3.13.0'
178
200
run : |
179
201
# Install to collect dependencies into the (pip) cache.
180
202
pip install .[test]
@@ -218,6 +240,7 @@ jobs:
218
240
&& startsWith(github.ref, 'refs/tags')
219
241
&& startsWith(runner.os, 'Mac')
220
242
&& !startsWith(matrix.python-version, 'pypy')
243
+ && !startsWith(matrix.python-version, '3.13.0-alpha - 3.13.0')
221
244
env :
222
245
TWINE_PASSWORD : ${{ secrets.TWINE_PASSWORD }}
223
246
run : |
@@ -236,6 +259,7 @@ jobs:
236
259
- " 3.10"
237
260
- " 3.11"
238
261
- " 3.12"
262
+ - " 3.13.0-alpha - 3.13.0"
239
263
os : [ubuntu-20.04, macos-11]
240
264
241
265
steps :
@@ -269,7 +293,25 @@ jobs:
269
293
with :
270
294
name : AccessControl-${{ runner.os }}-${{ matrix.python-version }}.whl
271
295
path : dist/
296
+ - name : Install AccessControl 3.13.0-alpha - 3.13.0
297
+ if : ${{ startsWith(matrix.python-version, '3.13.0-alpha - 3.13.0') }}
298
+ run : |
299
+ pip install -U wheel setuptools
300
+ # cffi will probably have no public release until a beta or even RC
301
+ # version of Python 3.13, see https://github.com/python-cffi/cffi/issues/23
302
+ echo 'cffi @ git+https://github.com/python-cffi/cffi.git@954cab4f889fb019a7f90df153ee1be501495f58 ; platform_python_implementation == "CPython"' > cffi_constraint.txt
303
+ # coverage has a wheel on PyPI for a future python version which is
304
+ # not ABI compatible with the current one, so build it from sdist:
305
+ pip install -U --no-binary :all: coverage
306
+ # Unzip into src/ so that testrunner can find the .so files
307
+ # when we ask it to load tests from that directory. This
308
+ # might also save some build time?
309
+ unzip -n dist/AccessControl-*whl -d src
310
+ # Use "--pre" here because dependencies with support for this future
311
+ # Python release may only be available as pre-releases
312
+ PIP_CONSTRAINT=$PWD/cffi_constraint.txt pip install --pre -U -e .[test]
272
313
- name : Install AccessControl
314
+ if : ${{ !startsWith(matrix.python-version, '3.13.0-alpha - 3.13.0') }}
273
315
run : |
274
316
pip install -U wheel setuptools
275
317
pip install -U coverage
0 commit comments