diff --git a/README.md b/README.md index 408db6f2..ef116e2f 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ jobs: - uses: actions/setup-python@v6 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==4.1.0 + run: python -m pip install cibuildwheel==4.1.1 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse @@ -239,6 +239,28 @@ Changelog +### v4.1.1 + +_24 July 2026_ + +- ✨ Adds `pyodide-build` as a separate [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#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`](https://cibuildwheel.pypa.io/en/stable/options/#test-runtime) environment variables (e.g. `CIBW_TEST_RUNTIME_ANDROID`) not being honored (#2941) +- 🐛 Fixes quoting of [`test-requires`](https://cibuildwheel.pypa.io/en/stable/options/#test-requires) and [`audit-requires`](https://cibuildwheel.pypa.io/en/stable/options/#audit-requires) so PEP 508 specifiers containing spaces work (#2913) +- 🐛 Makes [`archs`](https://cibuildwheel.pypa.io/en/stable/options/#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`](https://cibuildwheel.pypa.io/en/stable/options/#config-settings) (#2934) +- 🐛 Validates the [`pyodide-version`](https://cibuildwheel.pypa.io/en/stable/options/#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 _12 June 2026_ @@ -328,13 +350,7 @@ _5 March 2026_ - ✨ Add support for quiet setting on `build` and `uv` from the cibuildwheel `build-verbosity` setting. (#2737) - 📚 Docs updates, including guidance on using Meson on Windows (#2718) -### v3.3.1 - -_5 January 2026_ - -- 🛠 Update dependencies and container pins, including updating to CPython 3.14.2. (#2708) - - + --- diff --git a/cibuildwheel/__init__.py b/cibuildwheel/__init__.py index 70397087..72aa7583 100644 --- a/cibuildwheel/__init__.py +++ b/cibuildwheel/__init__.py @@ -1 +1 @@ -__version__ = "4.1.0" +__version__ = "4.1.1" diff --git a/docs/changelog.md b/docs/changelog.md index 1191a107..383f5342 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,6 +5,28 @@ ref: changelog # Changelog +### v4.1.1 + +_24 July 2026_ + +- ✨ Adds `pyodide-build` as a separate [`build-frontend`](https://cibuildwheel.pypa.io/en/stable/options/#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`](https://cibuildwheel.pypa.io/en/stable/options/#test-runtime) environment variables (e.g. `CIBW_TEST_RUNTIME_ANDROID`) not being honored (#2941) +- 🐛 Fixes quoting of [`test-requires`](https://cibuildwheel.pypa.io/en/stable/options/#test-requires) and [`audit-requires`](https://cibuildwheel.pypa.io/en/stable/options/#audit-requires) so PEP 508 specifiers containing spaces work (#2913) +- 🐛 Makes [`archs`](https://cibuildwheel.pypa.io/en/stable/options/#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`](https://cibuildwheel.pypa.io/en/stable/options/#config-settings) (#2934) +- 🐛 Validates the [`pyodide-version`](https://cibuildwheel.pypa.io/en/stable/options/#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 _12 June 2026_ diff --git a/docs/faq.md b/docs/faq.md index 84f3bd7f..943b2e97 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -158,7 +158,7 @@ There are two suggested methods for keeping cibuildwheel up to date that instead If you use GitHub Actions for builds, you can use cibuildwheel as an action: ```yaml -uses: pypa/cibuildwheel@v4.1.0 +uses: pypa/cibuildwheel@v4.1.1 ``` This is a composite step that just runs cibuildwheel using pipx. You can set command-line options as `with:` parameters, and use `env:` as normal. @@ -183,7 +183,7 @@ The second option, and the only one that supports other CI systems, is using a ` ```bash # requirements-cibw.txt -cibuildwheel==4.1.0 +cibuildwheel==4.1.1 ``` Then your install step would have `python -m pip install -r requirements-cibw.txt` in it. Your `.github/dependabot.yml` file could look like this: @@ -402,7 +402,7 @@ Solutions to this vary, but the simplest is to use pipx: # most runners have pipx preinstalled, but in case you don't python3 -m pip install pipx -pipx run cibuildwheel==4.1.0 --output-dir wheelhouse +pipx run cibuildwheel==4.1.1 --output-dir wheelhouse pipx run twine upload wheelhouse/*.whl ``` diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index 8f9e1377..d2da4425 100644 --- a/examples/azure-pipelines-minimal.yml +++ b/examples/azure-pipelines-minimal.yml @@ -6,7 +6,7 @@ jobs: - bash: | set -o errexit python3 -m pip install --upgrade pip - pip3 install cibuildwheel==4.1.0 + pip3 install cibuildwheel==4.1.1 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels @@ -20,7 +20,7 @@ jobs: - bash: | set -o errexit python3 -m pip install --upgrade pip - python3 -m pip install cibuildwheel==4.1.0 + python3 -m pip install cibuildwheel==4.1.1 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels @@ -34,7 +34,7 @@ jobs: - bash: | set -o errexit python -m pip install --upgrade pip - pip install cibuildwheel==4.1.0 + pip install cibuildwheel==4.1.1 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels diff --git a/examples/circleci-minimal.yml b/examples/circleci-minimal.yml index 34803e09..c43ffdd0 100644 --- a/examples/circleci-minimal.yml +++ b/examples/circleci-minimal.yml @@ -11,7 +11,7 @@ jobs: - run: name: Build the Linux wheels. command: | - python3 -m pip install --user cibuildwheel==4.1.0 + python3 -m pip install --user cibuildwheel==4.1.1 cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ @@ -28,7 +28,7 @@ jobs: - run: name: Build the Linux aarch64 wheels. command: | - python3 -m pip install --user cibuildwheel==4.1.0 + python3 -m pip install --user cibuildwheel==4.1.1 python3 -m cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ @@ -44,7 +44,7 @@ jobs: name: Build the OS X wheels. command: | sudo softwareupdate --install-rosetta --agree-to-license # for x86_64/universal2 tests - pip3 install cibuildwheel==4.1.0 + pip3 install cibuildwheel==4.1.1 cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index f076c5c1..0d59518b 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -53,7 +53,7 @@ jobs: persist-credentials: false - name: Build wheels - uses: pypa/cibuildwheel@v4.1.0 + uses: pypa/cibuildwheel@v4.1.1 env: CIBW_PLATFORM: ${{ matrix.platform || 'auto' }} CIBW_ARCHS: ${{ matrix.archs || 'auto' }} diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index 2184393b..c633fe3d 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -17,7 +17,7 @@ jobs: persist-credentials: false - name: Build wheels - uses: pypa/cibuildwheel@v4.1.0 + uses: pypa/cibuildwheel@v4.1.1 # env: # CIBW_SOME_OPTION: value # ... diff --git a/examples/github-pipx.yml b/examples/github-pipx.yml index a9786952..8a352993 100644 --- a/examples/github-pipx.yml +++ b/examples/github-pipx.yml @@ -17,7 +17,7 @@ jobs: persist-credentials: false - name: Build wheels - run: pipx run cibuildwheel==4.1.0 + run: pipx run cibuildwheel==4.1.1 - uses: actions/upload-artifact@v4 with: diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index 28d69750..d7540d0d 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -23,7 +23,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v4.1.0 + uses: pypa/cibuildwheel@v4.1.1 env: # configure cibuildwheel on Linux to build native archs ('auto'), # and to split the remaining architectures between the x86_64 and diff --git a/examples/gitlab-minimal.yml b/examples/gitlab-minimal.yml index 655f0b4f..2a328fe7 100644 --- a/examples/gitlab-minimal.yml +++ b/examples/gitlab-minimal.yml @@ -12,7 +12,7 @@ linux: DOCKER_TLS_CERTDIR: "" script: - curl -sSL https://get.docker.com/ | sh - - python -m pip install cibuildwheel==4.1.0 + - python -m pip install cibuildwheel==4.1.1 - cibuildwheel --output-dir wheelhouse artifacts: paths: @@ -23,7 +23,7 @@ windows: before_script: - choco install python -y --allow-downgrade --version 3.12.4 - choco install git.install -y - - py -m pip install cibuildwheel==4.1.0 + - py -m pip install cibuildwheel==4.1.1 script: - py -m cibuildwheel --output-dir wheelhouse --platform windows artifacts: @@ -35,7 +35,7 @@ windows: macos: image: macos-14-xcode-15 before_script: - - python3 -m pip install cibuildwheel==4.1.0 + - python3 -m pip install cibuildwheel==4.1.1 script: - python3 -m cibuildwheel --output-dir wheelhouse artifacts: diff --git a/examples/gitlab-with-qemu.yml b/examples/gitlab-with-qemu.yml index 65744895..8abc2a17 100644 --- a/examples/gitlab-with-qemu.yml +++ b/examples/gitlab-with-qemu.yml @@ -14,7 +14,7 @@ linux: - curl -sSL https://get.docker.com/ | sh # Warning: This is extremely slow, be careful with how many wheels you build - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - python -m pip install cibuildwheel==4.1.0 + - python -m pip install cibuildwheel==4.1.1 # Assuming your CI runner's default architecture is x86_64... - cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64 artifacts: diff --git a/pyproject.toml b/pyproject.toml index 30c4e48b..4489abb0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "cibuildwheel" -version = "4.1.0" +version = "4.1.1" description = "Build Python wheels on CI with minimal configuration." readme = "README.md" license = "BSD-2-Clause"