Skip to content

Releases: pypa/cibuildwheel

v3.0.0b2

25 May 12:03
Compare
Choose a tag to compare
v3.0.0b2 Pre-release
Pre-release

Not yet released, but available for testing.

Note - when using a beta version, be sure to check the latest docs, rather than the stable version, which is still on v2.X.

Known issues:

  • ⚠️ The CWD for test-command has changed in v3.0, but that is still being debated, it might change before the final release. Please provide feedback on the aforementioned issue if you do (or don't!) encounter issues with this.

v3.0.0b2

25 May 2025

  • ✨ Adds the CIBW_TEST_ENVIRONMENT option, which allows you to set environment variables for the test command. cibuildwheel now sets PYTHONSAFEPATH=1 in test environments by default, to avoid picking up package imports from the local directory - we want to test the installed wheel, not the source tree! You can change that, or any other environment variable in the test environment using this option. (#2388)
  • ✨ Improves support for Pyodide builds and adds the CIBW_PYODIDE_VERSION option, which allows you to specify the version of Pyodide to use for builds. (#2002)

v3.0.0b1

19 May 2025

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

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

  • ✨ Adds CPython 3.14 support, under the enable option cpython-prerelease. This version of cibuildwheel uses 3.14.0b1.

    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.

    • If this option is set, cibuildwheel will copy the files and folders specified in test-sources into a temporary directory, and run the tests from there. This is required for iOS builds, but also useful for other platforms, as it allows you to test the installed wheel without any chance of accidentally importing from the source tree.
    • If this option is not set, cibuildwheel will run the tests in the source tree. This is a change from the previous behavior, where cibuildwheel would run the tests from a temporary directory. We're still investigating what's best here, so if you encounter any issues with this, please let us know in issue #2406.
  • ✨ Added dependency-versions inline syntax (#2123)

  • 🛠 EOL manylinux options can no longer be specified by their shortname. Full OCI URL can still be used for these images, if you wish (#2316)

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

  • ⚠️ 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.

  • ⚠️ 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)

v3.0.0b1

19 May 08:30
Compare
Choose a tag to compare
v3.0.0b1 Pre-release
Pre-release

This is a preview of our upcoming v3.0.0 release! Lots of goodies in here!

Note - when using this beta version, be sure to check the latest docs, rather than the stable version, which is still on v2.X.

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

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

  • ✨ Adds CPython 3.14 support, under the enable option cpython-prerelease. This version of cibuildwheel uses 3.14.0b1.

    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. [discussion about the test cwd change and how to use to come!]

  • ✨ Added dependency-versions inline syntax (#2123)

  • 🛠 EOL manylinux options can no longer be specified by their shortname. Full OCI URL can still be used for these images, if you wish (#2316)

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

  • ⚠️ 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.

  • ⚠️ 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)

v2.23.3

26 Apr 10:40
Compare
Choose a tag to compare
  • 🛠 Dependency updates, including Python 3.13.3 (#2371)

v2.23.2

24 Mar 21:26
Compare
Choose a tag to compare
  • 🐛 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

15 Mar 17:59
Compare
Choose a tag to compare
  • ⚠️ 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

01 Mar 13:28
Compare
Choose a tag to compare
  • ✨ 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)

Version 2.22.0

23 Nov 06:45
Compare
Choose a tag to compare
  • 🌟 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

09 Oct 08:05
Compare
Choose a tag to compare
  • 🛠 Update CPython 3.13 to 3.13.0 final release (#2032)
  • 📚 Docs updates and tidy ups (#2035)

v2.21.2

02 Oct 21:52
Compare
Choose a tag to compare
  • ✨ 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)

Version 2.21.1

17 Sep 01:06
Compare
Choose a tag to compare
  • 🐛 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)