99# Original comment follows.
1010# ##
1111# ##
12- # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
12+ # This workflow will install Python dependencies, run tests with a variety of Python versions
1313# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
1414# ##
1515
8181 # other people to test/debug), the strategy is to divide the process
8282 # into several different jobs. The first builds and saves the binary
8383 # wheels. It has dependent jobs that download and install the wheel
84- # to run tests, build docs, and perform linting . Building the
84+ # to run tests, and build docs . Building the
8585 # manylinux wheels is an independent set of jobs.
8686 #
8787 # This division is time-saving for projects that take awhile to
@@ -152,16 +152,10 @@ jobs:
152152 restore-keys : |
153153 ${{ runner.os }}-pip-
154154
155- - name : Install Build Dependencies (3.13)
156- if : matrix.python-version == '3.13'
157- run : |
158- pip install -U pip
159- pip install -U "setuptools<69" wheel twine
160155 - name : Install Build Dependencies
161- if : matrix.python-version != '3.13'
162156 run : |
163157 pip install -U pip
164- pip install -U "setuptools<69 " wheel twine
158+ pip install -U "setuptools <74 " wheel twine
165159
166160 - name : Build zope.interface (macOS x86_64)
167161 if : >
@@ -199,15 +193,7 @@ jobs:
199193 python setup.py build_ext -i
200194 python setup.py bdist_wheel
201195
202- - name : Install zope.interface and dependencies (3.13)
203- if : matrix.python-version == '3.13'
204- run : |
205- # Install to collect dependencies into the (pip) cache.
206- # Use "--pre" here because dependencies with support for this future
207- # Python release may only be available as pre-releases
208- pip install --pre .[test]
209196 - name : Install zope.interface and dependencies
210- if : matrix.python-version != '3.13'
211197 run : |
212198 # Install to collect dependencies into the (pip) cache.
213199 pip install .[test]
@@ -250,7 +236,6 @@ jobs:
250236 && startsWith(github.ref, 'refs/tags')
251237 && !startsWith(runner.os, 'Linux')
252238 && !startsWith(matrix.python-version, 'pypy')
253- && !startsWith(matrix.python-version, '3.13')
254239 env :
255240 TWINE_PASSWORD : ${{ secrets.TWINE_PASSWORD }}
256241 run : |
@@ -331,7 +316,7 @@ jobs:
331316 # works fine with non-editable installs.)
332317 run : |
333318 pip install -U wheel
334- pip install -U --no-binary :all: coverage
319+ pip install -U --no-binary :all: coverage[toml]
335320 # Unzip into src/ so that testrunner can find the .so files
336321 # when we ask it to load tests from that directory. This
337322 # might also save some build time?
@@ -371,7 +356,7 @@ jobs:
371356 runs-on : ${{ matrix.os }}
372357 strategy :
373358 matrix :
374- python-version : ["3.9 "]
359+ python-version : ["3.11 "]
375360 os : [ubuntu-latest]
376361
377362 steps :
@@ -426,7 +411,7 @@ jobs:
426411 - name : Install zope.interface
427412 run : |
428413 pip install -U wheel
429- pip install -U coverage
414+ pip install -U coverage[toml]
430415 pip install -U "`ls dist/zope.interface-*.whl`[docs]"
431416 - name : Build docs
432417 env :
@@ -435,80 +420,13 @@ jobs:
435420 sphinx-build -b html -d docs/_build/doctrees docs docs/_build/html
436421 sphinx-build -b doctest -d docs/_build/doctrees docs docs/_build/doctest
437422
438- lint :
439- needs : build-package
440- runs-on : ${{ matrix.os }}
441- strategy :
442- matrix :
443- python-version : ["3.9"]
444- os : [ubuntu-latest]
445-
446- steps :
447- - name : checkout
448- uses : actions/checkout@v4
449- - name : Set up Python ${{ matrix.python-version }}
450- uses : actions/setup-python@v5
451- with :
452- python-version : ${{ matrix.python-version }}
453- allow-prereleases : true
454- # ##
455- # Caching.
456- # This actually *restores* a cache and schedules a cleanup action
457- # to save the cache. So it must come before the thing we want to use
458- # the cache.
459- # ##
460- - name : Get pip cache dir (default)
461- id : pip-cache-default
462- if : ${{ !startsWith(runner.os, 'Windows') }}
463- run : |
464- echo "dir=$(pip cache dir)" >>$GITHUB_OUTPUT
465-
466- - name : Get pip cache dir (Windows)
467- id : pip-cache-windows
468- if : ${{ startsWith(runner.os, 'Windows') }}
469- run : |
470- echo "dir=$(pip cache dir)" >> $Env:GITHUB_OUTPUT
471-
472- - name : pip cache (default)
473- uses : actions/cache@v4
474- if : ${{ !startsWith(runner.os, 'Windows') }}
475- with :
476- path : ${{ steps.pip-cache-default.outputs.dir }}
477- key : ${{ runner.os }}-pip-${{ matrix.python-version }}
478- restore-keys : |
479- ${{ runner.os }}-pip-
480-
481- - name : pip cache (Windows)
482- uses : actions/cache@v4
483- if : ${{ startsWith(runner.os, 'Windows') }}
484- with :
485- path : ${{ steps.pip-cache-windows.outputs.dir }}
486- key : ${{ runner.os }}-pip-${{ matrix.python-version }}
487- restore-keys : |
488- ${{ runner.os }}-pip-
489-
490- - name : Download zope.interface wheel
491- uses : actions/download-artifact@v4
492- with :
493- name : zope.interface-${{ runner.os }}-${{ matrix.python-version }}.whl
494- path : dist/
495- - name : Install zope.interface
496- run : |
497- pip install -U pip
498- pip install -U wheel
499- pip install -U `ls dist/zope.interface-*`[test]
500- - name : Lint
501- run : |
502- pip install -U tox
503- tox -e lint
504-
505423 manylinux :
506424 runs-on : ubuntu-latest
507425 if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
508426 # We use a regular Python matrix entry to share as much code as possible.
509427 strategy :
510428 matrix :
511- python-version : ["3.9 "]
429+ python-version : ["3.11 "]
512430 image : [manylinux2014_x86_64, manylinux2014_i686, manylinux2014_aarch64]
513431
514432 steps :
0 commit comments