diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15cfcbaa64..562495a4a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -181,11 +181,14 @@ jobs: # lsp: 'http://download.pctools.com/mirror/updates/9.0.0.2308-SDavfree-lite_en.exe' # lsp_extract_file: '' # extra_name: ', with non-IFS LSP' + + # ***REMEMBER*** to remove the 3.14 line once windows+cffi works again continue-on-error: >- ${{ ( endsWith(matrix.python, '-dev') || endsWith(matrix.python, '-nightly') + || matrix.python == '3.14' ) && true || false @@ -387,11 +390,13 @@ jobs: - python: '3.9' # We support running on cython 2 and 3 for 3.9 cython: '<3' # cython 2 - python: '3.9' - cython: '>=3' # cython 3 (or greater) + # cython 3.1.0 broke stuff https://github.com/cython/cython/issues/6865 + cython: '>=3,<3.1' # cython 3 (or greater) - python: '3.11' # 3.11 is the last version Cy2 supports cython: '<3' # cython 2 - python: '3.13' # We support running cython3 on 3.13 - cython: '>=3' # cython 3 (or greater) + # cython 3.1.0 broke stuff https://github.com/cython/cython/issues/6865 + cython: '>=3,<3.1' # cython 3 (or greater) steps: - name: Retrieve the project source from an sdist inside the GHA artifact uses: re-actors/checkout-python-sdist@release/v2 diff --git a/src/trio/_core/_tests/test_run.py b/src/trio/_core/_tests/test_run.py index c02d185d45..f3e53ace38 100644 --- a/src/trio/_core/_tests/test_run.py +++ b/src/trio/_core/_tests/test_run.py @@ -922,7 +922,13 @@ async def main() -> None: gc_collect_harder() +# This segfaults, so we need to skipif. Remember to remove the skipif once +# the upstream issue is resolved. @restore_unraisablehook() +@pytest.mark.skipif( + sys.version_info[:3] == (3, 14, 0), + reason="https://github.com/python/cpython/issues/133932", +) def test_error_in_run_loop() -> None: # Blow stuff up real good to check we at least get a TrioInternalError async def main() -> None: diff --git a/src/trio/_tests/test_exports.py b/src/trio/_tests/test_exports.py index 0bf619e3b8..1af78513d7 100644 --- a/src/trio/_tests/test_exports.py +++ b/src/trio/_tests/test_exports.py @@ -117,6 +117,11 @@ def iter_modules( # won't be reflected in trio.socket, and this shouldn't cause downstream test # runs to start failing. @pytest.mark.redistributors_should_skip +@pytest.mark.skipif( + sys.version_info[:4] == (3, 14, 0, "beta"), + # 12 pass, 16 fail + reason="several tools don't support 3.14", +) # Static analysis tools often have trouble with alpha releases, where Python's # internals are in flux, grammar may not have settled down, etc. @pytest.mark.skipif( @@ -243,6 +248,11 @@ def no_underscores(symbols: Iterable[str]) -> set[str]: @slow # see comment on test_static_tool_sees_all_symbols @pytest.mark.redistributors_should_skip +@pytest.mark.skipif( + sys.version_info[:4] == (3, 14, 0, "beta"), + # 2 passes, 12 fails + reason="several tools don't support 3.14.0", +) # Static analysis tools often have trouble with alpha releases, where Python's # internals are in flux, grammar may not have settled down, etc. @pytest.mark.skipif( diff --git a/tox.ini b/tox.ini index 6eecf7b78a..39d4dece5d 100644 --- a/tox.ini +++ b/tox.ini @@ -52,7 +52,8 @@ commands = [testenv:py39-cython2,py39-cython,py311-cython2,py313-cython] description = "Run cython tests." deps = - cython + # cython 3.1.0 broke stuff https://github.com/cython/cython/issues/6865 + cython: cython<3.1.0 cython2: cython<3 setuptools ; python_version >= '3.12' commands_pre =