Releases: pypa/cibuildwheel
v2.10.1
v2.10.0
- 🌟 Adds support for building wheels on Cirrus CI. This is exciting for us, as it's the first public CI platform that natively supports macOS Apple Silicon (aka. M1,
arm64
) runners. As such, it's the first platform that you can natively build and test macOSarm64
wheels. It also has native Linux ARM (aarch64) runners, for fast, native builds there. (#1191) - 🌟 Adds support for running cibuildwheel on Apple Silicon machines. For a while, we've supported cross-compilation of Apple Silicon wheels on
x86_64
, but now that we have Cirrus CI we can run our test suite and officially support running cibuildwheel onarm64
. (#1191) - ✨ Adds the
--only
command line option, to specify a single build to run. Previously, it could be cumbersome to set all the build selection options to target a specific build - for example, you might have to run something likeCIBW_BUILD=cp39-manylinux_x86_64 cibuildwheel --platform linux --archs x86_64
. The new--only
option overrides all the build selection options to simplify running a single build, which now looks likecibuildwheel --only cp39-manylinux_x86_64
. (#1098) - ✨ Adds the
CIBW_CONFIG_SETTINGS
option, so you can pass arguments to your package's build backend (#1244) - 🛠 Updates the CPython 3.11 version to the latest release candidate - v3.11.0rc2. (#1265)
- 🐛 Fix a bug that can cause a RecursionError on Windows when building from an sdist. (#1253)
- 🛠 Add support for the s390x architecture on manylinux_2_28 (#1255)
v2.9.0
- 🌟 CPython 3.11 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.11.0rc1, which is guaranteed to be ABI compatible with the final release. (#1226)
⚠️ Removed support for running cibuildwheel in Python 3.6. Python 3.6 is EOL. However, cibuildwheel continues to build CPython 3.6 wheels for the moment. (#1175)- ✨ Improved error messages when misspelling TOML options, suggesting close matches (#1205)
- 🛠 When running on Apple Silicon (so far, an unsupported mode of operation), cibuildwheel no longer builds universal2 wheels by default - just arm64. See #1204 for discussion. We hope to release official support for native builds on Apple Silicon soon! (#1217)
v2.8.1
- 🐛 Fix a bug when building CPython 3.8 wheels on an Apple Silicon machine where testing would always fail. cibuildwheel will no longer attempt to test the arm64 part of CPython 3.8 wheels because we use the x86_64 installer of CPython 3.8 due to its macOS system version backward-compatibility. See #1169 for more details. (#1171)
- 🛠 Update the prerelease CPython 3.11 to 3.11.0b4. (#1180)
- 🛠 The GitHub Action will ensure a compatible version of Python is installed on the runner (#1114)
- 📚 A few docs improvements
v2.8.0
-
✨ You can now run cibuildwheel on Podman, as an alternate container engine to Docker (which remains the default). This is useful in environments where a Docker daemon isn't available, for example, it can be run inside a Docker container, or without root access. To use Podman, set the
CIBW_CONTAINER_ENGINE
option. (#966) -
✨ Adds support for building
py3-none-{platform}
wheels. This works the same as ABI3 - wheels won't be rebuilt, but tests will still be run across all selected versions of Python.These wheels contain native extension code, but don't use the Python APIs. Typically, they're bridged to Python using a FFI module like ctypes or cffi. Because they don't use Python ABI, the wheels are more compatible - they work across many Python versions.
Check out this example ctypes project to see an example of how it works. (#1151)
-
🛠 cibuildwheel will now error if multiple builds in a single run produce the same wheel filename, as this indicates a misconfiguration. (#1152)
-
📚 A few docs improvements and updates to keep things up-to-date.
2.7.0
- 🌟 Added support for the new
manylinux_2_28
images. These new images are based on AlmaLinux, the community-driven successor to CentOS, unlikemanylinux_2_24
, which was based on Debian. To build on these images, set yourCIBW_MANYLINUX_*_IMAGE
option tomanylinux_2_28
. (#1026) - 🐛 Fix a bug where tests were not being run on CPython 3.11 (when CIBW_PRERELEASE_PYTHONS was set) (#1138)
- ✨ You can now build Linux wheels on Windows, as long as you have Docker installed and set to 'Linux containers' (#1117)
- 🐛 Fix a bug on macOS that caused cibuildwheel to crash trying to overwrite a previously-built wheel of the same name (#1129)
2.6.1
2.6.0
- 🌟 Added the ability to test building wheels on CPython 3.11! Because CPython 3.11 is in beta, these wheels should not be distributed, because they might not be compatible with the final release, but it's available to build for testing purposes. Use the flag
--prerelease-pythons
orCIBW_PRERELEASE_PYTHONS
to test. This version of cibuildwheel includes CPython 3.11.0b1. (#1109) - 📚 Added an interactive diagram showing how cibuildwheel works to the docs (#1100)
2.5.0
- ✨ Added support for building ABI3 wheels. cibuildwheel will now recognise when an ABI3 wheel was produced, and skip subsequent build steps where the previously built wheel is compatible. Tests still will run on all selected versions of Python, using the ABI3 wheel. Check this entry in the docs for more info. (#1091)
- ✨ You can now build wheels directly from sdist archives, in addition to source directories. Just call cibuildwheel with an sdist argument on the command line, like
cibuildwheel mypackage-1.0.0.tar.gz
. For more details, check the--help
output (#1096) - 🐛 Fix a bug where cibuildwheel would crash when no builds are selected and
--allow-empty
is passed (#1086) - 🐛 Workaround a permissions issue on Linux relating to newer versions of git and setuptools_scm (#1095)
- 📚 Minor docs improvements
v2.4.0
- ✨ cibuildwheel now supports running locally on Windows and macOS (as well as Linux). On macOS, you'll have to install the versions of Pythons that you want to use from Python.org, and cibuildwheel will use them. On Windows, cibuildwheel will install it's own versions of Python. Check out the documentation for instructions. (#974)
- ✨ Added support for building PyPy 3.9 wheels. (#1031)
- ✨ Listing at the end of the build now displays the size of each wheel (#975)
- 🐛 Workaround a connection timeout bug on Travis CI ppc64le runners (#906)
- 🐛 Fix an encoding error when reading setup.py in the wrong encoding (#977)
- 🛠 Setuptools updated to 61.3.0, including experimental support for reading config from pyproject.toml(PEP 621). This could change the behaviour of your build if you have a pyproject.toml with a
[project]
table, because that takes precedence over setup.py and setup.cfg. Check out the setuptools docs and the project metadata specification for more info. - 🛠 Many other dependency updates.
- 📚 Minor docs improvements