From f6bd0477ccc60aa8a7a89b8c1eee6bbbd3fe0dbb Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Fri, 5 Jun 2026 09:26:48 -0400 Subject: [PATCH] Bump version: v4.0.0rc2 --- README.md | 46 ++++++++++++++++++---------- cibuildwheel/__init__.py | 2 +- docs/changelog.md | 28 +++++++++++++++++ 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, 77 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 9a98ad72..aaaeecf3 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ jobs: - uses: actions/setup-python@v6 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==4.0.0rc1 + run: python -m pip install cibuildwheel==4.0.0rc2 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse @@ -241,6 +241,34 @@ Changelog +### v4.0.0rc2 + +_5 June 2026_ + +- โœจ Adds CPython 3.15 support for iOS and Android (#2857, #2858) +- โœจ Adds Android improvements for building NumPy and related packages, including auditwheel support, pkg-config and Fortran configuration, and the [`xbuild-files`](https://cibuildwheel.pypa.io/en/stable/options/#xbuild-files) option (#2695) +- โœจ Adds `CIBUILDWHEEL_BUILD_IDENTIFIER` environment variable set to the current build identifier (e.g. `cp311-manylinux_x86_64`) during per-build steps (#2872) +- ๐Ÿ” Adds SHA256 verification for direct downloads of Python interpreters, virtualenv, and python-build-standalone assets (#2873) +- ๐Ÿ” Adds tarfile extraction filter for safe archive extraction (#2856) +- ๐Ÿ› Fixes detection of musl libc when downloading python-build-standalone, which previously always selected the gnu asset on musl hosts like Alpine (#2889) +- ๐Ÿ› Fixes [`config-settings`](https://cibuildwheel.pypa.io/en/stable/options/#config-settings) expansion when `{project}` or `{package}` contains spaces or backslashes (#2886) +- ๐Ÿ› Prevents deadlock when `linux32` fails and forwards platform args to the sanity check (#2880, #2888) +- ๐Ÿ› Fixes container resource leaks on start failure and during teardown (#2879, #2887) +- ๐Ÿ› Removes potential partial cache-population in case of error (#2892) +- ๐Ÿ› Raises a clear error when `ANDROID_API_LEVEL` is not an integer (#2891) +- ๐Ÿ› Replaces assert with proper exception in python-build-standalone (#2859) +- ๐Ÿ›  Updates dependencies and container pins (#2893, #2882, #2874, #2868, #2862, #2884) +- ๐Ÿ›  Minor fixups across error messages, OCI container, and options (#2860) +- ๐Ÿ“š Updates documentation for delvewheel as the default Windows [`repair-wheel-command`](https://cibuildwheel.pypa.io/en/stable/options/#repair-wheel-command), including the build diagram, schema defaults, and legal note (#2877, #2853, #2891) +- ๐Ÿ“š Adds intersphinx support for external documentation linking (#2871) +- ๐Ÿ“š Removes outdated numpy info (#2855) +- ๐Ÿ’ผ Improves Azure test reliability with retries and caching (#2890) +- ๐Ÿ’ผ Fixes Windows GitLab CI test running (#2870) +- ๐Ÿ’ผ Updates CI action pins (#2867) +- ๐Ÿ’ผ Adds agent and copilot setup files (#2861) +- ๐Ÿ’ผ Uses `if TYPE_CHECKING:` blocks (#2866, #2864) +- ๐Ÿงช Adds unit tests for `OCIContainer._get_platform_args` (#2878) + ### v4.0.0rc1 _14 May 2026_ @@ -298,21 +326,7 @@ _5 January 2026_ - ๐Ÿ›  Update dependencies and container pins, including updating to CPython 3.14.2. (#2708) -### v3.3.0 - -_12 November 2025_ - -- ๐Ÿ› Fix an incompatibility with Docker v29 (#2660) -- โœจ Adds `test-runtime` option, to customise how tests on simulated/emulated environments are run (#2636) -- โœจ Adds support for new `manylinux_2_35` images on 32-bit ARM `armv7l`, offering better C++20 compatibility (#2656) -- โœจ `build[uv]` is now supported on Android (#2587) -- โœจ You can now install extras (such as `uv`) with a simple option on the GitHub Action (#2630) -- โœจ `{project}` and `{package}` placeholders are now supported in `repair-wheel-command` (#2589) -- ๐Ÿ›  The versions set with `dependency-versions` no longer constrain packages specified by your `build-system.requires`. Previously, on platforms other than Linux, the constraints in this option would remain in the environment during the build. This has been tidied up make behaviour more consistent between platforms, and to prevent version conflicts. (#2583) -- ๐Ÿ›  Improve the handling of `test-command` on Android, enabling more options to be passed (#2590) -- ๐Ÿ“š Docs improvements (#2618) - - + --- diff --git a/cibuildwheel/__init__.py b/cibuildwheel/__init__.py index 0d337e87..1e470876 100644 --- a/cibuildwheel/__init__.py +++ b/cibuildwheel/__init__.py @@ -1 +1 @@ -__version__ = "4.0.0rc1" +__version__ = "4.0.0rc2" diff --git a/docs/changelog.md b/docs/changelog.md index f47f5ca5..939e9f48 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,6 +5,34 @@ ref: changelog # Changelog +### v4.0.0rc2 + +_5 June 2026_ + +- โœจ Adds CPython 3.15 support for iOS and Android (#2857, #2858) +- โœจ Adds Android improvements for building NumPy and related packages, including auditwheel support, pkg-config and Fortran configuration, and the [`xbuild-files`](https://cibuildwheel.pypa.io/en/stable/options/#xbuild-files) option (#2695) +- โœจ Adds `CIBUILDWHEEL_BUILD_IDENTIFIER` environment variable set to the current build identifier (e.g. `cp311-manylinux_x86_64`) during per-build steps (#2872) +- ๐Ÿ” Adds SHA256 verification for direct downloads of Python interpreters, virtualenv, and python-build-standalone assets (#2873) +- ๐Ÿ” Adds tarfile extraction filter for safe archive extraction (#2856) +- ๐Ÿ› Fixes detection of musl libc when downloading python-build-standalone, which previously always selected the gnu asset on musl hosts like Alpine (#2889) +- ๐Ÿ› Fixes [`config-settings`](https://cibuildwheel.pypa.io/en/stable/options/#config-settings) expansion when `{project}` or `{package}` contains spaces or backslashes (#2886) +- ๐Ÿ› Prevents deadlock when `linux32` fails and forwards platform args to the sanity check (#2880, #2888) +- ๐Ÿ› Fixes container resource leaks on start failure and during teardown (#2879, #2887) +- ๐Ÿ› Removes potential partial cache-population in case of error (#2892) +- ๐Ÿ› Raises a clear error when `ANDROID_API_LEVEL` is not an integer (#2891) +- ๐Ÿ› Replaces assert with proper exception in python-build-standalone (#2859) +- ๐Ÿ›  Updates dependencies and container pins (#2893, #2882, #2874, #2868, #2862, #2884) +- ๐Ÿ›  Minor fixups across error messages, OCI container, and options (#2860) +- ๐Ÿ“š Updates documentation for delvewheel as the default Windows [`repair-wheel-command`](https://cibuildwheel.pypa.io/en/stable/options/#repair-wheel-command), including the build diagram, schema defaults, and legal note (#2877, #2853, #2891) +- ๐Ÿ“š Adds intersphinx support for external documentation linking (#2871) +- ๐Ÿ“š Removes outdated numpy info (#2855) +- ๐Ÿ’ผ Improves Azure test reliability with retries and caching (#2890) +- ๐Ÿ’ผ Fixes Windows GitLab CI test running (#2870) +- ๐Ÿ’ผ Updates CI action pins (#2867) +- ๐Ÿ’ผ Adds agent and copilot setup files (#2861) +- ๐Ÿ’ผ Uses `if TYPE_CHECKING:` blocks (#2866, #2864) +- ๐Ÿงช Adds unit tests for `OCIContainer._get_platform_args` (#2878) + ### v4.0.0rc1 _14 May 2026_ diff --git a/docs/faq.md b/docs/faq.md index d71ef2b5..cd8c024c 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -113,7 +113,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.0.0rc1 +uses: pypa/cibuildwheel@v4.0.0rc2 ``` 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. @@ -138,7 +138,7 @@ The second option, and the only one that supports other CI systems, is using a ` ```bash # requirements-cibw.txt -cibuildwheel==4.0.0rc1 +cibuildwheel==4.0.0rc2 ``` 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: @@ -303,7 +303,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.0.0rc1 --output-dir wheelhouse +pipx run cibuildwheel==4.0.0rc2 --output-dir wheelhouse pipx run twine upload wheelhouse/*.whl ``` diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index 0a1bce9a..57263582 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.0.0rc1 + pip3 install cibuildwheel==4.0.0rc2 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.0.0rc1 + python3 -m pip install cibuildwheel==4.0.0rc2 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.0.0rc1 + pip install cibuildwheel==4.0.0rc2 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels diff --git a/examples/circleci-minimal.yml b/examples/circleci-minimal.yml index 6f30df92..bea7d0d3 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.0.0rc1 + python3 -m pip install --user cibuildwheel==4.0.0rc2 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.0.0rc1 + python3 -m pip install --user cibuildwheel==4.0.0rc2 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.0.0rc1 + pip3 install cibuildwheel==4.0.0rc2 cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 8ca374e3..8c1dbc8b 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.0.0rc1 + uses: pypa/cibuildwheel@v4.0.0rc2 env: CIBW_PLATFORM: ${{ matrix.platform || 'auto' }} CIBW_ARCHS: ${{ matrix.archs || 'auto' }} diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index 9405e907..2d3ea301 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.0.0rc1 + uses: pypa/cibuildwheel@v4.0.0rc2 # env: # CIBW_SOME_OPTION: value # ... diff --git a/examples/github-pipx.yml b/examples/github-pipx.yml index 2b13b04a..fdc8cc79 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.0.0rc1 + run: pipx run cibuildwheel==4.0.0rc2 - uses: actions/upload-artifact@v4 with: diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index b9b9b9cc..f2ab57e4 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.0.0rc1 + uses: pypa/cibuildwheel@v4.0.0rc2 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 8f2c006a..5af92ed5 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.0.0rc1 + - python -m pip install cibuildwheel==4.0.0rc2 - 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.0.0rc1 + - py -m pip install cibuildwheel==4.0.0rc2 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.0.0rc1 + - python3 -m pip install cibuildwheel==4.0.0rc2 script: - python3 -m cibuildwheel --output-dir wheelhouse artifacts: diff --git a/examples/gitlab-with-qemu.yml b/examples/gitlab-with-qemu.yml index b2947736..7b6b7af8 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.0.0rc1 + - python -m pip install cibuildwheel==4.0.0rc2 # 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 1d0d1e62..6c32b842 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "cibuildwheel" -version = "4.0.0rc1" +version = "4.0.0rc2" description = "Build Python wheels on CI with minimal configuration." readme = "README.md" license = "BSD-2-Clause"