Skip to content

Update pypa/cibuildwheel action to v3#7

Open
renovate[bot] wants to merge 1 commit intomainfrom
renovate/pypa-cibuildwheel-3.x
Open

Update pypa/cibuildwheel action to v3#7
renovate[bot] wants to merge 1 commit intomainfrom
renovate/pypa-cibuildwheel-3.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Apr 15, 2026

This PR contains the following updates:

Package Type Update Change
pypa/cibuildwheel action major v2.17v3.4

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

pypa/cibuildwheel (pypa/cibuildwheel)

v3.4.1

Compare Source

  • ⚠️ Building for the experimental CPython 3.13 free-threading variant is now deprecated. That functionality will be removed in the next minor release. The enable option cpython-freethreading is therefore also deprecated. Builds specifying enable = "all" no longer select cpython-freethreading. CPython 3.14 free-threading support remains available without the enable flag. (#​2787)
  • 🐛 iOS builds will no longer skip repair-wheel-command if it's defined in config (#​2761)
  • 🐛 Fix bug causing uv to fail when environments define PYTHON_VERSION or UV_PYTHON, conflicting with our venvs (#​2795)
  • ✨ 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

Compare Source

  • 🌟 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 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)

v3.4

Compare Source

v3.3.1

Compare Source

  • 🛠 Update dependencies and container pins, including updating to CPython 3.14.2. (#​2708)

v3.3.0

Compare Source

  • 🐛 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)

v3.3

Compare Source

v3.2.1

Compare Source

  • 🛠 Update to CPython 3.14.0 final (#​2614)
  • 🐛 Fix the default MACOSX_DEPLOYMENT_TARGET on Python 3.14 (#​2613)
  • 📚 Docs improvements (#​2617)

v3.2.0

Compare Source

  • ✨ Adds GraalPy v25 (Python 3.12) support (#​2597)
  • 🛠 Update to CPython 3.14.0rc3 (#​2602)
  • 🛠 Adds CPython 3.14.0 prerelease support for Android, and a number of improvements to Android builds (#​2568, #​2591)
  • 🛠 Improvements to testing on Android, passing environment markers when installing the venv, and providing more debug output when build-verbosity is set (#​2575)
  • ⚠️ PyPy 3.10 was moved to pypy-eol in the enable option, as it is now end-of-life. (#​2521)
  • 📚 Docs improvements (#​2574, #​2601, #​2598)

v3.2

Compare Source

v3.1.4

Compare Source

  • ✨ Add a --clean-cache command to clean up our cache (#​2489)
  • 🛠 Update Python to 3.14rc2 and other patch version bumps (#​2542, #​2556)
  • 🛠 Update Pyodide to 0.28.2 (#​2562, #​2558)
  • 🐛 Fix resolution with pyodide-build when dependency-versions is set (#​2548)
  • 🐛 Set CMAKE_FIND_ROOT_PATH_MODE_PACKAGE to BOTH on Android (#​2547)
  • 🐛 Add patchelf dependency for platforms that can build Android wheels (#​2552)
  • 🐛 Ignore empty values for CIBW_ARCHS like most other environment variables (#​2541)
  • 💼 The color and suggest_on_error argparse options are now default in 3.14rc1+ (#​2554)
  • 💼 Use the virtualenv release URL instead of blob URL (should be more robust) (#​2555)
  • 🧪 For iOS, lowering to macos-14 is needed for now due to issues with GitHub's runner images (#​2557)
  • 🧪 Split out platforms iOS and Android in our tests (#​2519)
  • 🧪 Fix and enable doctests (#​2546)
  • 📚 Improve our docs on free-threading (#​2549)

v3.1.3

Compare Source

  • 🐛 Fix bug where "latest" dependencies couldn't update to pip 25.2 on Windows (#​2537)
  • 🧪 Use pytest-rerunfailures to improve some of our iOS/Android tests (#​2527, #​2539)
  • 🧪 Remove some GraalPy Windows workarounds in our tests (#​2501)

v3.1.2

Compare Source

  • ⚠️ Add an error if CIBW_FREE_THREADING_SUPPORT is set; you are likely missing 3.13t wheels, please use the enable/CIBW_ENABLE (#​2520)
  • 🛠 riscv64 now enabled if you target that architecture, it's now supported on PyPI (#​2509)
  • 🛠 Add warning when using cpython-experimental-riscv64 (no longer needed) (#​2526, #​2528)
  • 🛠 iOS versions bumped, fixing issues with 3.14 (now RC 1) (#​2530)
  • 🐛 Fix bug in Android running wheel from our GitHub Action (#​2517)
  • 🐛 Fix warning when using test-skip of "*-macosx_universal2:arm64" (#​2522)
  • 🐛 Fix incorrect number of wheels reported in logs, again (#​2517)
  • 📚 We welcome our Android platform maintainer (#​2516)

v3.1.1

Compare Source

  • 🐛 Fix a bug showing an incorrect wheel count at the end of execution, and misrepresenting test-only runs in the GitHub Action summary (#​2512)
  • 📚 Docs fix (#​2510)

v3.1.0

Compare Source

  • 🌟 CPython 3.14 wheels are now built by default - without the "cpython-prerelease" enable set. It's time to build and upload these wheels to PyPI! This release includes CPython 3.14.0rc1, which is guaranteed to be ABI compatible with the final release. (#​2507) Free-threading is no longer experimental in 3.14, so you have to skip it explicitly with 'cp31?t-*' if you don't support it yet. (#​2503)
  • 🌟 Adds the ability to build wheels for Android! Set the platform option to android on Linux or macOS to try it out! (#​2349)
  • 🌟 Adds Pyodide 0.28, which builds 3.13 wheels (#​2487)
  • ✨ Support for 32-bit manylinux_2_28 (now a consistent default) and manylinux_2_34 added (#​2500)
  • 🛠 Improved summary, will also use markdown summary output on GHA (#​2469)
  • 🛠 The riscv64 images now have a working default (as they are now part of pypy/manylinux), but are still experimental (and behind an enable) since you can't push them to PyPI yet (#​2506)
  • 🛠 Fixed a typo in the 3.9 MUSL riscv64 identifier (cp39-musllinux_ricv64 -> cp39-musllinux_riscv64) (#​2490)
  • 🛠 Mistyping --only now shows the correct possibilities, and even suggests near matches on Python 3.14+ (#​2499)
  • 🛠 Only support one output from the repair step on linux like other platforms; auditwheel fixed this over four years ago! (#​2478)
  • 💼 We now use pattern matching extensively (#​2434)
  • 📚 We now have platform maintainers for our special platforms and interpreters! (#​2481)

v3.1

Compare Source

v3.0.1

Compare Source

  • 🛠 Updates CPython 3.14 prerelease to 3.14.0b3 (#​2471)
  • ✨ Adds a CPython 3.14 prerelease iOS build (only when prerelease builds are enabled) (#​2475)

v3.0.0

Compare Source

See @​henryiii's release post for more info on new features!

  • 🌟 Adds the ability to build wheels for iOS! Set the platform option to ios on a Mac with the iOS toolchain to try it out! (#​2286, #​2363, #​2432)

  • 🌟 Adds support for the GraalPy interpreter! Enable for your project using the enable option. (#​1538, #​2411, #​2414)

  • ✨ Adds CPython 3.14 support, under the enable option cpython-prerelease. This version of cibuildwheel uses 3.14.0b2. (#​2390)

    While CPython is in beta, the ABI can change, so your wheels might not be compatible with the final release. For this reason, we don't recommend distributing wheels until RC1, at which point 3.14 will be available in cibuildwheel without the flag. (#​2390)

  • ✨ Adds the test-sources option, and changes the working directory for tests. (#​2062, #​2284, #​2437)

    • If this option is set, cibuildwheel will copy the files and folders specified in test-sources into the temporary directory we run from. This is required for iOS builds, but also useful for other platforms, as it allows you to avoid placeholders.
    • If this option is not set, behaviour matches v2.x - cibuildwheel will run the tests from a temporary directory, and you can use the {project} placeholder in the test-command to refer to the project directory. (#​2420)
  • ✨ Adds dependency-versions inline syntax (#​2122)

  • ✨ Improves support for Pyodide builds and adds the experimental pyodide-version option, which allows you to specify the version of Pyodide to use for builds. (#​2002)

  • ✨ Add pyodide-prerelease enable option, with an early build of 0.28 (Python 3.13). (#​2431)

  • ✨ Adds the test-environment option, which allows you to set environment variables for the test command. (#​2388)

  • ✨ Adds the xbuild-tools option, which allows you to specify tools safe for cross-compilation. Currently only used on iOS; will be useful for Android in the future. (#​2317)

  • 🛠 The default manylinux image has changed from manylinux2014 to manylinux_2_28. (#​2330)

  • 🛠 EOL images manylinux1, manylinux2010, manylinux_2_24 and musllinux_1_1 can no longer be specified by their shortname. The full OCI name can still be used for these images, if you wish. (#​2316)

  • 🛠 Invokes build rather than pip wheel to build wheels by default. You can control this via the build-frontend option. You might notice that you can see your build log output now! (#​2321)

  • 🛠 Build verbosity settings have been reworked to have consistent meanings between build backends when non-zero. (#​2339)

  • 🛠 Removed the CIBW_PRERELEASE_PYTHONS and CIBW_FREE_THREADED_SUPPORT options - these have been folded into the enable option instead. (#​2095)

  • 🛠 Build environments no longer have setuptools and wheel preinstalled. (#​2329)

  • 🛠 Use the standard Schema line for the integrated JSONSchema. (#​2433)

  • ⚠️ Dropped support for building Python 3.6 and 3.7 wheels. If you need to build wheels for these versions, use cibuildwheel v2.23.3 or earlier. (#​2282)

  • ⚠️ The minimum Python version required to run cibuildwheel is now Python 3.11. You can still build wheels for Python 3.8 and newer. (#​1912)

  • ⚠️ 32-bit Linux wheels no longer built by default - the arch was removed from "auto". It now requires explicit "auto32". Note that modern manylinux images (like the new default, manylinux_2_28) do not have 32-bit versions. (#​2458)

  • ⚠️ PyPy wheels no longer built by default, due to a change to our options system. To continue building PyPy wheels, you'll now need to set the enable option to pypy or pypy-eol. (#​2095)

  • ⚠️ Dropped official support for Appveyor. If it was working for you before, it will probably continue to do so, but we can't be sure, because our CI doesn't run there anymore. (#​2386)

  • 📚 A reorganisation of the docs, and numerous updates. (#​2280)

  • 📚 Use Python 3.14 color output in docs CLI output. (#​2407)

  • 📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. (#​2389)

  • 📚 README table now matches docs and auto-updates. (#​2427, #​2428)

v3.0

Compare Source

v2.23.4

Compare Source

v2.23.3

Compare Source

  • 🛠 Dependency updates, including Python 3.13.3 (#​2371)

v2.23.2

Compare Source

  • 🐛 Workaround an issue with pyodide builds when running cibuildwheel with a Python that was installed via UV (#​2328 via #​2331)
  • 🛠 Dependency updates, including a manylinux update that fixes an 'undefined symbol' error in gcc-toolset (#​2334)

v2.23.1

Compare Source

  • ⚠️ Added warnings when the shorthand values manylinux1, manylinux2010, manylinux_2_24, and musllinux_1_1 are used to specify the images in linux builds. The shorthand to these (unmaintainted) images will be removed in v3.0. If you want to keep using these images, explicitly opt-in using the full image URL, which can be found in this file. (#​2312)
  • 🛠 Dependency updates, including a manylinux update which fixes an issue with rustup. (#​2315)

v2.23.0

Compare Source

  • ✨ Adds official support for the new GitHub Actions Arm runners. In fact these worked out-of-the-box, now we include them in our tests and example configs. (#​2135 via #​2281)
  • ✨ Adds support for building PyPy 3.11 wheels (#​2268 via #​2281)
  • 🛠 Adopts the beta pypa/manylinux image for armv7l builds (#​2269 via #​2281)
  • 🛠 Dependency updates, including Pyodide 0.27 (#​2117 and #​2281)

v2.23

Compare Source

v2.22

Compare Source

v2.22.0: Version 2.22.0

Compare Source

  • 🌟 Added a new CIBW_ENABLE/enable feature that replaces CIBW_FREETHREADED_SUPPORT/free-threaded-support and CIBW_PRERELEASE_PYTHONS with a system that supports both. In cibuildwheel 3, this will also include a PyPy setting and the deprecated options will be removed. (#​2048)
  • 🌟 Dependency groups are now supported for tests. Use CIBW_TEST_GROUPS/test-groups to specify groups in [dependency-groups] for testing. (#​2063)
  • 🌟 Support for the experimental Ubuntu-based ARMv7l manylinux image (#​2052)
  • ✨ Show a warning when cibuildwheel is run from Python 3.10 or older; cibuildwheel 3.0 will require Python 3.11 or newer as host (#​2050)
  • 🐛 Fix issue with stderr interfering with checking the docker version (#​2074)
  • 🛠 Python 3.9 is now used in CIBW_BEFORE_ALL/before-all on linux, replacing 3.8, which is now EoL (#​2043)
  • 🛠 Error messages for producing a pure-Python wheel are slightly more informative (#​2044)
  • 🛠 Better error when uname -m fails on ARM (#​2049)
  • 🛠 Better error when repair fails and docs for abi3audit on Windows (#​2058)
  • 🛠 Better error when manylinux-interpreters ensure fails (#​2066)
  • 🛠 Update Pyodide to 0.26.4, and adapt to the unbundled pyodide-build (now 0.29) (#​2090)
  • 🛠 Now cibuildwheel uses dependency-groups for development dependencies (#​2064, #​2085)
  • 📚 Docs updates and tidy ups (#​2061, #​2067, #​2072)

v2.21.3

Compare Source

  • 🛠 Update CPython 3.13 to 3.13.0 final release (#​2032)
  • 📚 Docs updates and tidy ups (#​2035)

v2.21.2

Compare Source

  • ✨ Adds support for building 32-bit armv7l wheels on musllinux. On a Linux system with emulation set up, set CIBW_ARCHS to armv7l to try it out if you're interested! (#​2017)
  • 🐛 Fix Linux Podman builds on some systems (#​2016)
  • ✨ Adds official support for running on Python 3.13 (#​2026)
  • 🛠 Update CPython 3.13 to 3.13.0rc3 (#​2029)

Note: the default manylinux image is scheduled to change from manylinux2014 to manylinux_2_28 in a cibuildwheel release on or after 6th May 2025 - you can set the value now to avoid getting upgraded if you want. (#​1992)

v2.21.1: Version 2.21.1

Compare Source

  • 🐛 Fix a bug in the Linux build, where files copied to the container would have invalid ownership permissions (#​2007)
  • 🐛 Fix a bug on Windows where cibuildwheel would call upon uv to install dependencies for versions of CPython that it does not support (#​2005)
  • 🐛 Fix a bug where uv 0.4.10 would not use the right Python when testing on Linux. (#​2008)
  • 🛠 Bump our documentation pins, fixes an issue with a missing package (#​2011)

v2.21.0: Version 2.21.0

Compare Source

  • ⚠️ Update CPython 3.12 to 3.12.6, which changes the macOS minimum deployment target on CPython 3.12 from macOS 10.9 to macOS 10.13 (#​1998)
  • 🛠 Changes the behaviour when inheriting config-settings in TOML overrides - rather than extending each key, which is rarely useful, individual keys will override previously set values. (#​1803)
  • 🛠 Update CPython 3.13 to 3.13.0rc2 (#​1998)
  • ✨ Adds support for multiarch OCI images (#​1961)
  • 🐛 Fixes some bugs building Linux wheels on macOS. (#​1961)
  • ⚠️ Changes the minimum version of Docker/Podman to Docker API version 1.43, Podman API version 3. The only mainstream runner this should affect is Travis Graviton2 runners - if so you can upgrade your version of Docker. (#​1961)

v2.21

Compare Source

v2.20

Compare Source

v2.20.0: Version 2.20.0

Compare Source

  • 🌟 CPython 3.13 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. It's time to build and upload these wheels to PyPI! This release includes CPython 3.13.0rc1, which is guaranteed to be ABI compatible with the final release. Free-threading is still behind a flag/config option. (#​1950)
  • ✨ Provide a CIBW_ALLOW_EMPTY environment variable as an alternative to the command line flag. (#​1937)
  • 🐛 Don't use uv on PyPy3.8 on Windows, it stopped working starting in 0.2.25. Note that PyPy 3.8 is EoL. (#​1868)
  • 🛠 Set the VSCMD_ARG_TGT_ARCH variable based on target arch. (#​1876)
  • 🛠 Undo cleaner output on pytest 8-8.2 now that 8.3 is out. (#​1943)
  • 📚 Update examples to use Python 3.12 on host (cibuildwheel will require Python 3.11+ on the host machine starting in October 2024) (#​1919)

v2.19.2: Version 2.19.2

Compare Source

v2.19.1: Version 2.19.1

Compare Source

  • 🐛 Don't require setup-python on GHA for Pyodide (#​1868)
  • 🐛 Specify full python path for uv (fixes issue in 0.2.10 & 0.2.11) (#​1881)
  • 🛠 Update for pip 24.1b2 on CPython 3.13. (#​1879)
  • 🛠 Fix a warning in our schema generation script. (#​1866)
  • 🛠 Cleaner output on pytest 8-8.2. (#​1865)

v2.19.0: Version 2.19.0

Compare Source

Release post: https://iscinumpy.dev/post/cibuildwheel-2-19-0/

  • 🌟 Add a Pyodide platform. Set with --platform pyodide or CIBW_PLATFORM: pyodide on Linux with a host Python 3.12 to build WebAssembly wheels. Not accepted on PyPI currently, but usable directly in a website using Pyodide, for live docs, etc. (#​1456, #​1859)
  • 🌟 Add build[uv] backend, which will take a pre-existing uv install (or install cibuildwheel[uv]) and use uv for all environment setup and installs on Python 3.8+. This is significantly faster in most cases. (#​1856)
  • ✨ Add free-threaded macOS builds and update CPython to 3.13.0b2. (#​1854)
  • 🐛 Issue copying a wheel to a non-existent output dir fixed. (#​1851, #​1862)
  • 🐛 Better determinism for the test environment seeding. (#​1835)
  • 🛠 VIRTUAL_ENV variable now set. (#​1842)
  • 🛠 Remove a pip<21.3 workaround. (#​1842)
  • 🛠 Error handling was refactored to use exceptions. (#​1719)
  • 🛠 Hardcoded paths in tests avoided. (#​1834)
  • 🛠 Single Python tests made more generic. (#​1835)
  • 🛠 Sped up our ci by splitting up emulation tests. (#​1839)

v2.19

Compare Source

v2.18.1

Compare Source

  • 🌟 Add free-threaded Linux and Windows builds for 3.13. New identifiers cp313t-*, new option CIBW_FREE_THREADED_SUPPORT/tool.cibuildwheel.free-threaded-support required to opt-in. See the docs for more information. (#​1831)
  • ✨ The container-engine is now a build (non-global) option. (#​1792)
  • 🛠 The build backend for cibuildwheel is now hatchling. (#​1297)
  • 🛠 Significant improvements and modernization to our noxfile. (#​1823)
  • 🛠 Use pylint's new GitHub Actions reporter instead of a custom matcher. (#​1823)
  • 🛠 Unpin virtualenv updates for Python 3.7+ (#​1830)
  • 🐛 Fix running linux tests from Windows or macOS ARM. (#​1788)
  • 📚 Fix our documentation build. (#​1821)

v2.18.0

Compare Source

  • ✨ Adds CPython 3.13 support, under the prerelease flag CIBW_PRERELEASE_PYTHONS. This version of cibuildwheel uses 3.13.0b1. Free-threading mode is not available yet (#​1657), waiting on official binaries (planned for beta 2) and pip support.
    While CPython is in beta, the ABI can change, so your wheels might not be compatible with the final release. For this reason, we don't recommend distributing wheels until RC1, at which point 3.13 will be available in cibuildwheel without the flag. (#​1815)
  • ✨ Musllinux now defaults to musllinux_1_2. You can set the older musllinux_1_1 via config if needed. (#​1817)
  • 🛠 No longer pre-seed setuptools/wheel in virtual environments (#​1819)
  • 🛠 Respect the constraints file when building with pip, matching build (#​1818)
  • 🛠 Use uv to compile our pinned dependencies, 10x faster and doesn't require special setup (#​1778)
  • 🐛 Fix an issue with the schema (#​1788)
  • 📚 Document the new delocate error checking macOS versions (#​1766)
  • 📚 Document Rust builds (#​1816)
  • 📚 Speed up our readthedocs builds with uv, 26 seconds -> 6 seconds to install dependencies (#​1816)

v2.18

Compare Source


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants