版本发布 8
- 🛠 Update dependencies and container pins, including updating to CPython 3.14.2. (#2708)
- ✨ 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)
- ⚠️ 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)
Not yet released, but available for testing. Note - when using a beta version, be sure to check the [latest docs](https://cibuildwheel.pypa.io/en/latest/), rather than the stable version, which is still on v2.X. <!-- note to self, when doing final release, change to docs URLs in this section to the stable version! --> If you've used previous versions of the beta: - ⚠️ Previous betas of v3.0 changed the working directory for tests. This has been rolled back to the v2.x behaviour, so you might need to change configs if you adapted to the beta 1 or 2 behaviour. See [issue #2406](https://github.com/pypa/cibuildwheel/issues/2406) for more information. - ⚠️ GraalPy shipped with the identifier `gp242-*` in previous betas, this has been changed to `gp311_242-*` to be consistent with other interpreters, and to fix a bug with GraalPy and project requires-python detection. If you were using GraalPy, you might need to update your config to use the new identifier. - ⚠️ `test-sources` now uses `project` directory instead of the `package` directory (matching the docs). - ⚠️ 32-bit linux builds were removed from `"auto"` (the default), now require `"auto32"` or explicit archs, as modern manylinux images (including our new default) do not support them. #### v3.0.0rc3 _11 June 2025_ - 🛠 32-bit linux builds removed from `"auto"`, requires explicit `"auto32"`. (#2458) - 📚 Warn that `pyodide-version` is experimental. (#2450) #### v3.0.0rc2 _6 June 2025_ - 🛠 Updates to dependencies including Pyodide, python-build-standalone, and iOS support package. (#2449) #### v3.0.0rc1 _5 June 2025_ - 🛠 Updates to dependencies including CPython 3.13.4, pyodide-build and iOS support package. (#2443) #### v3.0.0b5 _3 June 2025_ - ✨ Support multiple commands on iOS, joined by `&&`, like the other platforms. (#2432) - ✨ Add `pyodide-prerelease` enable option, with an early build of 0.28 (Python 3.13). (#2431) - 🛠 test-sources now uses the `project` directory instead of the `package` directory (matching the docs). (#2437) - 🛠 Fixed a bug with GraalPy if vsdevcmd prints an error. Cirrus CI works again. (#2414) - 🛠 Use the standard Schema line for the integrated JSONSchema. (#2433) - 📚 Use Python 3.14 color output in docs CLI output. (#2407) #### v3.0.0b4 _29 May 2025_ - 🛠 Dependency updates, including Python 3.14.0b2. (#2371) - 🛠 Remove the addition of `PYTHONSAFEPATH` to `test-environment`. (#2429) - 📚 README table now matches docs and auto-updates. (#2427, #2428) #### v3.0.0b3 _28 May 2025_ - 🛠 Reverts the test working dir (when test-sources isn't set) to a temporary dir, rather than the project. (#2420) - 📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. (#2389) #### v3.0.0b2 _25 May 2025_ - ✨ Adds the [`CIBW_TEST_ENVIRONMENT`](https://cibuildwheel.pypa.io/en/latest/options/#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`](https://cibuildwheel.pypa.io/en/latest/options/#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](https://cibuildwheel.pypa.io/en/latest/platforms/#ios)! Set the [`platform` option](https://cibuildwheel.pypa.io/en/latest/options/#platform) 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](https://cibuildwheel.pypa.io/en/latest/options/#enable). (#1538) - ✨ Adds CPython 3.14 support, under the [`enable` option](https://cibuildwheel.pypa.io/en/latest/options/#enable) `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](https://cibuildwheel.pypa.io/en/latest/options/#test-sources), 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](https://github.com/pypa/cibuildwheel/issues/2406).~ - 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. - ✨ Added´ `dependency-versions` inline syntax (#2123) - 🛠 The default [manylinux image](https://cibuildwheel.pypa.io/en/latest/options/#linux-image) has changed from `manylinux2014` to `manylinux_2_28` (#2330) - 🛠 Invokes `build` rather than `pip wheel` to build wheels by default. You can control this via the [`build-frontend`](https://cibuildwheel.pypa.io/en/latest/options/#build-frontend) option. You might notice that you can see your build log output now! (#2321) - 🛠 Removed the `CIBW_PRERELEASE_PYTHONS` and `CIBW_FREE_THREADED_SUPPORT` options - these have been folded into the [`enable`](https://cibuildwheel.pypa.io/en/latest/options/#enable) option instead. (#2095) - 🛠 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) - 🛠 Build environments no longer have setuptools and wheel preinstalled. (#2329) - ⚠️ 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) - ⚠️ 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](https://cibuildwheel.pypa.io/en/latest/options/#enable) 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)
Not yet released, but available for testing. Note - when using a beta version, be sure to check the [latest docs](https://cibuildwheel.pypa.io/en/latest/), rather than the stable version, which is still on v2.X. <!-- note to self, when doing final release, change to docs URLs in this section to the stable version! --> If you've used previous versions of the beta: - ⚠️ Previous betas of v3.0 changed the working directory for tests. This has been rolled back to the v2.x behaviour, so you might need to change configs if you adapted to the beta 1 or 2 behaviour. See [issue #2406](https://github.com/pypa/cibuildwheel/issues/2406) for more information. - ⚠️ GraalPy shipped with the identifier `gp242-*` in previous betas, this has been changed to `gp311_242-*` to be consistent with other interpreters, and to fix a bug with GraalPy and project requires-python detection. If you were using GraalPy, you might need to update your config to use the new identifier. - ⚠️ `test-sources` now uses `project` directory instead of the `package` directory (matching the docs). #### v3.0.0rc2 _6 June 2025_ - 🛠 Updates to dependencies including Pyodide, python-build-standalone, and iOS support package. (#2449) #### v3.0.0rc1 _5 June 2025_ - 🛠 Updates to dependencies including CPython 3.13.4, pyodide-build and iOS support package. (#2443) #### v3.0.0b5 _3 June 2025_ - ✨ Support multiple commands on iOS, joined by `&&`, like the other platforms. (#2432) - ✨ Add `pyodide-prerelease` enable option, with an early build of 0.28 (Python 3.13). (#2431) - 🛠 test-sources now uses the `project` directory instead of the `package` directory (matching the docs). (#2437) - 🛠 Fixed a bug with GraalPy if vsdevcmd prints an error. Cirrus CI works again. (#2414) - 🛠 Use the standard Schema line for the integrated JSONSchema. (#2433) - 📚 Use Python 3.14 color output in docs CLI output. (#2407) #### v3.0.0b4 _29 May 2025_ - 🛠 Dependency updates, including Python 3.14.0b2. (#2371) - 🛠 Remove the addition of `PYTHONSAFEPATH` to `test-environment`. (#2429) - 📚 README table now matches docs and auto-updates. (#2427, #2428) #### v3.0.0b3 _28 May 2025_ - 🛠 Reverts the test working dir (when test-sources isn't set) to a temporary dir, rather than the project. (#2420) - 📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. (#2389) #### v3.0.0b2 _25 May 2025_ - ✨ Adds the [`CIBW_TEST_ENVIRONMENT`](https://cibuildwheel.pypa.io/en/latest/options/#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`](https://cibuildwheel.pypa.io/en/latest/options/#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](https://cibuildwheel.pypa.io/en/latest/platforms/#ios)! Set the [`platform` option](https://cibuildwheel.pypa.io/en/latest/options/#platform) 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](https://cibuildwheel.pypa.io/en/latest/options/#enable). (#1538) - ✨ Adds CPython 3.14 support, under the [`enable` option](https://cibuildwheel.pypa.io/en/latest/options/#enable) `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](https://cibuildwheel.pypa.io/en/latest/options/#test-sources), 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](https://github.com/pypa/cibuildwheel/issues/2406).~ - 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. - ✨ Added´ `dependency-versions` inline syntax (#2123) - 🛠 The default [manylinux image](https://cibuildwheel.pypa.io/en/latest/options/#linux-image) has changed from `manylinux2014` to `manylinux_2_28` (#2330) - 🛠 Invokes `build` rather than `pip wheel` to build wheels by default. You can control this via the [`build-frontend`](https://cibuildwheel.pypa.io/en/latest/options/#build-frontend) option. You might notice that you can see your build log output now! (#2321) - 🛠 Removed the `CIBW_PRERELEASE_PYTHONS` and `CIBW_FREE_THREADED_SUPPORT` options - these have been folded into the [`enable`](https://cibuildwheel.pypa.io/en/latest/options/#enable) option instead. (#2095) - 🛠 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) - 🛠 Build environments no longer have setuptools and wheel preinstalled. (#2329) - ⚠️ 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) - ⚠️ 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](https://cibuildwheel.pypa.io/en/latest/options/#enable) 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)
Not yet released, but available for testing. Note - when using a beta version, be sure to check the [latest docs](https://cibuildwheel.pypa.io/en/latest/), rather than the stable version, which is still on v2.X. <!-- note to self, when doing final release, change to docs URLs in this section to the stable version! --> If you've used previous versions of the beta: - ⚠️ Previous betas of v3.0 changed the working directory for tests. This has been rolled back to the v2.x behaviour, so you might need to change configs if you adapted to the beta 1 or 2 behaviour. See [issue #2406](https://github.com/pypa/cibuildwheel/issues/2406) for more information. - ⚠️ GraalPy shipped with the identifier `gp242-*` in previous betas, this has been changed to `gp311_242-*` to be consistent with other interpreters, and to fix a bug with GraalPy and project requires-python detection. If you were using GraalPy, you might need to update your config to use the new identifier. - ⚠️ `test-sources` now uses `project` directory instead of the `package` directory (matching the docs). #### v3.0.0b5 _3 June 2025_ - ✨ Support multiple commands on iOS, joined by `&&`, like the other platforms. (#2432) - ✨ Add `pyodide-prerelease` enable option, with an early build of 0.28 (Python 3.13). (#2431) - 🛠 test-sources now uses the `project` directory instead of the `package` directory (matching the docs). (#2437) - 🛠 Fixed a bug with GraalPy if vsdevcmd prints an error. Cirrus CI works again. (#2414) - 🛠 Use the standard Schema line for the integrated JSONSchema. (#2433) - 📚 Use Python 3.14 color output in docs CLI output. (#2407) #### v3.0.0b4 _29 May 2025_ - 🛠 Dependency updates, including Python 3.14.0b2. (#2371) - 🛠 Remove the addition of `PYTHONSAFEPATH` to `test-environment`. (#2429) - 📚 README table now matches docs and auto-updates. (#2427, #2428) #### v3.0.0b3 _28 May 2025_ - 🛠 Reverts the test working dir (when test-sources isn't set) to a temporary dir, rather than the project. (#2420) - 📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. (#2389) #### v3.0.0b2 _25 May 2025_ - ✨ Adds the [`CIBW_TEST_ENVIRONMENT`](https://cibuildwheel.pypa.io/en/latest/options/#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`](https://cibuildwheel.pypa.io/en/latest/options/#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](https://cibuildwheel.pypa.io/en/latest/platforms/#ios)! Set the [`platform` option](https://cibuildwheel.pypa.io/en/latest/options/#platform) 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](https://cibuildwheel.pypa.io/en/latest/options/#enable). (#1538) - ✨ Adds CPython 3.14 support, under the [`enable` option](https://cibuildwheel.pypa.io/en/latest/options/#enable) `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](https://cibuildwheel.pypa.io/en/latest/options/#test-sources), 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](https://github.com/pypa/cibuildwheel/issues/2406).~ - 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. - ✨ Added´ `dependency-versions` inline syntax (#2123) - 🛠 The default [manylinux image](https://cibuildwheel.pypa.io/en/latest/options/#linux-image) has changed from `manylinux2014` to `manylinux_2_28` (#2330) - 🛠 Invokes `build` rather than `pip wheel` to build wheels by default. You can control this via the [`build-frontend`](https://cibuildwheel.pypa.io/en/latest/options/#build-frontend) option. You might notice that you can see your build log output now! (#2321) - 🛠 Removed the `CIBW_PRERELEASE_PYTHONS` and `CIBW_FREE_THREADED_SUPPORT` options - these have been folded into the [`enable`](https://cibuildwheel.pypa.io/en/latest/options/#enable) option instead. (#2095) - 🛠 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) - 🛠 Build environments no longer have setuptools and wheel preinstalled. (#2329) - ⚠️ 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) - ⚠️ 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](https://cibuildwheel.pypa.io/en/latest/options/#enable) 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)
Not yet released, but available for testing. Note - when using a beta version, be sure to check the [latest docs](https://cibuildwheel.pypa.io/en/latest/), rather than the stable version, which is still on v2.X. If you've used previous versions of the beta: - ⚠️ Previous betas of v3.0 changed the working directory for tests. This has been rolled back to the v2.x behaviour, so you might need to change configs if you adapted to the beta 1 or 2 behaviour. See [issue #2406](https://github.com/pypa/cibuildwheel/issues/2406) for more information. - ⚠️ GraalPy shipped with the identifier `gp242-*` in previous betas, this has been changed to `gp311_242-*` to be consistent with other interpreters, and to fix a bug with GraalPy and project requires-python detection. If you were using GraalPy, you might need to update your config to use the new identifier. #### v3.0.0b3 _29 May 2025_ - 🛠 Dependency updates, including Python 3.14.0b2 (#2371) - 🛠 Remove the addition of `PYTHONSAFEPATH` to `test-environment`. (#2429) - 📚 README table now matches docs and auto-updates. (#2427, #2428) #### v3.0.0b3 _28 May 2025_ - 🛠 Reverts the test working dir (when test-sources isn't set) to a temporary dir, rather than the project. (#2420) - 📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. (#2389) #### v3.0.0b2 _25 May 2025_ - ✨ Adds the [`CIBW_TEST_ENVIRONMENT`](https://cibuildwheel.pypa.io/en/latest/options/#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`](https://cibuildwheel.pypa.io/en/latest/options/#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](https://cibuildwheel.pypa.io/en/latest/platforms/#ios)! Set the [`platform` option](https://cibuildwheel.pypa.io/en/latest/options/#platform) 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](https://cibuildwheel.pypa.io/en/latest/options/#enable). (#1538) - ✨ Adds CPython 3.14 support, under the [`enable` option](https://cibuildwheel.pypa.io/en/latest/options/#enable) `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](https://cibuildwheel.pypa.io/en/latest/options/#test-sources), 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](https://github.com/pypa/cibuildwheel/issues/2406).~ - 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. - ✨ 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](https://cibuildwheel.pypa.io/en/latest/options/#enable) 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)
This is a preview of our upcoming v3.0.0 release! Lots of goodies in here! - 🌟 Adds the ability to [build wheels for iOS](https://cibuildwheel.pypa.io/en/latest/platforms/#ios)! Set the [`platform` option](https://cibuildwheel.pypa.io/en/latest/options/#platform) 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](https://cibuildwheel.pypa.io/en/latest/options/#enable). (#1538) - ✨ Adds CPython 3.14 support, under the [`enable` option](https://cibuildwheel.pypa.io/en/latest/options/#enable) `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](https://cibuildwheel.pypa.io/en/latest/options/#test-sources). \[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](https://cibuildwheel.pypa.io/en/latest/options/#enable) 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)