π Added a new CIBW_ENABLE/enable feature that replaces CIBW_FREETHREADED_SUPPORT/free-threaded-support and CIBW_PRERELEASE_PYTHONS with a system that supports both. In cibuildwheel 3, this will also include a PyPy setting and the deprecated options will be removed. (#2048)
π Dependency groups are now supported for tests. Use CIBW_TEST_GROUPS/test-groups to specify groups in [dependency-groups] for testing. (#2063)
π Support for the experimental Ubuntu-based ARMv7l manylinux image (#2052)
β¨ Show a warning when cibuildwheel is run from Python 3.10 or older; cibuildwheel 3.0 will require Python 3.11 or newer as host (#2050)
π Fix issue with stderr interfering with checking the docker version (#2074)
π Python 3.9 is now used in CIBW_BEFORE_ALL/before-all on linux, replacing 3.8, which is now EoL (#2043)
π Error messages for producing a pure-Python wheel are slightly more informative (#2044)
π Better error when uname -m fails on ARM (#2049)
π Better error when repair fails and docs for abi3audit on Windows (#2058)
π Better error when manylinux-interpreters ensure fails (#2066)
π Update Pyodide to 0.26.4, and adapt to the unbundled pyodide-build (now 0.29) (#2090)
π Now cibuildwheel uses dependency-groups for development dependencies (#2064, #2085)
β¨ Adds support for building 32-bit armv7l wheels on musllinux. On a Linux system with emulation set up, set CIBW_ARCHS to armv7l to try it out if you're interested! (#2017)
π Fix Linux Podman builds on some systems (#2016)
β¨ Adds official support for running on Python 3.13 (#2026)
Note: the default manylinux image is scheduled to change from manylinux2014 to manylinux_2_28 in a cibuildwheel release on or after 6th May 2025 - you can set the value now to avoid getting upgraded if you want. (#1992)
π Added a new CIBW_ENABLE/enable feature that replaces CIBW_FREETHREADED_SUPPORT/free-threaded-support and CIBW_PRERELEASE_PYTHONS with a system that supports both. In cibuildwheel 3, this will also include a PyPy setting and the deprecated options will be removed. (#2048)
π Dependency groups are now supported for tests. Use CIBW_TEST_GROUPS/test-groups to specify groups in [dependency-groups] for testing. (#2063)
π Support for the experimental Ubuntu-based ARMv7l manylinux image (#2052)
β¨ Show a warning when cibuildwheel is run from Python 3.10 or older; cibuildwheel 3.0 will require Python 3.11 or newer as host (#2050)
π Fix issue with stderr interfering with checking the docker version (#2074)
π Python 3.9 is now used in CIBW_BEFORE_ALL/before-all on linux, replacing 3.8, which is now EoL (#2043)
π Error messages for producing a pure-Python wheel are slightly more informative (#2044)
π Better error when uname -m fails on ARM (#2049)
π Better error when repair fails and docs for abi3audit on Windows (#2058)
π Better error when manylinux-interpreters ensure fails (#2066)
π Update Pyodide to 0.26.4, and adapt to the unbundled pyodide-build (now 0.29) (#2090)
π Now cibuildwheel uses dependency-groups for development dependencies (#2064, #2085)
β¨ Adds support for building 32-bit armv7l wheels on musllinux. On a Linux system with emulation set up, set CIBW_ARCHS to armv7l on Linux to try it out if you're interested! (#2017)
π Fix Linux Podman builds on some systems (#2016)
β¨ Adds official support for running on Python 3.13 (#2026)
Note: the default manylinux image is scheduled to change from manylinux2014 to manylinux_2_28 in a cibuildwheel release on or after 6th May 2025 - you can set the value now to avoid getting upgraded if you want. (#1992)
The fix for signing legacy zip sdists turned out to be incomplete, so @βwoodruffwπ° promptly produced another follow-up that updated pypi-attestations from v0.0.13 to v0.0.15 in #297. This is the only change since the previous release.
Version v1.12.0 hit several rare corner cases we never considered fully supported, and this release fixes a few of those.
In #294, @βwebknjazπ° improved the self-hosted runner experience by pre-installing Python if it's not there, and with #293 the ability to use the action on GitHub Enterprise instances has been restored. The latter should've also fixed the ability to invoke pypi-publish from nested in-repo composite actions β another exotic use-case that was never tested in our CI.
@βwoodruffwπ° also managed to squeeze in a last-minute fix for detecting legacy .zip sdists while producing attestations via #295.
π Huge Thanks to all the bug reporters for posting the logs, helping inspect the problems and verify the regression fixes!
v1.12.0
β‘οΈ Why Should You Update?
This is a minor version bump, but it does not add any new user-facing interfaces. Still, I felt like it should not be a patch-release: this update brings significant changes to the action invocation and internal release process.
Previously, each invocation of pypi-publish required building a container image in the invoking CI job. This was inefficient and added about 30 seconds to the publishing jobs at their startup just to build the container.
I wanted to improve this for over three years (#58) and a little over half a year ago @βbr3ndonlandπ° stepped up and offered a very comprehensive solution to the limitation I was hoping to overcome: #230.
Going forward, I'm going to pre-build per-version containers prior to cutting each release. And the action invocations will just pull the image from GitHub Container registry.
[!CAUTION]
Known quirks:
This seems to not work on self-hosted runners without a python executable: #289. The workaround could be installing it prior to running the action.
Pinning to commit hashes does not work: #290. Workaround: postpone updating until it's fixed or switch to Git tags for now. Subscribe to that issue to follow the progress.UPD: This was an issue during the first 12 hours post release and it has been addressed upstream by publishing a commit SHA-tagged image for the release on Nov 12, 2024 at 10:27 UTC+1.
Calling pypi-publish from another nested repo-local composite action might be breaking file paths: #291. Workaround: postpone updating until it's fixed. Subscribe to that issue to follow the progress.
Running within GitHub Enterprise fails on the action repo clone: #292. Workaround: postpone updating until it's fixed. Subscribe to that issue to follow the progress.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the actions group with 2 updates in the /.github/workflows directory: pypa/cibuildwheel and pypa/gh-action-pypi-publish.
Updates
pypa/cibuildwheel
from 2.21.1 to 2.22.0Release notes
Sourced from pypa/cibuildwheel's releases.
Changelog
Sourced from pypa/cibuildwheel's changelog.
Commits
ee63bf1
Bump version: v2.22.0d3eeba7
chore: bump Ruff to 0.8.0 (#2092)109020e
Updates for Pyodide builds afterpyodide-build
was unvendored (#2090)fd99000
[pre-commit.ci] pre-commit autoupdate (#2087)e158f22
ci: update gitlab for dependency-groups (#2089)8f21eb1
chore: use dependency-groups (#2064)aac31ae
docs: fix update scripts usage (#2067)b882b84
fix: update the macOS image used on Cirrus CI (#2085)243085f
[Bot] Update dependencies (#2086)df6f886
feat: add manylinux armv7l (#2052)Updates
pypa/gh-action-pypi-publish
from 1.10.2 to 1.12.2Release notes
Sourced from pypa/gh-action-pypi-publish's releases.
... (truncated)
Commits
15c56db
Merge pull request #297 from trail-of-forks/ww/bump-pypi-attestationsfe8d148
requirements: bump pypi-attestations to 0.0.151f5d4ec
Merge pull request #295 from trail-of-forks/ww/fix-sdist-collectionfec2f0c
attestations: collect *.zip sdists as wella8b73a6
Merge pull request #294 from webknjaz/bugfixes/optional-python9b4dfb0
β¨ Pre-install Python if there's none0a87186
Merge pull request #293 from webknjaz/bugfixes/uncheckout-intermediate-actiondfcfeca
π§ͺ Use prefetched action to make trampoline0d02f37
ππ Update the CI/CD badge in README61da13d
Merge pull request #230 from br3ndonland/ghcrDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show