diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 667a141d4..47484469c 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -203,7 +203,10 @@ jobs: with: fetch-depth: 0 - name: Build wheels - uses: pypa/cibuildwheel@v2.21.3 + # cibuildwheel 2.21.3 predates CPython 3.14, so `build = "cp3*"` + # stopped at cp313 and no 3.14 wheels were published (issue #715). + # 4.x builds 3.14 by default and still supports cp310-cp313. + uses: pypa/cibuildwheel@v4.1.0 - uses: actions/upload-artifact@v4 with: name: cibw-wheels-${{ matrix.os }} diff --git a/pyproject.toml b/pyproject.toml index aaf28974a..f4729860e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -117,7 +117,12 @@ testpaths = [ build = "cp3*" archs = ["auto64"] -skip = ["*musllinux*"] +# Skip musllinux, and skip the free-threaded builds (cp313t/cp314t): as of +# cibuildwheel 3.1 free-threading is no longer experimental for 3.14, so +# `cp3*` would otherwise build free-threaded wheels for the Cython extension, +# which has not been validated under a no-GIL interpreter. Drop `cp31?t-*` +# from this list once faust is verified free-threading-safe. +skip = ["*musllinux*", "cp31?t-*"] before-build = "pip install Cython"