From 98a6f3bf64389f680e35e62dcae589087a711d27 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 12 Feb 2025 16:52:48 +0100 Subject: [PATCH 01/10] chore: use pypa/manylinux for manylinux_2_31_armv7l (#2269) --- bin/update_docker.py | 2 +- .../resources/pinned_docker_images.cfg | 2 +- docs/options.md | 34 +++++++++---------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/bin/update_docker.py b/bin/update_docker.py index e090f3f0..f70b9893 100755 --- a/bin/update_docker.py +++ b/bin/update_docker.py @@ -55,7 +55,7 @@ images = [ Image("manylinux_2_28", "pypy_x86_64", "quay.io/pypa/manylinux_2_28_x86_64", None), Image("manylinux_2_28", "pypy_aarch64", "quay.io/pypa/manylinux_2_28_aarch64", None), # manylinux_2_31 images - Image("manylinux_2_31", "armv7l", "ghcr.io/mayeut/manylinux_2_31", None), + Image("manylinux_2_31", "armv7l", "quay.io/pypa/manylinux_2_31_armv7l", None), # musllinux_1_1 images Image("musllinux_1_1", "x86_64", "quay.io/pypa/musllinux_1_1_x86_64", None), Image("musllinux_1_1", "i686", "quay.io/pypa/musllinux_1_1_i686", None), diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 75b03191..e1bcbaca 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -53,6 +53,6 @@ manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.11.16-1 [armv7l] -manylinux_2_31 = ghcr.io/mayeut/manylinux_2_31:2024.11.16-1 +manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.02.08-2 musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2024.11.16-1 diff --git a/docs/options.md b/docs/options.md index 327bfe1f..b0915357 100644 --- a/docs/options.md +++ b/docs/options.md @@ -1188,23 +1188,23 @@ Platform-specific environment variables are also available:
The available options are: -| Option | Default | Future default* | -|-----------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------| -| CIBW_MANYLINUX_X86_64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_x86_64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_x86_64) | -| CIBW_MANYLINUX_I686_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_i686) | | -| CIBW_MANYLINUX_PYPY_X86_64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_x86_64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_x86_64) | -| CIBW_MANYLINUX_AARCH64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_aarch64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_aarch64) | -| CIBW_MANYLINUX_PPC64LE_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_ppc64le) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_ppc64le) | -| CIBW_MANYLINUX_S390X_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_s390x) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_s390x) | -| CIBW_MANYLINUX_ARMV7L_IMAGE | [`manylinux_2_31`](https://github.com/mayeut/manylinux-ubuntu/pkgs/container/manylinux_2_31) | | -| CIBW_MANYLINUX_PYPY_AARCH64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_aarch64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_aarch64) | -| CIBW_MANYLINUX_PYPY_I686_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_i686) | | -| CIBW_MUSLLINUX_X86_64_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_x86_64) | | -| CIBW_MUSLLINUX_I686_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_i686) | | -| CIBW_MUSLLINUX_AARCH64_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_aarch64) | | -| CIBW_MUSLLINUX_PPC64LE_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_ppc64le) | | -| CIBW_MUSLLINUX_S390X_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_s390x) | | -| CIBW_MUSLLINUX_ARMV7L_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_armv7l) | | +| Option | Default | Future default* | +|-----------------------------------|----------------------------------------------------------------|-----------------------------------------------------------------| +| CIBW_MANYLINUX_X86_64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_x86_64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_x86_64) | +| CIBW_MANYLINUX_I686_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_i686) | | +| CIBW_MANYLINUX_PYPY_X86_64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_x86_64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_x86_64) | +| CIBW_MANYLINUX_AARCH64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_aarch64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_aarch64) | +| CIBW_MANYLINUX_PPC64LE_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_ppc64le) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_ppc64le) | +| CIBW_MANYLINUX_S390X_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_s390x) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_s390x) | +| CIBW_MANYLINUX_ARMV7L_IMAGE | [`manylinux_2_31`](https://quay.io/pypa/manylinux_2_31_armv7l) | | +| CIBW_MANYLINUX_PYPY_AARCH64_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_aarch64) | [`manylinux_2_28`](https://quay.io/pypa/manylinux_2_28_aarch64) | +| CIBW_MANYLINUX_PYPY_I686_IMAGE | [`manylinux2014`](https://quay.io/pypa/manylinux2014_i686) | | +| CIBW_MUSLLINUX_X86_64_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_x86_64) | | +| CIBW_MUSLLINUX_I686_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_i686) | | +| CIBW_MUSLLINUX_AARCH64_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_aarch64) | | +| CIBW_MUSLLINUX_PPC64LE_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_ppc64le) | | +| CIBW_MUSLLINUX_S390X_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_s390x) | | +| CIBW_MUSLLINUX_ARMV7L_IMAGE | [`musllinux_1_2`](https://quay.io/pypa/musllinux_1_2_armv7l) | | * The default is scheduled to change in a cibuildwheel release on or after 6th May 2025 - if you don't want the new default, you should set the value to `manylinux2014`. From bb1fd3320e57a5f3d2491612ae9ad3e0b1694742 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Tue, 21 Jan 2025 20:49:59 +0100 Subject: [PATCH 02/10] feat: Add support for ubuntu-24.04-arm GHA runner (#2135) * ci(gha): add tests on ubuntu-24.04-arm * address review comments --- .github/workflows/test.yml | 6 +++--- README.md | 4 ++-- examples/github-deploy.yml | 2 +- examples/github-minimal.yml | 2 +- examples/github-with-qemu.yml | 14 +++++++++----- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f3ae2f60..5e382976 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,7 +37,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-13, macos-14] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14] python_version: ['3.13'] include: - os: ubuntu-latest @@ -89,7 +89,7 @@ jobs: with: package-dir: sample_proj output-dir: wheelhouse_only - only: cp312-${{ runner.os == 'Linux' && 'manylinux_x86_64' || (runner.os == 'Windows' && 'win_amd64' || 'macosx_x86_64') }} + only: cp312-${{ runner.os == 'Linux' && (runner.arch == 'ARM64' && 'manylinux_aarch64' || 'manylinux_x86_64') || (runner.os == 'Windows' && 'win_amd64' || 'macosx_x86_64') }} - name: Create custom configuration file shell: bash @@ -124,7 +124,7 @@ jobs: - name: Test cibuildwheel run: | - uv run bin/run_tests.py --run-podman + uv run bin/run_tests.py ${{ (runner.os == 'Linux' && runner.arch == 'X64') && '--run-podman' || '' }} emulated-archs: name: Get qemu emulated architectures diff --git a/README.md b/README.md index 986ef553..d103efd8 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Usage | | Linux | macOS | Windows | Linux ARM | macOS ARM | Windows ARM | |-----------------|-------|-------|---------|-----------|-----------|-------------| -| GitHub Actions | ✅ | ✅ | ✅ | ✅¹ | ✅ | ✅² | +| GitHub Actions | ✅ | ✅ | ✅ | ✅ | ✅ | ✅² | | Azure Pipelines | ✅ | ✅ | ✅ | | ✅ | ✅² | | Travis CI | ✅ | | ✅ | ✅ | | | | AppVeyor | ✅ | ✅ | ✅ | | ✅ | ✅² | @@ -88,7 +88,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest, macos-13, macos-latest] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-latest] steps: - uses: actions/checkout@v4 diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 23cf6cea..433adf5b 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: # macos-13 is an intel runner, macos-14 is apple silicon - os: [ubuntu-latest, windows-latest, macos-13, macos-14] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14] steps: - uses: actions/checkout@v4 diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index b83d8210..d857b644 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: # macos-13 is an intel runner, macos-14 is apple silicon - os: [ubuntu-latest, windows-latest, macos-13, macos-14] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14] steps: - uses: actions/checkout@v4 diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index 390b872e..ed4836a9 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -9,13 +9,13 @@ jobs: strategy: matrix: # macos-13 is an intel runner, macos-14 is apple silicon - os: [ubuntu-latest, windows-latest, macos-13, macos-14] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-14] steps: - uses: actions/checkout@v4 - name: Set up QEMU - if: runner.os == 'Linux' + if: runner.os == 'Linux' && runner.arch == 'X64' uses: docker/setup-qemu-action@v3 with: platforms: all @@ -23,9 +23,13 @@ jobs: - name: Build wheels uses: pypa/cibuildwheel@v2.22.0 env: - # configure cibuildwheel to build native archs ('auto'), and some - # emulated ones - CIBW_ARCHS_LINUX: auto aarch64 ppc64le s390x + # configure cibuildwheel on Linux to build native archs ('auto'), + # and to split the remaining architectures between the x86_64 and + # ARM runners + # armv7l can be built without QEMU on GitHub Actions ARM runners but that's + # not the case on all ARM64 hardware hence 'auto armv7l' for native archs + # on the GHA ARM64 runner + CIBW_ARCHS_LINUX: ${{ runner.arch == 'X64' && 'auto ppc64le s390x' || 'auto armv7l' }} - uses: actions/upload-artifact@v4 with: From 017abbba683629357f1871875b9a616b8bf46044 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Wed, 12 Feb 2025 16:51:33 +0100 Subject: [PATCH 03/10] feature: add PyPy 3.11 (#2268) --- README.md | 1 + cibuildwheel/resources/build-platforms.toml | 12 +++++++++--- docs/options.md | 1 + test/utils.py | 2 ++ unit_test/option_prepare_test.py | 5 +++-- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d103efd8..705089d8 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ While cibuildwheel itself requires a recent Python version to run (we support th | PyPy 3.8 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A | N/A | N/A | | PyPy 3.9 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A | N/A | N/A | | PyPy 3.10 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A | N/A | N/A | +| PyPy 3.11 v7.3 | ✅ | ✅ | ✅ | N/A | N/A | ✅¹ | ✅¹ | ✅¹ | N/A | N/A | N/A | N/A | ¹ PyPy is only supported for manylinux wheels.
² Windows arm64 support is experimental.
diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 2c2fbede..0c80ad6b 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -22,6 +22,7 @@ python_configurations = [ { identifier = "pp38-manylinux_x86_64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" }, { identifier = "pp39-manylinux_x86_64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" }, { identifier = "pp310-manylinux_x86_64", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" }, + { identifier = "pp311-manylinux_x86_64", version = "3.11", path_str = "/opt/python/pp311-pypy311_pp73" }, { identifier = "cp36-manylinux_aarch64", version = "3.6", path_str = "/opt/python/cp36-cp36m" }, { identifier = "cp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/cp37-cp37m" }, { identifier = "cp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/cp38-cp38" }, @@ -62,10 +63,12 @@ python_configurations = [ { identifier = "pp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" }, { identifier = "pp39-manylinux_aarch64", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" }, { identifier = "pp310-manylinux_aarch64", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" }, + { identifier = "pp311-manylinux_aarch64", version = "3.11", path_str = "/opt/python/pp311-pypy311_pp73" }, { identifier = "pp37-manylinux_i686", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" }, { identifier = "pp38-manylinux_i686", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" }, { identifier = "pp39-manylinux_i686", version = "3.9", path_str = "/opt/python/pp39-pypy39_pp73" }, { identifier = "pp310-manylinux_i686", version = "3.10", path_str = "/opt/python/pp310-pypy310_pp73" }, + { identifier = "pp311-manylinux_i686", version = "3.11", path_str = "/opt/python/pp311-pypy311_pp73" }, { identifier = "cp36-musllinux_x86_64", version = "3.6", path_str = "/opt/python/cp36-cp36m" }, { identifier = "cp37-musllinux_x86_64", version = "3.7", path_str = "/opt/python/cp37-cp37m" }, { identifier = "cp38-musllinux_x86_64", version = "3.8", path_str = "/opt/python/cp38-cp38" }, @@ -152,8 +155,10 @@ python_configurations = [ { identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" }, { identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_x86_64.tar.bz2" }, { identifier = "pp39-macosx_arm64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_arm64.tar.bz2" }, - { identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.17-macos_x86_64.tar.bz2" }, - { identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.17-macos_arm64.tar.bz2" }, + { identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.18-macos_x86_64.tar.bz2" }, + { identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.18-macos_arm64.tar.bz2" }, + { identifier = "pp311-macosx_x86_64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.18-macos_x86_64.tar.bz2" }, + { identifier = "pp311-macosx_arm64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.18-macos_arm64.tar.bz2" }, ] [windows] @@ -185,7 +190,8 @@ python_configurations = [ { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-win64.zip" }, { identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" }, { identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" }, - { identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.17-win64.zip" }, + { identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.18-win64.zip" }, + { identifier = "pp311-win_amd64", version = "3.11", arch = "64", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.18-win64.zip" }, ] [pyodide] diff --git a/docs/options.md b/docs/options.md index b0915357..2856d62b 100644 --- a/docs/options.md +++ b/docs/options.md @@ -302,6 +302,7 @@ When setting the options, you can use shell-style globbing syntax, as per [fnmat | PyPy3.8 v7.3 | pp38-macosx_x86_64
pp38-macosx_arm64 | pp38-win_amd64 | pp38-manylinux_x86_64
pp38-manylinux_i686 | pp38-manylinux_aarch64 | | PyPy3.9 v7.3 | pp39-macosx_x86_64
pp39-macosx_arm64 | pp39-win_amd64 | pp39-manylinux_x86_64
pp39-manylinux_i686 | pp39-manylinux_aarch64 | | PyPy3.10 v7.3 | pp310-macosx_x86_64
pp310-macosx_arm64 | pp310-win_amd64 | pp310-manylinux_x86_64
pp310-manylinux_i686 | pp310-manylinux_aarch64 | +| PyPy3.11 v7.3 | pp311-macosx_x86_64
pp311-macosx_arm64 | pp311-win_amd64 | pp311-manylinux_x86_64
pp311-manylinux_i686 | pp311-manylinux_aarch64 | The list of supported and currently selected build identifiers can also be retrieved by passing the `--print-build-identifiers` flag to cibuildwheel. The format is `python_tag-platform_tag`, with tags similar to those in [PEP 425](https://www.python.org/dev/peps/pep-0425/#details). diff --git a/test/utils.py b/test/utils.py index aa23638d..51fb8ce8 100644 --- a/test/utils.py +++ b/test/utils.py @@ -210,6 +210,7 @@ def expected_wheels( "pp38-pypy38_pp73", "pp39-pypy39_pp73", "pp310-pypy310_pp73", + "pp311-pypy311_pp73", ] if platform == "macos" and machine_arch == "arm64": @@ -225,6 +226,7 @@ def expected_wheels( "pp38-pypy38_pp73", "pp39-pypy39_pp73", "pp310-pypy310_pp73", + "pp311-pypy311_pp73", ] if single_python: diff --git a/unit_test/option_prepare_test.py b/unit_test/option_prepare_test.py index 9d6e2c43..d80f6961 100644 --- a/unit_test/option_prepare_test.py +++ b/unit_test/option_prepare_test.py @@ -27,6 +27,7 @@ ALL_IDS = { "pp38", "pp39", "pp310", + "pp311", } @@ -158,7 +159,7 @@ before-all = "true" assert identifiers == { f"{x}-manylinux_x86_64" for x in ALL_IDS - - {"cp36", "cp310", "cp311", "cp312", "cp313", "pp37", "pp38", "pp39", "pp310"} + - {"cp36", "cp310", "cp311", "cp312", "cp313", "pp37", "pp38", "pp39", "pp310", "pp311"} } assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == "" @@ -169,7 +170,7 @@ before-all = "true" identifiers = {x.identifier for x in kwargs["platform_configs"]} assert identifiers == { f"{x}-manylinux_x86_64" - for x in ["cp310", "cp311", "cp312", "cp313", "pp37", "pp38", "pp39", "pp310"] + for x in ["cp310", "cp311", "cp312", "cp313", "pp37", "pp38", "pp39", "pp310", "pp311"] } kwargs = build_in_container.call_args_list[3][1] From 5a5e514fbd240b7fe9b66feda05d86c9130ad7da Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Fri, 10 Jan 2025 20:58:09 +0530 Subject: [PATCH 04/10] Bump to Pyodide 0.27 (#2117) * Bump to Pyodide 0.27 * Update the Pyodide target's constraints --- cibuildwheel/resources/build-platforms.toml | 2 +- cibuildwheel/resources/constraints-pyodide312.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 0c80ad6b..67f8e2f0 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -196,5 +196,5 @@ python_configurations = [ [pyodide] python_configurations = [ - { identifier = "cp312-pyodide_wasm32", version = "3.12", pyodide_version = "0.26.4", pyodide_build_version = "0.29.0", emscripten_version = "3.1.58", node_version = "v20" }, + { identifier = "cp312-pyodide_wasm32", version = "3.12", pyodide_version = "0.27.0", pyodide_build_version = "0.29.2", emscripten_version = "3.1.58", node_version = "v20" }, ] diff --git a/cibuildwheel/resources/constraints-pyodide312.txt b/cibuildwheel/resources/constraints-pyodide312.txt index a0fcc3be..6eec2992 100644 --- a/cibuildwheel/resources/constraints-pyodide312.txt +++ b/cibuildwheel/resources/constraints-pyodide312.txt @@ -60,7 +60,7 @@ pydantic-core==2.27.0 # via pydantic pygments==2.18.0 # via rich -pyodide-build==0.29.0 +pyodide-build==0.29.2 # via -r .nox/update_constraints/tmp/constraints-pyodide.in pyodide-cli==0.2.4 # via @@ -79,7 +79,7 @@ rich==13.9.4 # pyodide-build # pyodide-cli # typer -ruamel-yaml==0.18.6 +ruamel-yaml==0.18.7 # via pyodide-build ruamel-yaml-clib==0.2.12 # via ruamel-yaml From f76d345e81295537e69528a5df4d1f88c9195b56 Mon Sep 17 00:00:00 2001 From: mayeut Date: Sun, 23 Feb 2025 19:00:07 +0100 Subject: [PATCH 05/10] chore: bump dependencies --- cibuildwheel/resources/build-platforms.toml | 36 ++++++++-------- .../resources/constraints-pyodide312.txt | 37 ++++++++-------- .../resources/constraints-python310.txt | 12 +++--- .../resources/constraints-python311.txt | 8 ++-- .../resources/constraints-python312.txt | 8 ++-- .../resources/constraints-python313.txt | 8 ++-- .../resources/constraints-python38.txt | 6 +-- .../resources/constraints-python39.txt | 12 +++--- cibuildwheel/resources/constraints.txt | 8 ++-- cibuildwheel/resources/nodejs.toml | 4 +- .../resources/pinned_docker_images.cfg | 42 +++++++++---------- cibuildwheel/resources/virtualenv.toml | 2 +- 12 files changed, 91 insertions(+), 92 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 67f8e2f0..b2a83445 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -141,15 +141,15 @@ python_configurations = [ { identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" }, { identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" }, { identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg" }, - { identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.7/python-3.12.7-macos11.pkg" }, - { identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.7/python-3.12.7-macos11.pkg" }, - { identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.7/python-3.12.7-macos11.pkg" }, - { identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0-macos11.pkg" }, - { identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0-macos11.pkg" }, - { identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0-macos11.pkg" }, - { identifier = "cp313t-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0-macos11.pkg" }, - { identifier = "cp313t-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0-macos11.pkg" }, - { identifier = "cp313t-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.0/python-3.13.0-macos11.pkg" }, + { identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.9/python-3.12.9-macos11.pkg" }, + { identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.9/python-3.12.9-macos11.pkg" }, + { identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.9/python-3.12.9-macos11.pkg" }, + { identifier = "cp313-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.2/python-3.13.2-macos11.pkg" }, + { identifier = "cp313-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.2/python-3.13.2-macos11.pkg" }, + { identifier = "cp313-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.2/python-3.13.2-macos11.pkg" }, + { identifier = "cp313t-macosx_x86_64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.2/python-3.13.2-macos11.pkg" }, + { identifier = "cp313t-macosx_arm64", version = "3.13", url = "https://www.python.org/ftp/python/3.13.2/python-3.13.2-macos11.pkg" }, + { identifier = "cp313t-macosx_universal2", version = "3.13", url = "https://www.python.org/ftp/python/3.13.2/python-3.13.2-macos11.pkg" }, { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-osx64.tar.bz2" }, { identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_x86_64.tar.bz2" }, { identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" }, @@ -175,18 +175,18 @@ python_configurations = [ { identifier = "cp310-win_amd64", version = "3.10.11", arch = "64" }, { identifier = "cp311-win32", version = "3.11.9", arch = "32" }, { identifier = "cp311-win_amd64", version = "3.11.9", arch = "64" }, - { identifier = "cp312-win32", version = "3.12.7", arch = "32" }, - { identifier = "cp312-win_amd64", version = "3.12.7", arch = "64" }, - { identifier = "cp313-win32", version = "3.13.0", arch = "32" }, - { identifier = "cp313t-win32", version = "3.13.0", arch = "32" }, - { identifier = "cp313-win_amd64", version = "3.13.0", arch = "64" }, - { identifier = "cp313t-win_amd64", version = "3.13.0", arch = "64" }, + { identifier = "cp312-win32", version = "3.12.9", arch = "32" }, + { identifier = "cp312-win_amd64", version = "3.12.9", arch = "64" }, + { identifier = "cp313-win32", version = "3.13.2", arch = "32" }, + { identifier = "cp313t-win32", version = "3.13.2", arch = "32" }, + { identifier = "cp313-win_amd64", version = "3.13.2", arch = "64" }, + { identifier = "cp313t-win_amd64", version = "3.13.2", arch = "64" }, { identifier = "cp39-win_arm64", version = "3.9.10", arch = "ARM64" }, { identifier = "cp310-win_arm64", version = "3.10.11", arch = "ARM64" }, { identifier = "cp311-win_arm64", version = "3.11.9", arch = "ARM64" }, - { identifier = "cp312-win_arm64", version = "3.12.7", arch = "ARM64" }, - { identifier = "cp313-win_arm64", version = "3.13.0", arch = "ARM64" }, - { identifier = "cp313t-win_arm64", version = "3.13.0", arch = "ARM64" }, + { identifier = "cp312-win_arm64", version = "3.12.9", arch = "ARM64" }, + { identifier = "cp313-win_arm64", version = "3.13.2", arch = "ARM64" }, + { identifier = "cp313t-win_arm64", version = "3.13.2", arch = "ARM64" }, { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-win64.zip" }, { identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" }, { identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" }, diff --git a/cibuildwheel/resources/constraints-pyodide312.txt b/cibuildwheel/resources/constraints-pyodide312.txt index 6eec2992..fec78378 100644 --- a/cibuildwheel/resources/constraints-pyodide312.txt +++ b/cibuildwheel/resources/constraints-pyodide312.txt @@ -2,7 +2,7 @@ # nox -s update_constraints annotated-types==0.7.0 # via pydantic -anyio==4.6.2.post1 +anyio==4.8.0 # via httpx auditwheel-emscripten==0.0.16 # via pyodide-build @@ -10,26 +10,26 @@ build==1.2.2.post1 # via # -r .nox/update_constraints/tmp/constraints-pyodide.in # pyodide-build -certifi==2024.8.30 +certifi==2025.1.31 # via # httpcore # httpx # requests -charset-normalizer==3.4.0 +charset-normalizer==3.4.1 # via requests -click==8.1.7 +click==8.1.8 # via typer -cmake==3.31.0.1 +cmake==3.31.4 # via pyodide-build distlib==0.3.9 # via virtualenv -filelock==3.16.1 +filelock==3.17.0 # via virtualenv h11==0.14.0 # via httpcore httpcore==1.0.7 # via httpx -httpx==0.27.2 +httpx==0.28.1 # via unearth idna==3.10 # via @@ -48,17 +48,17 @@ packaging==24.2 # build # pyodide-build # unearth -pip==24.3.1 +pip==25.0.1 # via -r .nox/update_constraints/tmp/constraints-pyodide.in platformdirs==4.3.6 # via virtualenv -pydantic==2.10.0 +pydantic==2.10.6 # via # pyodide-build # pyodide-lock -pydantic-core==2.27.0 +pydantic-core==2.27.2 # via pydantic -pygments==2.18.0 +pygments==2.19.1 # via rich pyodide-build==0.29.2 # via -r .nox/update_constraints/tmp/constraints-pyodide.in @@ -79,35 +79,34 @@ rich==13.9.4 # pyodide-build # pyodide-cli # typer -ruamel-yaml==0.18.7 +ruamel-yaml==0.18.10 # via pyodide-build ruamel-yaml-clib==0.2.12 # via ruamel-yaml shellingham==1.5.4 # via typer sniffio==1.3.1 - # via - # anyio - # httpx -typer==0.13.1 + # via anyio +typer==0.15.1 # via # auditwheel-emscripten # pyodide-build # pyodide-cli typing-extensions==4.12.2 # via + # anyio # pydantic # pydantic-core # typer unearth==0.17.2 # via pyodide-build -urllib3==2.2.3 +urllib3==2.3.0 # via requests -virtualenv==20.27.1 +virtualenv==20.29.2 # via # build # pyodide-build -wheel==0.45.0 +wheel==0.45.1 # via # auditwheel-emscripten # pyodide-build diff --git a/cibuildwheel/resources/constraints-python310.txt b/cibuildwheel/resources/constraints-python310.txt index 04f6ef2d..a65ea62b 100644 --- a/cibuildwheel/resources/constraints-python310.txt +++ b/cibuildwheel/resources/constraints-python310.txt @@ -4,13 +4,13 @@ altgraph==0.17.4 # via macholib build==1.2.2.post1 # via -r cibuildwheel/resources/constraints.in -delocate==0.12.0 +delocate==0.13.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.9 # via virtualenv -filelock==3.16.1 +filelock==3.17.0 # via virtualenv -importlib-metadata==8.5.0 +importlib-metadata==8.6.1 # via build macholib==1.16.3 # via delocate @@ -18,17 +18,17 @@ packaging==24.2 # via # build # delocate -pip==24.3.1 +pip==25.0.1 # via -r cibuildwheel/resources/constraints.in platformdirs==4.3.6 # via virtualenv pyproject-hooks==1.2.0 # via build -tomli==2.1.0 +tomli==2.2.1 # via build typing-extensions==4.12.2 # via delocate -virtualenv==20.27.1 +virtualenv==20.29.2 # via -r cibuildwheel/resources/constraints.in zipp==3.21.0 # via importlib-metadata diff --git a/cibuildwheel/resources/constraints-python311.txt b/cibuildwheel/resources/constraints-python311.txt index 6b9c935e..ff8b1b1f 100644 --- a/cibuildwheel/resources/constraints-python311.txt +++ b/cibuildwheel/resources/constraints-python311.txt @@ -4,11 +4,11 @@ altgraph==0.17.4 # via macholib build==1.2.2.post1 # via -r cibuildwheel/resources/constraints.in -delocate==0.12.0 +delocate==0.13.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.9 # via virtualenv -filelock==3.16.1 +filelock==3.17.0 # via virtualenv macholib==1.16.3 # via delocate @@ -16,7 +16,7 @@ packaging==24.2 # via # build # delocate -pip==24.3.1 +pip==25.0.1 # via -r cibuildwheel/resources/constraints.in platformdirs==4.3.6 # via virtualenv @@ -24,5 +24,5 @@ pyproject-hooks==1.2.0 # via build typing-extensions==4.12.2 # via delocate -virtualenv==20.27.1 +virtualenv==20.29.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python312.txt b/cibuildwheel/resources/constraints-python312.txt index 6b9c935e..ff8b1b1f 100644 --- a/cibuildwheel/resources/constraints-python312.txt +++ b/cibuildwheel/resources/constraints-python312.txt @@ -4,11 +4,11 @@ altgraph==0.17.4 # via macholib build==1.2.2.post1 # via -r cibuildwheel/resources/constraints.in -delocate==0.12.0 +delocate==0.13.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.9 # via virtualenv -filelock==3.16.1 +filelock==3.17.0 # via virtualenv macholib==1.16.3 # via delocate @@ -16,7 +16,7 @@ packaging==24.2 # via # build # delocate -pip==24.3.1 +pip==25.0.1 # via -r cibuildwheel/resources/constraints.in platformdirs==4.3.6 # via virtualenv @@ -24,5 +24,5 @@ pyproject-hooks==1.2.0 # via build typing-extensions==4.12.2 # via delocate -virtualenv==20.27.1 +virtualenv==20.29.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python313.txt b/cibuildwheel/resources/constraints-python313.txt index 6b9c935e..ff8b1b1f 100644 --- a/cibuildwheel/resources/constraints-python313.txt +++ b/cibuildwheel/resources/constraints-python313.txt @@ -4,11 +4,11 @@ altgraph==0.17.4 # via macholib build==1.2.2.post1 # via -r cibuildwheel/resources/constraints.in -delocate==0.12.0 +delocate==0.13.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.9 # via virtualenv -filelock==3.16.1 +filelock==3.17.0 # via virtualenv macholib==1.16.3 # via delocate @@ -16,7 +16,7 @@ packaging==24.2 # via # build # delocate -pip==24.3.1 +pip==25.0.1 # via -r cibuildwheel/resources/constraints.in platformdirs==4.3.6 # via virtualenv @@ -24,5 +24,5 @@ pyproject-hooks==1.2.0 # via build typing-extensions==4.12.2 # via delocate -virtualenv==20.27.1 +virtualenv==20.29.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python38.txt b/cibuildwheel/resources/constraints-python38.txt index 95b03162..c5892095 100644 --- a/cibuildwheel/resources/constraints-python38.txt +++ b/cibuildwheel/resources/constraints-python38.txt @@ -18,17 +18,17 @@ packaging==24.2 # via # build # delocate -pip==24.3.1 +pip==25.0.1 # via -r cibuildwheel/resources/constraints.in platformdirs==4.3.6 # via virtualenv pyproject-hooks==1.2.0 # via build -tomli==2.1.0 +tomli==2.2.1 # via build typing-extensions==4.12.2 # via delocate -virtualenv==20.27.1 +virtualenv==20.29.2 # via -r cibuildwheel/resources/constraints.in zipp==3.20.2 # via importlib-metadata diff --git a/cibuildwheel/resources/constraints-python39.txt b/cibuildwheel/resources/constraints-python39.txt index 04f6ef2d..a65ea62b 100644 --- a/cibuildwheel/resources/constraints-python39.txt +++ b/cibuildwheel/resources/constraints-python39.txt @@ -4,13 +4,13 @@ altgraph==0.17.4 # via macholib build==1.2.2.post1 # via -r cibuildwheel/resources/constraints.in -delocate==0.12.0 +delocate==0.13.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.9 # via virtualenv -filelock==3.16.1 +filelock==3.17.0 # via virtualenv -importlib-metadata==8.5.0 +importlib-metadata==8.6.1 # via build macholib==1.16.3 # via delocate @@ -18,17 +18,17 @@ packaging==24.2 # via # build # delocate -pip==24.3.1 +pip==25.0.1 # via -r cibuildwheel/resources/constraints.in platformdirs==4.3.6 # via virtualenv pyproject-hooks==1.2.0 # via build -tomli==2.1.0 +tomli==2.2.1 # via build typing-extensions==4.12.2 # via delocate -virtualenv==20.27.1 +virtualenv==20.29.2 # via -r cibuildwheel/resources/constraints.in zipp==3.21.0 # via importlib-metadata diff --git a/cibuildwheel/resources/constraints.txt b/cibuildwheel/resources/constraints.txt index 6b9c935e..ff8b1b1f 100644 --- a/cibuildwheel/resources/constraints.txt +++ b/cibuildwheel/resources/constraints.txt @@ -4,11 +4,11 @@ altgraph==0.17.4 # via macholib build==1.2.2.post1 # via -r cibuildwheel/resources/constraints.in -delocate==0.12.0 +delocate==0.13.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.9 # via virtualenv -filelock==3.16.1 +filelock==3.17.0 # via virtualenv macholib==1.16.3 # via delocate @@ -16,7 +16,7 @@ packaging==24.2 # via # build # delocate -pip==24.3.1 +pip==25.0.1 # via -r cibuildwheel/resources/constraints.in platformdirs==4.3.6 # via virtualenv @@ -24,5 +24,5 @@ pyproject-hooks==1.2.0 # via build typing-extensions==4.12.2 # via delocate -virtualenv==20.27.1 +virtualenv==20.29.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/nodejs.toml b/cibuildwheel/resources/nodejs.toml index 6d3f3f8c..91a71f77 100644 --- a/cibuildwheel/resources/nodejs.toml +++ b/cibuildwheel/resources/nodejs.toml @@ -1,3 +1,3 @@ url = "https://nodejs.org/dist/" -v22 = "v22.11.0" -v20 = "v20.18.0" +v22 = "v22.14.0" +v20 = "v20.18.3" diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index e1bcbaca..e0200697 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,58 +1,58 @@ [x86_64] manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.11.16-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.02.23-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2024.11.16-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.02.23-1 [i686] manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2024.11.16-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.02.23-1 [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2024.11.16-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.02.23-1 [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.11.16-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.02.23-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2024.11.16-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.02.23-1 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2024.11.16-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.02.23-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2024.11.16-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.02.23-1 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2024.11.16-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.02.23-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2024.11.16-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.02.23-1 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2024.11.16-1 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.02.23-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2024.11.16-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.02.23-1 [armv7l] -manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.02.08-2 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2024.11.16-1 +manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.02.23-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.02.23-1 diff --git a/cibuildwheel/resources/virtualenv.toml b/cibuildwheel/resources/virtualenv.toml index 2a5981d3..cb13b37a 100644 --- a/cibuildwheel/resources/virtualenv.toml +++ b/cibuildwheel/resources/virtualenv.toml @@ -1,2 +1,2 @@ py36 = { version = "20.21.1", url = "https://github.com/pypa/get-virtualenv/blob/20.21.1/public/virtualenv.pyz?raw=true" } -default = { version = "20.27.1", url = "https://github.com/pypa/get-virtualenv/blob/20.27.1/public/virtualenv.pyz?raw=true" } +default = { version = "20.29.1", url = "https://github.com/pypa/get-virtualenv/blob/20.29.1/public/virtualenv.pyz?raw=true" } From 8874ee204820309af33b85e21cc3d336d06a2f73 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Fri, 10 Jan 2025 15:35:05 +0000 Subject: [PATCH 06/10] Remove specific Python versions from the update-dependencies job The requirements pinning is done by uv now, so we don't need to run the versions of Python to do the pinning anymore. Cherry-picked from 37f7f611b208f48d4bb80a35eb31e39e47102930 --- .github/workflows/update-dependencies.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml index 8b4a0999..465056c5 100644 --- a/.github/workflows/update-dependencies.yml +++ b/.github/workflows/update-dependencies.yml @@ -33,8 +33,6 @@ jobs: - uses: actions/checkout@v4 - uses: wntrblm/nox@2024.10.09 - with: - python-versions: "3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13" - name: "Run update: dependencies" run: nox --force-color -s update_constraints From 55037e9716e60e89c94226470c51f178af3da5f4 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Thu, 28 Nov 2024 07:52:14 +0100 Subject: [PATCH 07/10] ci/doc: move azure macOS build to `macOS-13` (#2101) The macOS-12 environment is deprecated. --- azure-pipelines.yml | 2 +- examples/azure-pipelines-minimal.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fa720d84..6541244c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ jobs: python ./bin/run_tests.py - job: macos_38 - pool: {vmImage: 'macOS-12'} + pool: {vmImage: 'macOS-13'} steps: - task: UsePythonVersion@0 inputs: diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index dfe3ec1e..11476c56 100644 --- a/examples/azure-pipelines-minimal.yml +++ b/examples/azure-pipelines-minimal.yml @@ -14,7 +14,7 @@ jobs: inputs: {pathtoPublish: 'wheelhouse'} - job: macos - pool: {vmImage: 'macOS-12'} + pool: {vmImage: 'macOS-13'} steps: - task: UsePythonVersion@0 - bash: | From ee23dd147b0862283ddb4744f91240fb1ddc4b8a Mon Sep 17 00:00:00 2001 From: mayeut Date: Mon, 27 Jan 2025 08:53:08 +0100 Subject: [PATCH 08/10] fix(test): implement retry for test_container_removed The test is flaky on some platforms. Implement retry rather than just skip. --- unit_test/oci_container_test.py | 39 +++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/unit_test/oci_container_test.py b/unit_test/oci_container_test.py index 11d991d1..7c8e8456 100644 --- a/unit_test/oci_container_test.py +++ b/unit_test/oci_container_test.py @@ -8,6 +8,7 @@ import shutil import subprocess import sys import textwrap +import time from contextlib import nullcontext from pathlib import Path, PurePath, PurePosixPath @@ -138,14 +139,28 @@ def test_cwd(container_engine): assert container.call(["pwd"], capture_output=True, cwd="/opt") == "/opt\n" -@pytest.mark.skipif( - pm == "s390x" and detect_ci_provider() == CIProvider.travis_ci, - reason="test is flaky on this platform, see https://github.com/pypa/cibuildwheel/pull/1961#issuecomment-2334678966", -) def test_container_removed(container_engine): + # test is flaky on some platforms, implement retry for 5 second + timeout = 50 # * 100 ms = 5s with OCIContainer( engine=container_engine, image=DEFAULT_IMAGE, oci_platform=DEFAULT_OCI_PLATFORM ) as container: + assert container.name is not None + container_name = container.name + for _ in range(timeout): + docker_containers_listing = subprocess.run( + f"{container.engine.name} container ls", + shell=True, + check=True, + stdout=subprocess.PIPE, + text=True, + ).stdout + if container_name in docker_containers_listing: + break + time.sleep(0.1) + assert container_name in docker_containers_listing + + for _ in range(timeout): docker_containers_listing = subprocess.run( f"{container.engine.name} container ls", shell=True, @@ -153,18 +168,10 @@ def test_container_removed(container_engine): stdout=subprocess.PIPE, text=True, ).stdout - assert container.name is not None - assert container.name in docker_containers_listing - old_container_name = container.name - - docker_containers_listing = subprocess.run( - f"{container.engine.name} container ls", - shell=True, - check=True, - stdout=subprocess.PIPE, - text=True, - ).stdout - assert old_container_name not in docker_containers_listing + if container_name not in docker_containers_listing: + break + time.sleep(0.1) + assert container_name not in docker_containers_listing def test_large_environment(container_engine): From aa1534d2a3274835efb753e3a0cedea94eb488fa Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Sat, 1 Mar 2025 12:49:19 +0100 Subject: [PATCH 09/10] chore(2.x): update dependencies (#2294) --- .github/workflows/test.yml | 1 + cibuildwheel/resources/build-platforms.toml | 12 +++--- .../resources/constraints-pyodide312.txt | 4 +- .../resources/pinned_docker_images.cfg | 42 +++++++++---------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5e382976..95ca185b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - 2.x pull_request: paths-ignore: - 'docs/**' diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index b2a83445..ddf37942 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -155,10 +155,10 @@ python_configurations = [ { identifier = "pp38-macosx_arm64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-macos_arm64.tar.bz2" }, { identifier = "pp39-macosx_x86_64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_x86_64.tar.bz2" }, { identifier = "pp39-macosx_arm64", version = "3.9", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-macos_arm64.tar.bz2" }, - { identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.18-macos_x86_64.tar.bz2" }, - { identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.18-macos_arm64.tar.bz2" }, - { identifier = "pp311-macosx_x86_64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.18-macos_x86_64.tar.bz2" }, - { identifier = "pp311-macosx_arm64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.18-macos_arm64.tar.bz2" }, + { identifier = "pp310-macosx_x86_64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-macos_x86_64.tar.bz2" }, + { identifier = "pp310-macosx_arm64", version = "3.10", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-macos_arm64.tar.bz2" }, + { identifier = "pp311-macosx_x86_64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.19-macos_x86_64.tar.bz2" }, + { identifier = "pp311-macosx_arm64", version = "3.11", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.19-macos_arm64.tar.bz2" }, ] [windows] @@ -190,8 +190,8 @@ python_configurations = [ { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.9-win64.zip" }, { identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.11-win64.zip" }, { identifier = "pp39-win_amd64", version = "3.9", arch = "64", url = "https://downloads.python.org/pypy/pypy3.9-v7.3.16-win64.zip" }, - { identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.18-win64.zip" }, - { identifier = "pp311-win_amd64", version = "3.11", arch = "64", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.18-win64.zip" }, + { identifier = "pp310-win_amd64", version = "3.10", arch = "64", url = "https://downloads.python.org/pypy/pypy3.10-v7.3.19-win64.zip" }, + { identifier = "pp311-win_amd64", version = "3.11", arch = "64", url = "https://downloads.python.org/pypy/pypy3.11-v7.3.19-win64.zip" }, ] [pyodide] diff --git a/cibuildwheel/resources/constraints-pyodide312.txt b/cibuildwheel/resources/constraints-pyodide312.txt index fec78378..8ce1bf4f 100644 --- a/cibuildwheel/resources/constraints-pyodide312.txt +++ b/cibuildwheel/resources/constraints-pyodide312.txt @@ -19,7 +19,7 @@ charset-normalizer==3.4.1 # via requests click==8.1.8 # via typer -cmake==3.31.4 +cmake==3.31.6 # via pyodide-build distlib==0.3.9 # via virtualenv @@ -87,7 +87,7 @@ shellingham==1.5.4 # via typer sniffio==1.3.1 # via anyio -typer==0.15.1 +typer==0.15.2 # via # auditwheel-emscripten # pyodide-build diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index e0200697..a6d45df1 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,58 +1,58 @@ [x86_64] manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.02.23-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.02.28-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.02.23-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.02.28-1 [i686] manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.02.23-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.02.28-1 [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.02.23-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.02.28-1 [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.02.23-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.02.28-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.02.23-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.02.28-1 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.02.23-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.02.28-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.02.23-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.02.28-1 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.02.23-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.02.28-1 musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024.10.26-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.02.23-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.02.28-1 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.02.23-1 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.02.28-1 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.02.23-1 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.02.28-1 [armv7l] -manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.02.23-1 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.02.23-1 +manylinux_2_31 = quay.io/pypa/manylinux_2_31_armv7l:2025.02.28-1 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.02.28-1 From 6cccd09a31908ffd175b012fb8bf4e1dbda3bc6c Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sat, 1 Mar 2025 13:27:50 +0000 Subject: [PATCH 10/10] Bump version: v2.23.0 --- README.md | 22 ++++++++++------------ cibuildwheel/__init__.py | 2 +- docs/changelog.md | 9 +++++++++ docs/faq.md | 6 +++--- docs/setup.md | 4 ++-- examples/appveyor-minimal.yml | 2 +- examples/azure-pipelines-minimal.yml | 6 +++--- examples/circleci-minimal.yml | 6 +++--- examples/cirrus-ci-intel-mac.yml | 2 +- examples/cirrus-ci-minimal.yml | 2 +- examples/github-deploy.yml | 2 +- examples/github-minimal.yml | 2 +- examples/github-with-qemu.yml | 2 +- examples/gitlab-minimal.yml | 6 +++--- examples/gitlab-with-qemu.yml | 2 +- examples/travis-ci-deploy.yml | 2 +- examples/travis-ci-minimal.yml | 2 +- examples/travis-ci-test-and-deploy.yml | 4 ++-- pyproject.toml | 2 +- 19 files changed, 46 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 705089d8..714ef05c 100644 --- a/README.md +++ b/README.md @@ -98,7 +98,7 @@ jobs: - uses: actions/setup-python@v5 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.22.0 + run: python -m pip install cibuildwheel==2.23.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse @@ -215,6 +215,15 @@ Changelog +### v2.23.0 + +_1 March 2025_ + +- ✨ Adds official support for the new GitHub Actions Arm runners. In fact these worked out-of-the-box, now we include them in our tests and example configs. (#2135 via #2281) +- ✨ Adds support for building PyPy 3.11 wheels (#2268 via #2281) +- 🛠 Adopts the beta pypa/manylinux image for armv7l builds (#2269 via #2281) +- 🛠 Dependency updates, including Pyodide 0.27 (#2117 and #2281) + ### v2.22.0 _23 November 2024_ @@ -261,17 +270,6 @@ _16 September 2024_ - 🐛 Fix a bug where `uv 0.4.10` would not use the right Python when testing on Linux. (#2008) - 🛠 Bump our documentation pins, fixes an issue with a missing package (#2011) -### v2.21.0 - -_13 September 2024_ - -- ⚠️ Update CPython 3.12 to 3.12.6, which changes the macOS minimum deployment target on CPython 3.12 from macOS 10.9 to macOS 10.13 (#1998) -- 🛠 Changes the behaviour when inheriting `config-settings` in TOML overrides - rather than extending each key, which is rarely useful, individual keys will override previously set values. (#1803) -- 🛠 Update CPython 3.13 to 3.13.0rc2 (#1998) -- ✨ Adds support for multiarch OCI images (#1961) -- 🐛 Fixes some bugs building Linux wheels on macOS. (#1961) -- ⚠️ Changes the minimum version of Docker/Podman to Docker API version 1.43, Podman API version 3. The only mainstream runner this should affect is Travis Graviton2 runners - if so you can [upgrade your version of Docker](https://github.com/pypa/cibuildwheel/pull/1961#issuecomment-2304060019). (#1961) - --- diff --git a/cibuildwheel/__init__.py b/cibuildwheel/__init__.py index 413fd1d6..91d675f0 100644 --- a/cibuildwheel/__init__.py +++ b/cibuildwheel/__init__.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "2.22.0" +__version__ = "2.23.0" diff --git a/docs/changelog.md b/docs/changelog.md index d43a70cb..7b60b73f 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,15 @@ title: Changelog # Changelog +### v2.23.0 + +_1 March 2025_ + +- ✨ Adds official support for the new GitHub Actions Arm runners. In fact these worked out-of-the-box, now we include them in our tests and example configs. (#2135 via #2281) +- ✨ Adds support for building PyPy 3.11 wheels (#2268 via #2281) +- 🛠 Adopts the beta pypa/manylinux image for armv7l builds (#2269 via #2281) +- 🛠 Dependency updates, including Pyodide 0.27 (#2117 and #2281) + ### v2.22.0 _23 November 2024_ diff --git a/docs/faq.md b/docs/faq.md index 78a5c239..7ef36636 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -142,7 +142,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@v2.22.0 +uses: pypa/cibuildwheel@v2.23.0 ``` 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. @@ -164,7 +164,7 @@ The second option, and the only one that supports other CI systems, is using a ` ```bash # requirements-cibw.txt -cibuildwheel==2.22.0 +cibuildwheel==2.23.0 ``` 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: @@ -328,7 +328,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==2.22.0 --output-dir wheelhouse +pipx run cibuildwheel==2.23.0 --output-dir wheelhouse pipx run twine upload wheelhouse/*.whl ``` diff --git a/docs/setup.md b/docs/setup.md index e118bb94..2ddea434 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -161,7 +161,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/checkout@v4 - name: Build wheels - run: pipx run cibuildwheel==2.22.0 + run: pipx run cibuildwheel==2.23.0 - uses: actions/upload-artifact@v4 with: @@ -198,7 +198,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/setup-python@v5 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.22.0 + run: python -m pip install cibuildwheel==2.23.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/appveyor-minimal.yml b/examples/appveyor-minimal.yml index e82d30e8..cf013cd8 100644 --- a/examples/appveyor-minimal.yml +++ b/examples/appveyor-minimal.yml @@ -9,7 +9,7 @@ environment: stack: python 3.12 -install: python -m pip install cibuildwheel==2.22.0 +install: python -m pip install cibuildwheel==2.23.0 build_script: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index 11476c56..4b5d3e14 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==2.22.0 + pip3 install cibuildwheel==2.23.0 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==2.22.0 + python3 -m pip install cibuildwheel==2.23.0 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==2.22.0 + pip install cibuildwheel==2.23.0 displayName: Install dependencies - bash: cibuildwheel --output-dir wheelhouse . displayName: Build wheels diff --git a/examples/circleci-minimal.yml b/examples/circleci-minimal.yml index c0ab2bb6..5fec2b5f 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==2.22.0 + python3 -m pip install --user cibuildwheel==2.23.0 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==2.22.0 + python3 -m pip install --user cibuildwheel==2.23.0 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 python<=3.8 or x86_64/universal2 tests - pip3 install cibuildwheel==2.22.0 + pip3 install cibuildwheel==2.23.0 cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ diff --git a/examples/cirrus-ci-intel-mac.yml b/examples/cirrus-ci-intel-mac.yml index 02f11163..a48e1501 100644 --- a/examples/cirrus-ci-intel-mac.yml +++ b/examples/cirrus-ci-intel-mac.yml @@ -1,6 +1,6 @@ build_and_store_wheels: &BUILD_AND_STORE_WHEELS install_cibuildwheel_script: - - python -m pip install cibuildwheel==2.22.0 + - python -m pip install cibuildwheel==2.23.0 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/cirrus-ci-minimal.yml b/examples/cirrus-ci-minimal.yml index a5101fec..c09baa33 100644 --- a/examples/cirrus-ci-minimal.yml +++ b/examples/cirrus-ci-minimal.yml @@ -1,6 +1,6 @@ build_and_store_wheels: &BUILD_AND_STORE_WHEELS install_cibuildwheel_script: - - python -m pip install cibuildwheel==2.22.0 + - python -m pip install cibuildwheel==2.23.0 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 433adf5b..2061be4d 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v4 - name: Build wheels - uses: pypa/cibuildwheel@v2.22.0 + uses: pypa/cibuildwheel@v2.23.0 - uses: actions/upload-artifact@v4 with: diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index d857b644..91c2a7ed 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - name: Build wheels - uses: pypa/cibuildwheel@v2.22.0 + uses: pypa/cibuildwheel@v2.23.0 # env: # CIBW_SOME_OPTION: value # ... diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index ed4836a9..c3da30a4 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -21,7 +21,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v2.22.0 + uses: pypa/cibuildwheel@v2.23.0 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 a4cbf000..10154026 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==2.22.0 + - python -m pip install cibuildwheel==2.23.0 - cibuildwheel --output-dir wheelhouse artifacts: paths: @@ -23,7 +23,7 @@ windows: before_script: - choco install python -y --version 3.12.4 - choco install git.install -y - - py -m pip install cibuildwheel==2.22.0 + - py -m pip install cibuildwheel==2.23.0 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==2.22.0 + - python3 -m pip install cibuildwheel==2.23.0 script: - python3 -m cibuildwheel --output-dir wheelhouse artifacts: diff --git a/examples/gitlab-with-qemu.yml b/examples/gitlab-with-qemu.yml index 0eb2783d..dab068fe 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==2.22.0 + - python -m pip install cibuildwheel==2.23.0 # Assuming your CI runner's default architecture is x86_64... - cibuildwheel --output-dir wheelhouse --platform linux --archs aarch64 artifacts: diff --git a/examples/travis-ci-deploy.yml b/examples/travis-ci-deploy.yml index 14457de7..f306def3 100644 --- a/examples/travis-ci-deploy.yml +++ b/examples/travis-ci-deploy.yml @@ -20,7 +20,7 @@ jobs: - ln -s /c/Python312/python.exe /c/Python312/python3.exe install: - - python3 -m pip install cibuildwheel==2.22.0 + - python3 -m pip install cibuildwheel==2.23.0 script: # build the wheels, put them into './dist' diff --git a/examples/travis-ci-minimal.yml b/examples/travis-ci-minimal.yml index 5dcd28d6..431c9421 100644 --- a/examples/travis-ci-minimal.yml +++ b/examples/travis-ci-minimal.yml @@ -26,7 +26,7 @@ jobs: - ln -s /c/Python312/python.exe /c/Python312/python3.exe install: - - python3 -m pip install cibuildwheel==2.22.0 + - python3 -m pip install cibuildwheel==2.23.0 script: # build the wheels, put them into './wheelhouse' diff --git a/examples/travis-ci-test-and-deploy.yml b/examples/travis-ci-test-and-deploy.yml index 6e8d181a..76155817 100644 --- a/examples/travis-ci-test-and-deploy.yml +++ b/examples/travis-ci-test-and-deploy.yml @@ -52,7 +52,7 @@ jobs: - stage: deploy name: Build and deploy Linux wheels services: docker - install: python3 -m pip install cibuildwheel==2.22.0 twine + install: python3 -m pip install cibuildwheel==2.23.0 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl # Deploy on windows @@ -60,7 +60,7 @@ jobs: name: Build and deploy Windows wheels os: windows language: shell - install: python3 -m pip install cibuildwheel==2.22.0 twine + install: python3 -m pip install cibuildwheel==2.23.0 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl diff --git a/pyproject.toml b/pyproject.toml index 3b0d72d1..9e0dbb5c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "cibuildwheel" -version = "2.22.0" +version = "2.23.0" description = "Build Python wheels on CI with minimal configuration." readme = "README.md" license = "BSD-2-Clause"