From ff6e685c63655ba62a203ef91d11598c1cf94529 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 04:04:03 +0000 Subject: [PATCH 1/2] deps(workflows): bump pypa/cibuildwheel from 3.4 to 4.0 Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 3.4 to 4.0. - [Release notes](https://github.com/pypa/cibuildwheel/releases) - [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md) - [Commits](https://github.com/pypa/cibuildwheel/compare/v3.4...v4.0) --- updated-dependencies: - dependency-name: pypa/cibuildwheel dependency-version: '4.0' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 27012b1e..ecaab3cb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -315,7 +315,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v3.4 + uses: pypa/cibuildwheel@v4.0 env: CIBW_BUILD: ${{ env.CIBW_BUILD }} CIBW_PLATFORM: ${{ matrix.target.platform }} From 97cae0523cab1893f26f61f7e08bd1166da31fa2 Mon Sep 17 00:00:00 2001 From: Xuehai Pan Date: Mon, 8 Jun 2026 17:10:15 +0800 Subject: [PATCH 2/2] fix(workflows): adapt wheel builds to cibuildwheel 4.0 cibuildwheel 4.0 made two changes that broke the Dependabot bump from v3.4 and failed CI: 1. It removed the experimental CPython 3.13 free-threading (`cp313t`) builds and the `cpython-freethreading` enable group, so the `cpython-freethreading` token was rejected at startup ("Unknown enable group") and every wheel job failed (exit 2). 2. It moved the default Pyodide to 314.0.0a2, which targets CPython 3.13, so the `cp312` Pyodide leg matched no build identifiers (exit 3, "No build identifiers selected"). Changes: - Drop the now-invalid `cpython-freethreading` token from both the step `CIBW_ENABLE` and the `[tool.cibuildwheel]` `enable` list in `pyproject.toml`. Non-3.13t targets stay on `pypa/cibuildwheel@v4.0` (3.14t free-threading is enabled by default in 4.0). - Build 3.13t with `cibuildwheel~=3.4` installed via `pip`, run as `python -m cibuildwheel` (mirroring the action's own invocation). Its per-step `CIBW_ENABLE` re-adds `cpython-freethreading` (still valid on 3.x) and overrides the pyproject default. Using `pip` instead of a `uses:` reference keeps the target on the 3.x series and hides it from Dependabot's `github-actions` ecosystem, so it is never bumped back to 4.x. - Drop the obsolete `cp312` Pyodide leg; 4.0 builds the current `cp313` Pyodide by default (`cp312` is now `pyodide-eol`). These wasm wheels are smoke-tests only -- stripped before the PyPI upload -- so no published artifact is lost. --- .github/workflows/build.yml | 25 +++++++++++++++++++------ pyproject.toml | 2 +- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ecaab3cb..c8964006 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -207,11 +207,6 @@ jobs: platform: android archs: "arm64_v8a" # Pyodide - - python-version: "3.12" - target: - runner: ubuntu-latest - platform: pyodide - archs: "wasm32" - python-version: "3.13" target: runner: ubuntu-latest @@ -315,18 +310,36 @@ jobs: platforms: all - name: Build wheels + if: matrix.python-version != '3.13t' uses: pypa/cibuildwheel@v4.0 env: CIBW_BUILD: ${{ env.CIBW_BUILD }} CIBW_PLATFORM: ${{ matrix.target.platform }} CIBW_ARCHS: ${{ matrix.target.archs }} - CIBW_ENABLE: pypy cpython-freethreading${{ env.ALLOW_PRERELEASES == 'true' && ' cpython-prerelease' || '' }} + CIBW_ENABLE: pypy${{ env.ALLOW_PRERELEASES == 'true' && ' cpython-prerelease' || '' }} CIBW_ALLOW_EMPTY: ${{ env.ALLOW_PRERELEASES == 'true' }} with: package-dir: . output-dir: wheelhouse config-file: "{package}/pyproject.toml" + # cibuildwheel 4.0 dropped the experimental CPython 3.13 free-threading (`cp313t`) builds and + # the `cpython-freethreading` enable group. Install the 3.x series via `pip` (rather than the + # `uses: pypa/cibuildwheel` action reference) so this target keeps building while Dependabot's + # `github-actions` ecosystem cannot bump it back to 4.x. + - name: Build wheels (with Python 3.13t) + if: matrix.python-version == '3.13t' + shell: bash + run: | + python -m pip install --ignore-installed --upgrade 'cibuildwheel~=3.4' + python -m cibuildwheel . --output-dir wheelhouse --config-file '{package}/pyproject.toml' + env: + CIBW_BUILD: ${{ env.CIBW_BUILD }} + CIBW_PLATFORM: ${{ matrix.target.platform }} + CIBW_ARCHS: ${{ matrix.target.archs }} + CIBW_ENABLE: pypy cpython-freethreading${{ env.ALLOW_PRERELEASES == 'true' && ' cpython-prerelease' || '' }} + CIBW_ALLOW_EMPTY: ${{ env.ALLOW_PRERELEASES == 'true' }} + - name: Upload wheels uses: actions/upload-artifact@v7 with: diff --git a/pyproject.toml b/pyproject.toml index 55c1faf9..e2ee98c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -109,7 +109,7 @@ optree = ["*.so", "*.pyd", "*.pyi", "*.typed"] # Reference: https://cibuildwheel.pypa.io [tool.cibuildwheel] archs = ["native"] -enable = ["pypy", "cpython-freethreading"] +enable = ["pypy"] skip = "*musllinux*" build-frontend = "build" environment = { PYTHONDEVMODE = "1", PYTHONUNBUFFERED = "1" }