8181 runs-on : ${{ matrix.os }}
8282 strategy :
8383 matrix :
84- python-version : [pypy-3.11, '3.10', '3.11', "3.12", "3.13", "3.14.0-rc.3"]
84+ python-version :
85+ - pypy-3.11
86+ - ' 3.10'
87+ - ' 3.11'
88+ - " 3.12"
89+ - " 3.13"
90+ - " 3.14"
91+ - " 3.15-dev"
92+ - " 3.14t"
93+ - " 3.15t-dev"
8594 os : [ubuntu-latest, macos-latest]
8695 exclude :
8796 - os : macos-latest
@@ -101,8 +110,14 @@ jobs:
101110 run : |
102111 pip install -U pip
103112 pip install -U setuptools wheel twine build
104- pip install -U 'cython>=3.0.10 '
113+ pip install -U 'cython>=3.2.4 '
105114 pip install -U coverage
115+ - name : Disable GIL
116+ if : ${{endsWith(matrix.python-version, 't') || endsWith(matrix.python-version, 't-dev')}}
117+ # zope.i18nmessageid
118+ run : |
119+ echo PYTHON_GIL=0 >> $GITHUB_ENV
120+
106121 - name : Install perfmetrics (non-Mac)
107122 if : ${{ ! startsWith(runner.os, 'Mac') }}
108123 run : |
@@ -129,12 +144,13 @@ jobs:
129144 ARCHFLAGS : " -arch x86_64 -arch arm64"
130145
131146 - name : Check perfmetrics build
147+ if : matrix.python-version == '3.14' && startsWith(runner.os, 'Linux')
132148 run : |
133149 ls -l dist
134150 twine check dist/*
135151
136152 - name : Upload perfmetrics wheel
137- uses : actions/upload-artifact@v6
153+ uses : actions/upload-artifact@v7
138154 with :
139155 name : perfmetrics-${{ runner.os }}-${{ matrix.python-version }}.whl
140156 path : dist/*whl
@@ -157,8 +173,7 @@ jobs:
157173 twine upload --skip-existing dist/*
158174
159175 - name : lint
160- if : matrix.python-version == '3.11' && startsWith(runner.os, 'Linux')
161- # At this writing, PyLint 2.17/astroid 2.15 won't work on 3.12
176+ if : matrix.python-version == '3.14' && startsWith(runner.os, 'Linux')
162177 run : |
163178 pip install -U pylint
164179 python -m pylint --limit-inference-results=1 --rcfile=.pylintrc perfmetrics -f parseable -r n
@@ -168,12 +183,12 @@ jobs:
168183 # We use a regular Python matrix entry to share as much code as possible.
169184 strategy :
170185 matrix :
171- python-version : [3.11 ]
186+ python-version : [3.14 ]
172187 image :
173- - manylinux2014_aarch64
174- - manylinux2014_ppc64le
175- - manylinux2014_s390x
176- - manylinux2014_x86_64
188+ - manylinux_2_28_x86_64
189+ - manylinux_2_28_aarch64
190+ # - manylinux_2_28_ppc64le
191+ # - manylinux_2_28_s390x
177192 - musllinux_1_2_x86_64
178193 - musllinux_1_2_aarch64
179194 name : ${{ matrix.image }}
@@ -185,20 +200,20 @@ jobs:
185200 with :
186201 python-version : ${{ matrix.python-version }}
187202 - name : Set up QEMU
188- uses : docker/setup-qemu-action@v3
203+ uses : docker/setup-qemu-action@v4
189204 with :
190205 platforms : all
191206 - name : Build and test perfmetrics
192207 env :
193208 DOCKER_IMAGE : quay.io/pypa/${{ matrix.image }}
194209 run : bash ./scripts/releases/make-manylinux
195210 - name : Store perfmetrics wheels
196- uses : actions/upload-artifact@v6
211+ uses : actions/upload-artifact@v7
197212 with :
198213 path : wheelhouse/*whl
199214 name : ${{ matrix.image }}_wheels.zip
200215 - name : Publish package to PyPI
201- uses : pypa/gh-action-pypi-publish@v1.13 .0
216+ uses : pypa/gh-action-pypi-publish@v1.14 .0
202217 if : github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
203218 with :
204219 user : __token__
0 commit comments