From 1828c10ab37f080699c7b81cea34097c684a7074 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Tue, 4 Aug 2026 22:23:12 -0400 Subject: [PATCH] Bump version: v4.2.0 --- README.md | 30 +++++++++++++++------------- cibuildwheel/__init__.py | 2 +- docs/changelog.md | 14 +++++++++++++ docs/faq.md | 6 +++--- examples/azure-pipelines-minimal.yml | 6 +++--- examples/circleci-minimal.yml | 6 +++--- examples/github-deploy.yml | 2 +- examples/github-minimal.yml | 2 +- examples/github-pipx.yml | 2 +- examples/github-with-qemu.yml | 2 +- examples/gitlab-minimal.yml | 6 +++--- examples/gitlab-with-qemu.yml | 2 +- pyproject.toml | 2 +- 13 files changed, 49 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 6a955ad5..e7ec7f98 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ jobs: - uses: actions/setup-python@v6 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==4.1.1 + run: python -m pip install cibuildwheel==4.2.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse @@ -238,6 +238,20 @@ Changelog +### v4.2.0 + +_4 August 2026_ + +- ๐ŸŒŸ CPython 3.15 wheels are now built by default - without the `"cpython-prerelease"` [`enable`](https://cibuildwheel.pypa.io/en/stable/options/#enable) set. It's time to build and upload these wheels to PyPI! This release includes CPython 3.15.0rc1, which is guaranteed to be ABI compatible with the final release. (#2944) +- โœจ Adds Pyodide 3.15 support with the `cp315-pyodide_wasm32` build identifier, using Pyodide 315.0.0a2. These are also stable wrt. the final release. (#2958) +- ๐Ÿ› Retries a failed download six times with exponential backoff, so short network outages no longer stop a build. A `4xx` response is still reported at once. (#2953) +- ๐Ÿ› Accepts `default` as a [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#build-frontend) value on Pyodide, and accepts `pyodide-build` in the top-level table and in overrides (#2951) +- ๐Ÿ›  Holds pip back on GraalPy, where newer pip breaks the build (#2955) +- ๐Ÿ›  Updates Pyodide to 314.0.4 (#2949, #2952) +- ๐Ÿ›  Updates dependencies and container pins (#2952, #2960) +- ๐Ÿ’ผ Updates CI action pins (#2948, #2954) +- ๐Ÿงช Uses pp311 for the abi3 test, and deletes `test_overridden_pip_constraint`, which is not necessary since #2583 (#2956, #2957) + ### v4.1.1 _24 July 2026_ @@ -337,19 +351,7 @@ _2 April 2026_ - โœจ cibuildwheel prints the selected build identifiers at the start of the build. (#2785) - ๐Ÿ” The GitHub Action now references other actions with a full SHA (#2744) -### v3.4.0 - -_5 March 2026_ - -- ๐ŸŒŸ You can now build wheels using `uv` as a build frontend. This should improve performance, especially if your project has lots of build dependencies. To use, set [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#build-frontend) to `uv`. (#2322) -- โš ๏ธ We no longer support running on Travis CI. It may continue working but we don't run tests there anymore so we can't be sure. (#2682) -- โœจ Improvements to building rust wheels on Android (#2650) -- ๐Ÿ›  Update Pyodide to 0.29.3 (#2719, #2733) -- ๐Ÿ› Fix bug with the GitHub Action on Windows, where PATH was getting unnecessarily changed, causing issues with meson builds. (#2723) -- โœจ Add support for quiet setting on `build` and `uv` from the cibuildwheel `build-verbosity` setting. (#2737) -- ๐Ÿ“š Docs updates, including guidance on using Meson on Windows (#2718) - - + --- diff --git a/cibuildwheel/__init__.py b/cibuildwheel/__init__.py index 72aa7583..0fd7811c 100644 --- a/cibuildwheel/__init__.py +++ b/cibuildwheel/__init__.py @@ -1 +1 @@ -__version__ = "4.1.1" +__version__ = "4.2.0" diff --git a/docs/changelog.md b/docs/changelog.md index 383f5342..babaac8a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,6 +5,20 @@ ref: changelog # Changelog +### v4.2.0 + +_4 August 2026_ + +- ๐ŸŒŸ CPython 3.15 wheels are now built by default - without the `"cpython-prerelease"` [`enable`](https://cibuildwheel.pypa.io/en/stable/options/#enable) set. It's time to build and upload these wheels to PyPI! This release includes CPython 3.15.0rc1, which is guaranteed to be ABI compatible with the final release. (#2944) +- โœจ Adds Pyodide 3.15 support with the `cp315-pyodide_wasm32` build identifier, using Pyodide 315.0.0a2. These are also stable wrt. the final release. (#2958) +- ๐Ÿ› Retries a failed download six times with exponential backoff, so short network outages no longer stop a build. A `4xx` response is still reported at once. (#2953) +- ๐Ÿ› Accepts `default` as a [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#build-frontend) value on Pyodide, and accepts `pyodide-build` in the top-level table and in overrides (#2951) +- ๐Ÿ›  Holds pip back on GraalPy, where newer pip breaks the build (#2955) +- ๐Ÿ›  Updates Pyodide to 314.0.4 (#2949, #2952) +- ๐Ÿ›  Updates dependencies and container pins (#2952, #2960) +- ๐Ÿ’ผ Updates CI action pins (#2948, #2954) +- ๐Ÿงช Uses pp311 for the abi3 test, and deletes `test_overridden_pip_constraint`, which is not necessary since #2583 (#2956, #2957) + ### v4.1.1 _24 July 2026_ diff --git a/docs/faq.md b/docs/faq.md index 943b2e97..c105a6c1 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -158,7 +158,7 @@ There are two suggested methods for keeping cibuildwheel up to date that instead If you use GitHub Actions for builds, you can use cibuildwheel as an action: ```yaml -uses: pypa/cibuildwheel@v4.1.1 +uses: pypa/cibuildwheel@v4.2.0 ``` This is a composite step that just runs cibuildwheel using pipx. You can set command-line options as `with:` parameters, and use `env:` as normal. @@ -183,7 +183,7 @@ The second option, and the only one that supports other CI systems, is using a ` ```bash # requirements-cibw.txt -cibuildwheel==4.1.1 +cibuildwheel==4.2.0 ``` Then your install step would have `python -m pip install -r requirements-cibw.txt` in it. Your `.github/dependabot.yml` file could look like this: @@ -402,7 +402,7 @@ Solutions to this vary, but the simplest is to use pipx: # most runners have pipx preinstalled, but in case you don't python3 -m pip install pipx -pipx run cibuildwheel==4.1.1 --output-dir wheelhouse +pipx run cibuildwheel==4.2.0 --output-dir wheelhouse pipx run twine upload wheelhouse/*.whl ``` diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index d2da4425..dab0aaab 100644 --- a/examples/azure-pipelines-minimal.yml +++ b/examples/azure-pipelines-minimal.yml @@ -6,7 +6,7 @@ jobs: - bash: | set -o errexit python3 -m pip install --upgrade pip - pip3 install cibuildwheel==4.1.1 + pip3 install cibuildwheel==4.2.0 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels @@ -20,7 +20,7 @@ jobs: - bash: | set -o errexit python3 -m pip install --upgrade pip - python3 -m pip install cibuildwheel==4.1.1 + python3 -m pip install cibuildwheel==4.2.0 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels @@ -34,7 +34,7 @@ jobs: - bash: | set -o errexit python -m pip install --upgrade pip - pip install cibuildwheel==4.1.1 + pip install cibuildwheel==4.2.0 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels diff --git a/examples/circleci-minimal.yml b/examples/circleci-minimal.yml index c43ffdd0..6efbe8c6 100644 --- a/examples/circleci-minimal.yml +++ b/examples/circleci-minimal.yml @@ -11,7 +11,7 @@ jobs: - run: name: Build the Linux wheels. command: | - python3 -m pip install --user cibuildwheel==4.1.1 + python3 -m pip install --user cibuildwheel==4.2.0 cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ @@ -28,7 +28,7 @@ jobs: - run: name: Build the Linux aarch64 wheels. command: | - python3 -m pip install --user cibuildwheel==4.1.1 + python3 -m pip install --user cibuildwheel==4.2.0 python3 -m cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ @@ -44,7 +44,7 @@ jobs: name: Build the OS X wheels. command: | sudo softwareupdate --install-rosetta --agree-to-license # for x86_64/universal2 tests - pip3 install cibuildwheel==4.1.1 + pip3 install cibuildwheel==4.2.0 cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 0d59518b..424786d6 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -53,7 +53,7 @@ jobs: persist-credentials: false - name: Build wheels - uses: pypa/cibuildwheel@v4.1.1 + uses: pypa/cibuildwheel@v4.2.0 env: CIBW_PLATFORM: ${{ matrix.platform || 'auto' }} CIBW_ARCHS: ${{ matrix.archs || 'auto' }} diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index c633fe3d..32db9ea2 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -17,7 +17,7 @@ jobs: persist-credentials: false - name: Build wheels - uses: pypa/cibuildwheel@v4.1.1 + uses: pypa/cibuildwheel@v4.2.0 # env: # CIBW_SOME_OPTION: value # ... diff --git a/examples/github-pipx.yml b/examples/github-pipx.yml index 8a352993..06fc5880 100644 --- a/examples/github-pipx.yml +++ b/examples/github-pipx.yml @@ -17,7 +17,7 @@ jobs: persist-credentials: false - name: Build wheels - run: pipx run cibuildwheel==4.1.1 + run: pipx run cibuildwheel==4.2.0 - uses: actions/upload-artifact@v4 with: diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index d7540d0d..fbf82808 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -23,7 +23,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v4.1.1 + uses: pypa/cibuildwheel@v4.2.0 env: # configure cibuildwheel on Linux to build native archs ('auto'), # and to split the remaining architectures between the x86_64 and diff --git a/examples/gitlab-minimal.yml b/examples/gitlab-minimal.yml index 2a328fe7..367865a5 100644 --- a/examples/gitlab-minimal.yml +++ b/examples/gitlab-minimal.yml @@ -12,7 +12,7 @@ linux: DOCKER_TLS_CERTDIR: "" script: - curl -sSL https://get.docker.com/ | sh - - python -m pip install cibuildwheel==4.1.1 + - python -m pip install cibuildwheel==4.2.0 - cibuildwheel --output-dir wheelhouse artifacts: paths: @@ -23,7 +23,7 @@ windows: before_script: - choco install python -y --allow-downgrade --version 3.12.4 - choco install git.install -y - - py -m pip install cibuildwheel==4.1.1 + - py -m pip install cibuildwheel==4.2.0 script: - py -m cibuildwheel --output-dir wheelhouse --platform windows artifacts: @@ -35,7 +35,7 @@ windows: macos: image: macos-14-xcode-15 before_script: - - python3 -m pip install cibuildwheel==4.1.1 + - python3 -m pip install cibuildwheel==4.2.0 script: - python3 -m cibuildwheel --output-dir wheelhouse artifacts: diff --git a/examples/gitlab-with-qemu.yml b/examples/gitlab-with-qemu.yml index 8abc2a17..d123aca0 100644 --- a/examples/gitlab-with-qemu.yml +++ b/examples/gitlab-with-qemu.yml @@ -14,7 +14,7 @@ linux: - curl -sSL https://get.docker.com/ | sh # Warning: This is extremely slow, be careful with how many wheels you build - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - python -m pip install cibuildwheel==4.1.1 + - python -m pip install cibuildwheel==4.2.0 # Assuming your CI runner's default architecture is x86_64... - cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64 artifacts: diff --git a/pyproject.toml b/pyproject.toml index 4489abb0..1d22cc47 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "cibuildwheel" -version = "4.1.1" +version = "4.2.0" description = "Build Python wheels on CI with minimal configuration." readme = "README.md" license = "BSD-2-Clause"