Releases: pypa/cibuildwheel
Releases · pypa/cibuildwheel
v2.21.3
v2.21.2
- ✨ 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
- 🐛 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)
Version 2.21.0
⚠️ 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)
Version 2.20.0
- 🌟 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)
Version 2.19.2
- 🐛 Update manylinux2014 pins to versions that support past-EoL CentOS 7 mirrors. (#1917)
- 🐛 Support
--no-isolation
withbuild[uv]
build-frontend. (#1889) - 🛠 Provide attestations for releases at https://github.com/pypa/cibuildwheel/attestations. (#1916)
- 🛠 Provide CPython 3.13.0b3. (#1913)
- 🛠 Remove some workarounds now that pip 24.1 is available. (#1891, #1892)
- 📚 Remove nosetest from our docs. (#1821)
- 📚 Document the macOS ARM workaround for 3.8 on GHA. (#1871)
- 📚 GitLab CI + macOS is now a supported platform with an example. (#1911)
Version 2.19.1
Version 2.19.0
Release post: https://iscinumpy.dev/post/cibuildwheel-2-19-0/
- 🌟 Add a Pyodide platform. Set with
--platform pyodide
orCIBW_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 installcibuildwheel[uv]
) and useuv
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.18.1
- 🌟 Add free-threaded Linux and Windows builds for 3.13. New identifiers
cp313t-*
, new optionCIBW_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
- ✨ 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 oldermusllinux_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)