]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Build cp314 & cp314t wheels (#3525)
authorLysandros Nikolaou <lisandrosnik@gmail.com>
Fri, 8 Aug 2025 17:26:19 +0000 (20:26 +0300)
committerGitHub <noreply@github.com>
Fri, 8 Aug 2025 17:26:19 +0000 (13:26 -0400)
* Build cp314 & cp314t wheels

* Fix formatting

.github/workflows/build.yml
.github/workflows/test.yml
pyproject.toml
tornado/test/web_test.py
tox.ini

index 2564eb8dd6d15377388c0ed5327160722ba5df10..8355230ffcbaaacfe4d57c82b66d6de7724978c6 100644 (file)
@@ -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:
index 3f65228c5858a368e07d72f105ddc688d1ec6013..5b89c3b61bc5612b99eedfbfb30b7d140e9156bb 100644 (file)
@@ -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: ""
index 96c8172f2fc827acdc770d1345f778e8bdbd4b22..c8f2c2ca427943f9023e5b2e81205b175661b0ed 100644 (file)
@@ -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"
index 0b01c27493abfc011b8a1b3ce2e193eff603f4c5..1d02730d8849f3a69647581b2b457fc0d14091ac 100644 (file)
@@ -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 86be44a93b060316450e0c48ec0b34dfabef21b0..be3abce9ccacab181c067b977f2f82ea44ea9eb0 100644 (file)
--- 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