From: Lysandros Nikolaou Date: Fri, 8 Aug 2025 17:26:19 +0000 (+0300) Subject: Build cp314 & cp314t wheels (#3525) X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=b7447c1bc27297996033a278035498aa63238e35;p=thirdparty%2Ftornado.git Build cp314 & cp314t wheels (#3525) * Build cp314 & cp314t wheels * Fix formatting --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2564eb8d..8355230f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -65,12 +65,12 @@ jobs: python-version: ${{ env.python-version }} - name: Build wheels - uses: pypa/cibuildwheel@v2.23 + uses: pypa/cibuildwheel@v3.1.3 - name: Audit ABI3 compliance # This may be moved into cibuildwheel itself in the future. See # https://github.com/pypa/cibuildwheel/issues/1342 - run: "pip install abi3audit && abi3audit --verbose --summary ./wheelhouse/*.whl" + run: python -m pip install abi3audit && abi3audit --verbose --summary ./wheelhouse/*abi3*.whl - uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3f65228c..5b89c3b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -57,8 +57,10 @@ jobs: tox_env: py312-full - python: '3.13' tox_env: py313-full - - python: '3.14.0-beta.1 - 3.14' + - python: '3.14.0-rc.1 - 3.14' tox_env: py314-full + - python: '3.14t-dev' + tox_env: py314t - python: 'pypy-3.10' # Pypy is a lot slower due to jit warmup costs, so don't run the # "full" test config there. @@ -140,13 +142,3 @@ jobs: # built here; the real build is defined in build.yml. CIBW_ARCHS: native CIBW_BUILD: cp313-manylinux* - - # Alternatively, uncomment the following lines (and replace the previous CIBW_BUILD) - # to test a freethreading build of python. - #CIBW_BUILD: cp313t-manylinux* - #CIBW_ENABLE: cpython-freethreading - # I don't understand what this does but auditwheel seems to fail in this configuration. - # Since we're throwing away the wheels here, just skip it. - # TODO: When we no longer need to disable this, we can enable freethreading in - # build.yml. - #CIBW_REPAIR_WHEEL_COMMAND: "" diff --git a/pyproject.toml b/pyproject.toml index 96c8172f..c8f2c2ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta" target-version = ['py39', 'py310', 'py311', 'py312', 'py313'] [tool.cibuildwheel] -build = "cp39* cp310* cp311* cp312* cp313*" +build = "cp39* cp310* cp311* cp312* cp313* cp314* cp314t*" test-command = "python -m tornado.test" [tool.cibuildwheel.macos] @@ -15,14 +15,3 @@ archs = "universal2" [tool.cibuildwheel.windows] # TODO: figure out what's going on with these occasional log messages. test-command = "python -m tornado.test --fail-if-logs=false" - -[tool.cibuildwheel.linux] -# This configuration has a bug which appears unrelated to Tornado: -# https://github.com/python/cpython/issues/130522 -# If the underlying bug is not fixed by the time 3.14 is released, -# we may need to skip that in musllinux_i686 as well. -# -# Note that because we use the stable ABI, the wheels built for -# cp39-musllinux_i686 will still be available for users of 3.13, this just -# means we won't be testing them in this configuration. -test-skip = "cp313-musllinux_i686" diff --git a/tornado/test/web_test.py b/tornado/test/web_test.py index 0b01c274..1d02730d 100644 --- a/tornado/test/web_test.py +++ b/tornado/test/web_test.py @@ -53,6 +53,7 @@ import logging import os import re import socket +import sys import typing import unittest import urllib.parse @@ -422,6 +423,10 @@ class CookieTest(WebTestCase): self.assertEqual(headers[2], "c=1; HttpOnly; Path=/") self.assertEqual(headers[3], "d=1; Path=/") + @unittest.skipIf( + getattr(sys.flags, "context_aware_warnings", False), + "interaction with context-aware warnings is buggy", + ) def test_set_cookie_deprecated(self): with ignore_deprecation(): response = self.fetch("/set_deprecated") diff --git a/tox.ini b/tox.ini index 86be44a9..be3abce9 100644 --- a/tox.ini +++ b/tox.ini @@ -13,7 +13,7 @@ [tox] envlist = # Basic configurations: Run the tests for each python version. - py39-full,py310-full,py311-full,py312-full,py313-full,pypy3-full + py39-full,py310-full,py311-full,py312-full,py313-full,py314-full,py314t,pypy3-full # Build and test the docs with sphinx. docs @@ -41,7 +41,7 @@ deps = setenv = # Treat the extension as mandatory in testing (but not on pypy) - {py3,py39,py310,py311,py312,py313,py314}: TORNADO_EXTENSION=1 + {py3,py39,py310,py311,py312,py313,py314,py314t}: TORNADO_EXTENSION=1 # CI workers are often overloaded and can cause our tests to exceed # the default timeout of 5s. ASYNC_TEST_TIMEOUT=25