8000 Releases Β· pypa/cibuildwheel Β· GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: pypa/cibuildwheel

v3.0.0

11 Jun 13:03
Compare
Choose a tag to compare

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.0rc3

11 Jun 04:58
Compare
Choose a tag to compare
v3.0.0rc3 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.

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

v3.0.0rc2

06 Jun 04:06
Compare
Choose a tag to compare
v3.0.0rc2 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.

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

v3.0.0rc1

05 Jun 11:40
Compare
Choose a tag to compare
v3.0.0rc1 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.

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

v3.0.0b5

03 Jun 06:51
Compare
Choose a tag to compare
v3.0.0b5 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.

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

v3.0.0b4

29 May 04:30
Compare
Choose a tag to compare
v3.0.0b4 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.

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

v3.0.0b3

28 May 19:08
Compare
Choose a tag to compare
v3.0.0b3 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.

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 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

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 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.
    • 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 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.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)
0