Skip to content

Releases

v4.3.5

Choose a tag to compare

@henryiii henryiii released this 27 Oct 19:01
  • πŸ› Stops passing the target build environment to the host virtualenv call, regression in v4.3.4 (#3023)
  • πŸ›  Updates dependencies and constraints (pyodide-build 0.39.3, CPython 3.15.2, etc) (#3024, #3027)
  • πŸ’Ό Updates CI actions (#3025)

v4.3.4

Choose a tag to compare

@henryiii henryiii released this 22 Oct 13:31
  • πŸ” Warns when a uv build frontend is selected and the host uv is older than 0.13.4, which still trusts the compromised eMudhra CA roots (#3021)
  • πŸ” Uses cibuildwheel's CA bundle for pip on Python 3.9, where pip uses its bundled certifi, which still trusts the compromised eMudhra roots (#3017)
  • πŸ” Uses cibuildwheel's CA bundle for pip on GraalPy, where truststore is not supported (#3019)
  • πŸ” Uses cibuildwheel's CA bundle in Android, iOS, and Pyodide cross venvs, where pip uses the host's OpenSSL CA file (#3020)
  • πŸ› Seeds build's isolated environment with the pinned pip on macOS and Windows, fixing GraalPy 25.0 builds (#3018)
  • πŸ’Ό Stops Azure cache growth from restoreKeys (#3022)

v4.3.3

Choose a tag to compare

@joerick joerick released this 21 Oct 09:32
  • πŸ” Updates manylinux images and pip to fix vulnerability to eMudhra.

v4.3.2

Choose a tag to compare

@joerick joerick released this 20 Oct 17:39
  • πŸ” Updates our dependency pins to certifi==2026.10.19, following the eMudhra Intermediate CA Compromise. Linux builds may still be vulnerable through manylinux images - a patch release will soon follow if so.

v4.3.1

Choose a tag to compare

@joerick joerick released this 10 Oct 14:47
  • πŸ›  Updates CPython 3.15 to the final 3.15.0 release (#3009)

v4.3.0

Choose a tag to compare

@joerick joerick released this 05 Oct 08:17
  • ✨ Extends option inheritance to every configuration layer, so global and platform-specific settings can append or prepend to existing values, including cibuildwheel's defaults. Environment variables can also extend earlier settings using CIBW_INHERIT. (#2928)
  • ✨ Adds PyPy 3.12 support and updates PyPy 3.11 to v8.0.0, available with the pypy enable flag (#2998)
  • ✨ Adds GraalPy 3.13 (v25.3) support on Linux, Windows, and macOS arm64, available with the graalpy enable flag (#2982)
  • ✨ Adds log-fold-mode to override CI log folding, including CIBW_LOG_FOLD_MODE=disabled to keep build steps expanded (#2972)
  • ✨ Adds a python-path input to the GitHub Action to choose the Python interpreter used to run cibuildwheel, and falls back to system python3 on runner architectures unsupported by setup-python, such as native riscv64 (#2990)
  • πŸ› Fixes Windows command execution when paths or arguments contain shell metacharacters, including dependency specifiers containing < or > (#2978)
  • πŸ›  Improves readability of logged commands whose arguments contain quotes (#2993)
  • πŸ›  Updates Pyodide to 0.27.8, 0.29.5, and 314.0.7, and updates its build tooling, including auditwheel-emscripten 0.3.0 (#2996)
  • πŸ›  Updates dependencies and container pins, including CPython 3.15.0rc3 (#2986, #3003)
  • πŸ“š Corrects references to --archs in CLI help, error messages, and documentation (#2992)

v4.2.1

Choose a tag to compare

@joerick joerick released this 05 Sep 14:47
  • πŸ› Respects the NuGet package sources configured on the machine when installing CPython on Windows, instead of always falling back to nuget.org (#2966)
  • πŸ› Fixes a NameError on Pyodide when an already-compatible wheel was reused, which made the test step fail (#2968)
  • πŸ›  Updates the Android Python versions, and the Android testbed's Gradle version, making it compatible with Java 25 (#2962)
  • πŸ›  Updates dependencies including CPython 3.15.0rc2 (#2965, #2970, #2976, #2981, #2985)

v4.2.0

Choose a tag to compare

@henryiii henryiii released this 05 Aug 02:24
  • 🌟 CPython 3.15 wheels are now built by default - without the "cpython-prerelease" enable set. It's time to build and upload these wheels to PyPI! This release includes CPython 3.15.0rc1, which is guaranteed to be ABI compatible with the final release. (#2944)
  • ✨ Adds Pyodide 3.15 support with the cp315-pyodide_wasm32 build identifier, using Pyodide 315.0.0a2. These are also stable wrt. the final release. (#2958)
  • πŸ› Retries a failed download six times with exponential backoff, so short network outages no longer stop a build. A 4xx response is still reported at once. (#2953)
  • πŸ› Accepts default as a build-frontend value on Pyodide, and accepts pyodide-build in the top-level table and in overrides (#2951)
  • πŸ›  Holds pip back on GraalPy, where newer pip breaks the build (#2955)
  • πŸ›  Updates Pyodide to 314.0.4 (#2949, #2952)
  • πŸ›  Updates dependencies and container pins (#2952, #2960)
  • πŸ’Ό Updates CI action pins (#2948, #2954)
  • πŸ§ͺ Uses pp311 for the abi3 test, and deletes test_overridden_pip_constraint, which is not necessary since #2583 (#2956, #2957)

v4.1.1

Choose a tag to compare

@henryiii henryiii released this 24 Jul 20:32
  • ✨ Adds pyodide-build as a separate build-frontend, now the default frontend for Pyodide, with verbosity flags handling. Any other frontend is ignored with a warning on Pyodide. (#2609, #2945)
  • πŸ” Uses digests instead of tags for pinned container images, strengthening supply-chain security. The human-readable tags remain as comments in pinned_docker_images.cfg. (#2915)
  • πŸ› Fixes platform-specific test-runtime environment variables (e.g. CIBW_TEST_RUNTIME_ANDROID) not being honored (#2941)
  • πŸ› Fixes quoting of test-requires and audit-requires so PEP 508 specifiers containing spaces work (#2913)
  • πŸ› Makes archs parsing case-insensitive and platform-aware, so e.g. arm64 works on Windows (#2920)
  • πŸ› Uses an absolute path for the {project} placeholder in config-settings (#2934)
  • πŸ› Validates the pyodide-version option against the build identifier with a clear error (#2925)
  • πŸ› Fixes PyPy installs on macOS after PyPy switched its downloads from .tar.bz2 to .tar.gz (#2939)
  • πŸ› Makes a matching python3-config available in the build and test venvs on macOS (#2922)
  • πŸ›  Updates dependencies and container pins (#2917, #2935, #2939)
  • πŸ›  Updates Android tests to current Python versions and the new test repository URL (#2933)
  • πŸ›  Drops the orjson dependency, no longer used by mypy 2+ (#2923)
  • πŸ“š Builds the docs with properdocs, a MkDocs fork (#2946)
  • πŸ“š Adds the missing cp314-pyodide_wasm32 entry to the build identifier table (#2947)
  • πŸ“š Removes outdated notes about the pip wheel build frontend and ClearLinux (#2926)
  • πŸ’Ό Adds a "CI: PyPy EoL" PR label to run PyPy EoL tests on PRs (#2930)
  • πŸ’Ό Updates CI action pins and pre-commit hooks (#2914, #2932, #2938, #2940, #2942, #2943)

v4.1.0

Choose a tag to compare

@joerick joerick released this 12 Jun 16:03
  • ✨ Updates Pyodide to the final 314.0.0 release, so Pyodide 3.14 wheels now build by default without the pyodide-prerelease enable flag. (#2906)
  • πŸ› Raises clear errors when a build produces no wheel, instead of failing later with a confusing message (#2909)
  • πŸ›  Speeds up CLI startup through lazy imports on Python 3.15 (#2797)
  • πŸ“š Adds an FAQ section on caching cibuildwheel's downloaded tools with CIBW_CACHE_PATH (#2842)
  • πŸ“š Documentation improvements: clarifies which shell is used for command options, clarifies environment variable precedence, and fixes a dead Pyodide env info link (#2904, #2905, #2911)