From 5be1d17d5fc42c8e664e0382caf07915e5a0bd19 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Fri, 10 Feb 2023 19:56:24 +0000 Subject: [PATCH 01/37] add information about lack of possibility of cross compile Poetry projects --- docs/faq.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/faq.md b/docs/faq.md index ba0eed473..b690ee994 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -20,7 +20,13 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co ### Building macOS wheels for Apple Silicon {: #apple-silicon} -`cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: +`cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. + +!!! note + Currently it is impossible to cross-compiling project that are using Poetry as a build backend. + Reladed issue [here](https://github.com/python-poetry/poetry/issues/7107) + +With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: #### `x86_64` From cc0bb5da34399c8e630aa69f7079dc30d8a11656 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 10 Feb 2023 20:00:17 +0000 Subject: [PATCH 02/37] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index b690ee994..3cb1034c3 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -20,10 +20,10 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co ### Building macOS wheels for Apple Silicon {: #apple-silicon} -`cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. +`cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. !!! note - Currently it is impossible to cross-compiling project that are using Poetry as a build backend. + Currently it is impossible to cross-compiling project that are using Poetry as a build backend. Reladed issue [here](https://github.com/python-poetry/poetry/issues/7107) With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: From 96cffc2c7c4a9160f355c43cbcd32e36e9c49694 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Fri, 10 Feb 2023 22:56:52 +0100 Subject: [PATCH 03/37] Update docs/faq.md Co-authored-by: Henry Schreiner --- docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq.md b/docs/faq.md index 3cb1034c3..073b3a94d 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -23,7 +23,7 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co `cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. !!! note - Currently it is impossible to cross-compiling project that are using Poetry as a build backend. + Currently it is impossible to cross-compile project that uses Poetry as a build backend. Reladed issue [here](https://github.com/python-poetry/poetry/issues/7107) With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: From c7643f08e756dfd6ece75b106bd7950ea7bb3423 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Tue, 14 Feb 2023 13:31:20 +0000 Subject: [PATCH 04/37] update information about poetry state --- docs/faq.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index 073b3a94d..78bf8e19a 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -23,8 +23,13 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co `cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. !!! note - Currently it is impossible to cross-compile project that uses Poetry as a build backend. - Reladed issue [here](https://github.com/python-poetry/poetry/issues/7107) + Currently it is not fully supported to cross-compile project that uses Poetry as a build backend. + Reladed issue [here](https://github.com/python-poetry/poetry/issues/7107). + Some packages can be built with arm64 wheels, but their file names will be incorrect, + with the platform tag showing `x86_64` instead of `arm64`. + As a workaround, the file can be renamed before running delocate to repair the wheel. + For further details, please refer to this (https://github.com/pypa/cibuildwheel/pull/1416#discussion_r1105217074)." + With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: From 567fe2a92316a862525320413f3db47476863621 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Wed, 15 Feb 2023 00:00:22 +0100 Subject: [PATCH 05/37] Apply suggestions from code review Co-authored-by: Henry Schreiner --- docs/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index 78bf8e19a..aea2726dc 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -24,8 +24,8 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co !!! note Currently it is not fully supported to cross-compile project that uses Poetry as a build backend. - Reladed issue [here](https://github.com/python-poetry/poetry/issues/7107). - Some packages can be built with arm64 wheels, but their file names will be incorrect, + Related issue [here](https://github.com/python-poetry/poetry/issues/7107). + Some packages can be built with arm64 wheels, but their tags will be incorrect, with the platform tag showing `x86_64` instead of `arm64`. As a workaround, the file can be renamed before running delocate to repair the wheel. For further details, please refer to this (https://github.com/pypa/cibuildwheel/pull/1416#discussion_r1105217074)." From ed320412b0ff31ff4111ee175c8b431894cbbd3f Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Thu, 16 Feb 2023 18:20:37 +0000 Subject: [PATCH 06/37] fix note text --- docs/faq.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index aea2726dc..108ac97a8 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -27,8 +27,7 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co Related issue [here](https://github.com/python-poetry/poetry/issues/7107). Some packages can be built with arm64 wheels, but their tags will be incorrect, with the platform tag showing `x86_64` instead of `arm64`. - As a workaround, the file can be renamed before running delocate to repair the wheel. - For further details, please refer to this (https://github.com/pypa/cibuildwheel/pull/1416#discussion_r1105217074)." + As a workaround, the tag should be fixed before running delocate to repair the wheel. With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: From 983347f370b43d5a55db6332a155ef85e9adad44 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sun, 18 Jun 2023 17:49:57 +0100 Subject: [PATCH 07/37] Add reference to the new 'wheel tags' command --- docs/faq.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index 108ac97a8..98961820a 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -23,11 +23,11 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co `cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. !!! note - Currently it is not fully supported to cross-compile project that uses Poetry as a build backend. - Related issue [here](https://github.com/python-poetry/poetry/issues/7107). - Some packages can be built with arm64 wheels, but their tags will be incorrect, - with the platform tag showing `x86_64` instead of `arm64`. - As a workaround, the tag should be fixed before running delocate to repair the wheel. + Currently it is not fully supported to cross-compile project that uses **Poetry** as a build backend. Related issue [here](https://github.com/python-poetry/poetry/issues/7107). + + Some packages can be built with arm64 wheels, but their tags will be incorrect, with the platform tag showing `x86_64` instead of `arm64`. + + As a workaround, the tag should be fixed before running delocate to repair the wheel. The [`wheel tags`](https://wheel.readthedocs.io/en/stable/reference/wheel_tags.html) command is ideal for this. See [this workflow](https://gist.github.com/anderssonjohan/49f07e33fc5cb2420515a8ac76dc0c95#file-build-pendulum-wheels-yml-L39-L53) for an example usage. With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: From 3192cdcbfa0a3aefe661bd4bee1669aa65ac9875 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sun, 18 Jun 2023 18:03:06 +0100 Subject: [PATCH 08/37] Copy pass on this text --- docs/faq.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index 98961820a..ec4e6b7da 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -23,12 +23,9 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co `cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. !!! note - Currently it is not fully supported to cross-compile project that uses **Poetry** as a build backend. Related issue [here](https://github.com/python-poetry/poetry/issues/7107). - - Some packages can be built with arm64 wheels, but their tags will be incorrect, with the platform tag showing `x86_64` instead of `arm64`. - - As a workaround, the tag should be fixed before running delocate to repair the wheel. The [`wheel tags`](https://wheel.readthedocs.io/en/stable/reference/wheel_tags.html) command is ideal for this. See [this workflow](https://gist.github.com/anderssonjohan/49f07e33fc5cb2420515a8ac76dc0c95#file-build-pendulum-wheels-yml-L39-L53) for an example usage. + If your project uses **Poetry** as a build backend, cross-compiling on macOS [does not currently work](https://github.com/python-poetry/poetry/issues/7107). In some cases arm64 wheels can be built but their tags will be incorrect, with the platform tag showing `x86_64` instead of `arm64`. + As a workaround, the tag can be fixed before running delocate to repair the wheel. The [`wheel tags`](https://wheel.readthedocs.io/en/stable/reference/wheel_tags.html) command is ideal for this. See [this workflow](https://gist.github.com/anderssonjohan/49f07e33fc5cb2420515a8ac76dc0c95#file-build-pendulum-wheels-yml-L39-L53) for an example usage of `wheel tags`. With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: From 1ce209198aabbb3fa0a96c3ab799c1077da9ddb1 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sun, 18 Jun 2023 19:12:29 +0100 Subject: [PATCH 09/37] Copy edit of the whole section, make it a bit easier to follow, add some details about universal2 --- docs/faq.md | 55 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index ec4e6b7da..f7256b89c 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -22,14 +22,11 @@ Linux wheels are built in [`manylinux`/`musllinux` containers](https://github.co `cibuildwheel` supports cross-compiling `universal2` and `arm64` wheels on `x86_64` runners. -!!! note - If your project uses **Poetry** as a build backend, cross-compiling on macOS [does not currently work](https://github.com/python-poetry/poetry/issues/7107). In some cases arm64 wheels can be built but their tags will be incorrect, with the platform tag showing `x86_64` instead of `arm64`. - - As a workaround, the tag can be fixed before running delocate to repair the wheel. The [`wheel tags`](https://wheel.readthedocs.io/en/stable/reference/wheel_tags.html) command is ideal for this. See [this workflow](https://gist.github.com/anderssonjohan/49f07e33fc5cb2420515a8ac76dc0c95#file-build-pendulum-wheels-yml-L39-L53) for an example usage of `wheel tags`. +#### Overview of Mac architectures With the introduction of Apple Silicon, you now have several choices for wheels for Python 3.8+: -#### `x86_64` +##### `x86_64` The traditional wheel for Apple, loads on Intel machines, and on Apple Silicon when running Python under Rosetta 2 emulation. @@ -37,51 +34,63 @@ Apple Silicon when running Python under Rosetta 2 emulation. Due to a change in naming, Pip 20.3+ (or an installer using packaging 20.5+) is required to install a binary wheel on macOS Big Sur. -#### `arm64` +##### `arm64` The native wheel for macOS on Apple Silicon. Requires Pip 20.3+ (or packaging 20.5+) to install. -#### `universal2` +##### `universal2` This wheel contains both architectures, causing it to be up to twice the size (data files do not get doubled, only compiled code). It requires Pip 20.3 (Packaging 20.6+) to load on Intel, and Pip 21.0.1 (Packaging 20.9+) to load on Apple Silicon. -!!! note - The dual-architecture `universal2` has a few benefits, but a key benefit - to a universal wheel is that a user can bundle these wheels into an - application and ship a single binary. +The dual-architecture `universal2` has a few benefits, but a key benefit +to a universal wheel is that a user can bundle these wheels into an +application and ship a single binary. + +However, if you have a large library, then you might prefer to ship +the two single-arch wheels instead - `x86_64` and `arm64`. In rare cases, +you might want to build all three, but in that case, pip will not download +the universal wheels, because it prefers the most specific wheel +available. - However, if you have a large library, then you might prefer to ship - the two single-arch wheels instead - `x86_64` and `arm64`. In rare cases, - you might want to build all three, but in that case, pip will not download - the universal wheels, because it prefers the most specific wheel - available. +#### What to provide? Generally speaking, because Pip 20.3 is required for the `universal2` wheel, most packages should provide both `x86_64` and one of `universal2`/`arm64` -wheels for now. When Pip 20.3+ is common on macOS, then it might be possible -to ship only the `universal2` wheel. +wheels. When Pip 20.3+ is common on macOS, then it might be possible to ship +only the `universal2` wheel. -**Apple Silicon wheels are not built by default on Intel runners**, but can be enabled by adding extra archs to the [`CIBW_ARCHS_MACOS` option](options.md#archs) - e.g. `x86_64 arm64`. Cross-compilation is provided by the Xcode toolchain. +Opinions vary on which of arch-specific or `universal2` wheels are best - some packagers prefer `universal2` because it's one wheel for all Mac users, so simpler, and easier to build into apps for downstream users. However, because they contain code for both architectures, their file size is larger, meaning they consume more disk space and bandwidth, and are harder to build for some projects. + +See [GitHub issue 1333](https://github.com/pypa/cibuildwheel/issues/1333) for more discussion. + +#### How to cross-compile + +With the exception of Cirrus CI, macOS CI runners are still Intel-based, and Apple Silicon wheels are not built by default on Intel runners. However, cross-compilation can be enabled by adding extra archs to the [`CIBW_ARCHS_MACOS` option](options.md#archs) - e.g. `x86_64 arm64`. Cross-compilation is provided by the Xcode toolchain. !!! important When cross-compiling on Intel, it is not possible to test `arm64` and the `arm64` part of a `universal2` wheel. `cibuildwheel` will raise a warning to notify you of this - these warnings be be silenced by skipping testing on these platforms: `CIBW_TEST_SKIP: *_arm64 *_universal2:arm64`. -Hopefully, cross-compilation is a temporary situation. Once we have widely -available Apple Silicon CI runners, we can build and test `arm64` and -`universal2` wheels natively. That's why `universal2`/`arm64` wheels require opt-in by setting `CIBW_ARCHS_MACOS`. - !!! note Your runner needs Xcode Command Line Tools 12.2 or later to build `universal2` or `arm64`. Only CPython 3.8 and newer support `universal2` and `arm64` wheels. +!!! note + If your project uses **Poetry** as a build backend, cross-compiling on macOS [does not currently work](https://github.com/python-poetry/poetry/issues/7107). In some cases arm64 wheels can be built but their tags will be incorrect, with the platform tag showing `x86_64` instead of `arm64`. + + As a workaround, the tag can be fixed before running delocate to repair the wheel. The [`wheel tags`](https://wheel.readthedocs.io/en/stable/reference/wheel_tags.html) command is ideal for this. See [this workflow](https://gist.github.com/anderssonjohan/49f07e33fc5cb2420515a8ac76dc0c95#file-build-pendulum-wheels-yml-L39-L53) for an example usage of `wheel tags`. + +Hopefully, cross-compilation is a temporary situation. Once we have widely +available Apple Silicon CI runners, we can build and test `arm64` and +`universal2` wheels natively. That's why `universal2`/`arm64` wheels require opt-in by setting `CIBW_ARCHS_MACOS`. + Here's an example GitHub Actions workflow with a job that builds for Apple Silicon: > .github/workflows/build_macos.yml From f44d2784f85a87239000a6be8661f40fc908b497 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sun, 9 Jul 2023 15:17:51 +0100 Subject: [PATCH 10/37] Update docs/faq.md --- docs/faq.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index f3497474e..035bc4edf 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -87,9 +87,7 @@ With the exception of Cirrus CI, macOS CI runners are still Intel-based, and App As a workaround, the tag can be fixed before running delocate to repair the wheel. The [`wheel tags`](https://wheel.readthedocs.io/en/stable/reference/wheel_tags.html) command is ideal for this. See [this workflow](https://gist.github.com/anderssonjohan/49f07e33fc5cb2420515a8ac76dc0c95#file-build-pendulum-wheels-yml-L39-L53) for an example usage of `wheel tags`. -Hopefully, cross-compilation is a temporary situation. Once we have widely -available Apple Silicon CI runners, we can build and test `arm64` and -`universal2` wheels natively. That's why `universal2`/`arm64` wheels require opt-in by setting `CIBW_ARCHS_MACOS`. +Hopefully, cross-compilation is a temporary situation. Once we have widely available Apple Silicon CI runners, we can build `arm64` wheels natively. Until then, cross-compiling `arm64` or `universal2` wheels requires opt-in by setting `CIBW_ARCHS_MACOS` on Intel runners. Here's an example GitHub Actions workflow with a job that builds for Apple Silicon: From c824c7e87a0a34e413025113d47e45c48ef2140f Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sun, 9 Jul 2023 15:59:27 +0100 Subject: [PATCH 11/37] Ignore docs changes on more CIs --- .cirrus.yml | 2 ++ azure-pipelines.yml | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/.cirrus.yml b/.cirrus.yml index 4ba969ea2..e496f9123 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,3 +1,5 @@ +skip: changesIncludeOnly('docs/*') + run_tests: &RUN_TESTS install_cibuildwheel_script: - python -m pip install -e ".[dev]" pytest-custom-exit-code diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ee0d47471..e49b7cab9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,3 +1,8 @@ +pr: + paths: + exclude: + - docs/* + jobs: - job: linux_38 timeoutInMinutes: 120 From 9afee48243a269243ca20a0b15120778857d69c4 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 9 Jul 2023 23:01:17 -0400 Subject: [PATCH 12/37] [pre-commit.ci] pre-commit autoupdate (#1541) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.275 → v0.0.276](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.275...v0.0.276) - [github.com/asottile/setup-cfg-fmt: v2.3.0 → v2.4.0](https://github.com/asottile/setup-cfg-fmt/compare/v2.3.0...v2.4.0) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Apply suggestions from code review * Update .pre-commit-config.yaml Co-authored-by: Henry Schreiner --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Henry Schreiner Co-authored-by: Joe Rickerby --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b1de3c5bb..7a343a72b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,16 +19,16 @@ repos: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.275 + rev: v0.0.276 hooks: - id: ruff args: ["--fix", "--show-fixes"] - repo: https://github.com/asottile/setup-cfg-fmt - rev: v2.3.0 + rev: v2.4.0 hooks: - id: setup-cfg-fmt - args: [--include-version-classifiers, --max-py-version=3.11] + args: [--include-version-classifiers, --min-py-version=3.8, --max-py-version=3.11] - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.4.1 From 8bfc92df50722d7e6c4b479856fc7250505c3b3e Mon Sep 17 00:00:00 2001 From: "cibuildwheel-bot[bot]" <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 06:15:20 +0000 Subject: [PATCH 13/37] Update dependencies --- .../resources/constraints-python310.txt | 2 +- .../resources/constraints-python311.txt | 2 +- .../resources/constraints-python312.txt | 2 +- .../resources/constraints-python37.txt | 2 +- .../resources/constraints-python38.txt | 2 +- .../resources/constraints-python39.txt | 2 +- cibuildwheel/resources/constraints.txt | 2 +- .../resources/pinned_docker_images.cfg | 38 +++++++++---------- docs/working-examples.md | 20 +++++----- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/cibuildwheel/resources/constraints-python310.txt b/cibuildwheel/resources/constraints-python310.txt index 9b6bbf837..22f06f863 100644 --- a/cibuildwheel/resources/constraints-python310.txt +++ b/cibuildwheel/resources/constraints-python310.txt @@ -12,7 +12,7 @@ filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.0 +platformdirs==3.8.1 # via virtualenv typing-extensions==4.7.1 # via delocate diff --git a/cibuildwheel/resources/constraints-python311.txt b/cibuildwheel/resources/constraints-python311.txt index 3728ede4a..72882c1d5 100644 --- a/cibuildwheel/resources/constraints-python311.txt +++ b/cibuildwheel/resources/constraints-python311.txt @@ -12,7 +12,7 @@ filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.0 +platformdirs==3.8.1 # via virtualenv typing-extensions==4.7.1 # via delocate diff --git a/cibuildwheel/resources/constraints-python312.txt b/cibuildwheel/resources/constraints-python312.txt index 3d1260a26..ca6615dc4 100644 --- a/cibuildwheel/resources/constraints-python312.txt +++ b/cibuildwheel/resources/constraints-python312.txt @@ -12,7 +12,7 @@ filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.0 +platformdirs==3.8.1 # via virtualenv typing-extensions==4.7.1 # via delocate diff --git a/cibuildwheel/resources/constraints-python37.txt b/cibuildwheel/resources/constraints-python37.txt index 9f0559796..250c56b7d 100644 --- a/cibuildwheel/resources/constraints-python37.txt +++ b/cibuildwheel/resources/constraints-python37.txt @@ -14,7 +14,7 @@ importlib-metadata==6.7.0 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.0 +platformdirs==3.8.1 # via virtualenv typing-extensions==4.7.1 # via diff --git a/cibuildwheel/resources/constraints-python38.txt b/cibuildwheel/resources/constraints-python38.txt index 4a0bfa45d..707340c28 100644 --- a/cibuildwheel/resources/constraints-python38.txt +++ b/cibuildwheel/resources/constraints-python38.txt @@ -12,7 +12,7 @@ filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.0 +platformdirs==3.8.1 # via virtualenv typing-extensions==4.7.1 # via delocate diff --git a/cibuildwheel/resources/constraints-python39.txt b/cibuildwheel/resources/constraints-python39.txt index dce0fea62..bbe4692ed 100644 --- a/cibuildwheel/resources/constraints-python39.txt +++ b/cibuildwheel/resources/constraints-python39.txt @@ -12,7 +12,7 @@ filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.0 +platformdirs==3.8.1 # via virtualenv typing-extensions==4.7.1 # via delocate diff --git a/cibuildwheel/resources/constraints.txt b/cibuildwheel/resources/constraints.txt index 3d1260a26..ca6615dc4 100644 --- a/cibuildwheel/resources/constraints.txt +++ b/cibuildwheel/resources/constraints.txt @@ -12,7 +12,7 @@ filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.0 +platformdirs==3.8.1 # via virtualenv typing-extensions==4.7.1 # via delocate diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index c7e7993b1..97651fde7 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,49 +1,49 @@ [x86_64] manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-06-25-d2e0575 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-06-73b0312 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:2023-06-25-a3ead0d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-06-25-a3ead0d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-07-06-73b0312 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-07-06-73b0312 [i686] manylinux1 = quay.io/pypa/manylinux1_i686:2023-06-25-d2e0575 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-06-73b0312 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-06-25-a3ead0d +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-07-06-73b0312 [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-06-73b0312 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:2023-06-25-a3ead0d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-07-06-73b0312 [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-06-73b0312 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-06-73b0312 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-06-25-a3ead0d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-06-25-a3ead0d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-06-73b0312 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-07-06-73b0312 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-07-06-73b0312 manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-06-25-a3ead0d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-06-25-a3ead0d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-07-06-73b0312 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-07-06-73b0312 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-07-06-73b0312 manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-06-25-a3ead0d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-06-25-a3ead0d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-07-06-73b0312 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-07-06-73b0312 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-06-25-a3ead0d +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-06-73b0312 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-06-25-a3ead0d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-06-73b0312 diff --git a/docs/working-examples.md b/docs/working-examples.md index 4c6647d18..ffcd37227 100644 --- a/docs/working-examples.md +++ b/docs/working-examples.md @@ -47,8 +47,8 @@ title: Working examples | [PyCryptodome][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A self-contained cryptographic library for Python | | [PyYAML][] | ![github icon][] | ![apple icon][] | Canonical source repository for PyYAML | | [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more | -| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. | | [Line Profiler][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Line-by-line profiling for Python | +| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. | | [h5py][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | HDF5 for Python -- The h5py package is a Pythonic interface to the HDF5 binary data format. | | [Wrapt][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python module for decorators, wrappers and monkey patching. | | [pikepdf][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by qpdf | @@ -68,8 +68,8 @@ title: Working examples | [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system | | [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS ¶ | | [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | -| [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. | | [mosec][] | ![github icon][] | ![linux icon][] ![apple icon][] | A high-performance serving framework for ML models, offers dynamic batching and multi-stage pipeline to fully exploit your compute machine | +| [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. | | [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | | [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python | | [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | @@ -88,8 +88,8 @@ title: Working examples | [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python | | [TgCrypto][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | | [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. | -| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. | | [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 | +| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. | | [pillow-heif][] | ![github icon][] ![cirrusci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Bindings to libheif library with third party dependencies. Fully automated CI for tests and publishing including Apple Silicon builds. | | [Python-WebRTC][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | a Python extension that provides bindings to WebRTC M92 | | [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python | @@ -99,14 +99,14 @@ title: Working examples | [Imagecodecs (fork)][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] | Over 20 external dependencies in compiled libraries, custom docker image, `libomp`, `openblas` and `install_name_tool` for macOS. | | [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. | | [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. | -| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions | | [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 | +| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions | | [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. | | [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. | | [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy | | [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy | -| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. | | [ril][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A python binding to Rust Imaging library using maturin and Pyo3, utilizes Github Action cache to improve speed. Builds abi3 wheels. | +| [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. | | [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. | | [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. | | [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies | @@ -153,8 +153,8 @@ title: Working examples [PyCryptodome]: https://github.com/Legrandin/pycryptodome [PyYAML]: https://github.com/yaml/pyyaml [numexpr]: https://github.com/pydata/numexpr -[PyAV]: https://github.com/PyAV-Org/PyAV [Line Profiler]: https://github.com/pyutils/line_profiler +[PyAV]: https://github.com/PyAV-Org/PyAV [h5py]: https://github.com/h5py/h5py [Wrapt]: https://github.com/GrahamDumpleton/wrapt [pikepdf]: https://github.com/pikepdf/pikepdf @@ -174,8 +174,8 @@ title: Working examples [H3-py]: https://github.com/uber/h3-py [Rtree]: https://github.com/Toblerity/rtree [markupsafe]: https://github.com/pallets/markupsafe -[Picologging]: https://github.com/microsoft/picologging [mosec]: https://github.com/mosecorg/mosec +[Picologging]: https://github.com/microsoft/picologging [pybind11 cmake_example]: https://github.com/pybind/cmake_example [KDEpy]: https://github.com/tommyod/KDEpy [python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson @@ -194,8 +194,8 @@ title: Working examples [PyGLM]: https://github.com/Zuzu-Typ/PyGLM [TgCrypto]: https://github.com/pyrogram/tgcrypto [bx-python]: https://github.com/bxlab/bx-python -[boost-histogram]: https://github.com/scikit-hep/boost-histogram [iDynTree]: https://github.com/robotology/idyntree +[boost-histogram]: https://github.com/scikit-hep/boost-histogram [pillow-heif]: https://github.com/bigcat88/pillow_heif [Python-WebRTC]: https://github.com/MarshalX/python-webrtc [pybase64]: https://github.com/mayeut/pybase64 @@ -205,14 +205,14 @@ title: Working examples [Imagecodecs (fork)]: https://github.com/czaki/imagecodecs_build [polaroid]: https://github.com/daggy1234/polaroid [etebase-py]: https://github.com/etesync/etebase-py -[cf-units]: https://github.com/SciTools/cf-units [pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example +[cf-units]: https://github.com/SciTools/cf-units [clang-format]: https://github.com/ssciwr/clang-format-wheel [ninja]: https://github.com/scikit-build/ninja-python-distributions [numpythia]: https://github.com/scikit-hep/numpythia [pyjet]: https://github.com/scikit-hep/pyjet -[GSD]: https://github.com/glotzerlab/gsd [ril]: https://github.com/Cryptex-github/ril-py +[GSD]: https://github.com/glotzerlab/gsd [SiPM]: https://github.com/EdoPro98/SimSiPM [CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib [pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext From f5960020cd553347c9d7d93f389f1de2f00cc2c6 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Mon, 10 Jul 2023 11:34:10 +0100 Subject: [PATCH 14/37] Add .pre-commit-config.yaml to CI ignore rules --- .cirrus.yml | 2 +- .github/workflows/test.yml | 1 + azure-pipelines.yml | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index e496f9123..edbdb1df4 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,4 +1,4 @@ -skip: changesIncludeOnly('docs/*') +skip: changesIncludeOnly('docs/*') || changesIncludeOnly('.pre-commit-config.yaml') run_tests: &RUN_TESTS install_cibuildwheel_script: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8c61be9de..ed08a6b86 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,6 +7,7 @@ on: pull_request: paths-ignore: - 'docs/**' + - .pre-commit-config.yaml workflow_dispatch: # allow manual runs on branches without a PR diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e49b7cab9..4f3570641 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,6 +2,7 @@ pr: paths: exclude: - docs/* + - .pre-commit-config.yaml jobs: - job: linux_38 From 66b46d086804a9e9782354100d96a3a445431bca Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Mon, 10 Jul 2023 11:43:05 +0100 Subject: [PATCH 15/37] Bump version: v2.14.0 --- README.md | 18 +++++++++++------- cibuildwheel/__init__.py | 2 +- docs/changelog.md | 10 ++++++++++ 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-apple-silicon.yml | 2 +- examples/github-deploy.yml | 2 +- examples/github-minimal.yml | 2 +- examples/github-with-qemu.yml | 2 +- examples/gitlab-minimal.yml | 4 ++-- 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 ++-- setup.cfg | 2 +- 20 files changed, 48 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 291092a2d..02ffe7703 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ jobs: - uses: actions/setup-python@v3 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.13.1 + run: python -m pip install cibuildwheel==2.14.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse @@ -213,6 +213,16 @@ Changelog +### v2.14.0 + +_10 July 2023_ + +- ✨ Adds support for building PyPy 3.10 wheels. (#1525) +- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0b3. +- ✨ Allow the use of the `{wheel}` placeholder in CIBW_TEST_COMMAND (#1533) +- 📚 Docs & examples updates (#1532, #1416) +- ⚠️ Removed support for running cibuildwheel in Python 3.7. Python 3.7 is EOL. However, cibuildwheel continues to build Python 3.7 wheels for the moment. (#1175) + ### v2.13.1 _10 June 2023_ @@ -244,12 +254,6 @@ _18 April 2023_ - 🐛 Fix a crash that occurred when overwriting an existing wheel on Windows. (#1464) - 🛠 Pinned version updates, including CPython 3.10.11, 3.11.3, pip 23.1 and wheel 0.40.0. -### v2.12.1 - -_11 March 2023_ - -- 🐛 Fix a bug that prevented the use of CIBW_CONFIG_SETTINGS with the 'pip' build backend. (#1430) - --- diff --git a/cibuildwheel/__init__.py b/cibuildwheel/__init__.py index 33607129f..894de67be 100644 --- a/cibuildwheel/__init__.py +++ b/cibuildwheel/__init__.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "2.13.1" +__version__ = "2.14.0" diff --git a/docs/changelog.md b/docs/changelog.md index 126b0f608..4c66d56cf 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,16 @@ title: Changelog # Changelog +### v2.14.0 + +_10 July 2023_ + +- ✨ Adds support for building PyPy 3.10 wheels. (#1525) +- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0b3. +- ✨ Allow the use of the `{wheel}` placeholder in CIBW_TEST_COMMAND (#1533) +- 📚 Docs & examples updates (#1532, #1416) +- ⚠️ Removed support for running cibuildwheel in Python 3.7. Python 3.7 is EOL. However, cibuildwheel continues to build Python 3.7 wheels for the moment. (#1175) + ### v2.13.1 _10 June 2023_ diff --git a/docs/faq.md b/docs/faq.md index 035bc4edf..aab0f436e 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -159,7 +159,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.13.1 +uses: pypa/cibuildwheel@v2.14.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. @@ -181,7 +181,7 @@ The second option, and the only one that supports other CI systems, is using a ` ```bash # requirements-cibw.txt -cibuildwheel==2.13.1 +cibuildwheel==2.14.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: @@ -325,7 +325,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.13.1 --output-dir wheelhouse +pipx run cibuildwheel==2.14.0 --output-dir wheelhouse pipx run twine upload wheelhouse/*.whl ``` diff --git a/docs/setup.md b/docs/setup.md index a1369a8e2..f50274a82 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -184,7 +184,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/checkout@v3 - name: Build wheels - run: pipx run cibuildwheel==2.13.1 + run: pipx run cibuildwheel==2.14.0 - uses: actions/upload-artifact@v3 with: @@ -219,7 +219,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/setup-python@v3 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.13.1 + run: python -m pip install cibuildwheel==2.14.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/appveyor-minimal.yml b/examples/appveyor-minimal.yml index c1ee0aab4..f9d312198 100644 --- a/examples/appveyor-minimal.yml +++ b/examples/appveyor-minimal.yml @@ -12,7 +12,7 @@ stack: python 3.7 init: - cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH% -install: python -m pip install cibuildwheel==2.13.1 +install: python -m pip install cibuildwheel==2.14.0 build_script: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index 66984f9bc..06f97618f 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.13.1 + pip3 install cibuildwheel==2.14.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.13.1 + python3 -m pip install cibuildwheel==2.14.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.13.1 + pip install cibuildwheel==2.14.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 eaf89e8a8..54c3cf262 100644 --- a/examples/circleci-minimal.yml +++ b/examples/circleci-minimal.yml @@ -11,7 +11,7 @@ jobs: - run: name: Build the Linux wheels. command: | - pip3 install --user cibuildwheel==2.13.1 + pip3 install --user cibuildwheel==2.14.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.13.1 + python3 -m pip install --user cibuildwheel==2.14.0 python3 -m cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ @@ -42,7 +42,7 @@ jobs: - run: name: Build the OS X wheels. command: | - pip3 install cibuildwheel==2.13.1 + pip3 install cibuildwheel==2.14.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 954b1cf1c..c1eab6f58 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.13.1 + - python -m pip install cibuildwheel==2.14.0 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/cirrus-ci-minimal.yml b/examples/cirrus-ci-minimal.yml index 9fc01a3f8..fb79cfa33 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.13.1 + - python -m pip install cibuildwheel==2.14.0 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/github-apple-silicon.yml b/examples/github-apple-silicon.yml index 825d157f8..f0a8c3e77 100644 --- a/examples/github-apple-silicon.yml +++ b/examples/github-apple-silicon.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.13.1 + uses: pypa/cibuildwheel@v2.14.0 env: CIBW_ARCHS_MACOS: x86_64 arm64 diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 627281baf..7d50f99b3 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.13.1 + uses: pypa/cibuildwheel@v2.14.0 - uses: actions/upload-artifact@v3 with: diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index 55a9bf58b..c89fb5f60 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.13.1 + uses: pypa/cibuildwheel@v2.14.0 # env: # CIBW_SOME_OPTION: value # ... diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index 69953656b..4235713a3 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -20,7 +20,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v2.13.1 + uses: pypa/cibuildwheel@v2.14.0 env: # configure cibuildwheel to build native archs ('auto'), and some # emulated ones diff --git a/examples/gitlab-minimal.yml b/examples/gitlab-minimal.yml index 91e3f7b8c..61232ffbf 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.13.1 + - python -m pip install cibuildwheel==2.14.0 - cibuildwheel --output-dir wheelhouse artifacts: paths: @@ -23,7 +23,7 @@ windows: before_script: - choco install python -y --version 3.8.6 - choco install git.install -y - - py -m pip install cibuildwheel==2.13.1 + - py -m pip install cibuildwheel==2.14.0 script: - py -m cibuildwheel --output-dir wheelhouse --platform windows artifacts: diff --git a/examples/gitlab-with-qemu.yml b/examples/gitlab-with-qemu.yml index 13dba2680..cbdfd7839 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.13.1 + - python -m pip install cibuildwheel==2.14.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 9a2c00e6a..5fedb081c 100644 --- a/examples/travis-ci-deploy.yml +++ b/examples/travis-ci-deploy.yml @@ -20,7 +20,7 @@ jobs: - ln -s /c/Python38/python.exe /c/Python38/python3.exe install: - - python3 -m pip install cibuildwheel==2.13.1 + - python3 -m pip install cibuildwheel==2.14.0 script: # build the wheels, put them into './dist' diff --git a/examples/travis-ci-minimal.yml b/examples/travis-ci-minimal.yml index e36920930..83410803d 100644 --- a/examples/travis-ci-minimal.yml +++ b/examples/travis-ci-minimal.yml @@ -26,7 +26,7 @@ jobs: - ln -s /c/Python38/python.exe /c/Python38/python3.exe install: - - python3 -m pip install cibuildwheel==2.13.1 + - python3 -m pip install cibuildwheel==2.14.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 b56df96c8..39853a300 100644 --- a/examples/travis-ci-test-and-deploy.yml +++ b/examples/travis-ci-test-and-deploy.yml @@ -54,7 +54,7 @@ jobs: - stage: deploy name: Build and deploy Linux wheels services: docker - install: python3 -m pip install cibuildwheel==2.13.1 twine + install: python3 -m pip install cibuildwheel==2.14.0 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl # Deploy on windows @@ -62,7 +62,7 @@ jobs: name: Build and deploy Windows wheels os: windows language: shell - install: python3 -m pip install cibuildwheel==2.13.1 twine + install: python3 -m pip install cibuildwheel==2.14.0 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl diff --git a/setup.cfg b/setup.cfg index 8275e8795..0e78e8f50 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = cibuildwheel -version = 2.13.1 +version = 2.14.0 description = Build Python wheels on CI with minimal configuration. long_description = file: README.md long_description_content_type = text/markdown From 661ba2d0deb9b03c8b781f5d169d65f901518f50 Mon Sep 17 00:00:00 2001 From: "cibuildwheel-bot[bot]" <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 19:20:18 +0000 Subject: [PATCH 16/37] Update dependencies --- cibuildwheel/resources/build-platforms.toml | 6 +-- .../resources/pinned_docker_images.cfg | 38 +++++++++---------- docs/working-examples.md | 8 ++-- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index fef2d9d81..8e792720b 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -126,12 +126,12 @@ python_configurations = [ { identifier = "cp310-win_amd64", version = "3.10.11", arch = "64" }, { identifier = "cp311-win32", version = "3.11.4", arch = "32" }, { identifier = "cp311-win_amd64", version = "3.11.4", arch = "64" }, - { identifier = "cp312-win32", version = "3.12.0-b3", arch = "32" }, - { identifier = "cp312-win_amd64", version = "3.12.0-b3", arch = "64" }, + { identifier = "cp312-win32", version = "3.12.0-b4", arch = "32" }, + { identifier = "cp312-win_amd64", version = "3.12.0-b4", 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.4", arch = "ARM64" }, - { identifier = "cp312-win_arm64", version = "3.12.0-b3", arch = "ARM64" }, + { identifier = "cp312-win_arm64", version = "3.12.0-b4", 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.12-win64.zip" }, diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 97651fde7..b0834e929 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,49 +1,49 @@ [x86_64] manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-06-25-d2e0575 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-14-55e4124 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:2023-07-06-73b0312 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-07-06-73b0312 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-07-14-55e4124 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-07-14-55e4124 [i686] manylinux1 = quay.io/pypa/manylinux1_i686:2023-06-25-d2e0575 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-14-55e4124 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-07-06-73b0312 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-07-14-55e4124 [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-14-55e4124 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:2023-07-06-73b0312 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-07-14-55e4124 [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-14-55e4124 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-14-55e4124 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-06-73b0312 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-07-06-73b0312 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-14-55e4124 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-07-14-55e4124 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-07-14-55e4124 manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-07-06-73b0312 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-07-06-73b0312 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-07-14-55e4124 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-07-14-55e4124 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-07-14-55e4124 manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-07-06-73b0312 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-07-06-73b0312 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-07-14-55e4124 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-07-14-55e4124 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-06-73b0312 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-14-55e4124 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-06-73b0312 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-14-55e4124 diff --git a/docs/working-examples.md b/docs/working-examples.md index ffcd37227..1c3fcd47b 100644 --- a/docs/working-examples.md +++ b/docs/working-examples.md @@ -58,8 +58,8 @@ title: Working examples | [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python | | [ruptures][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Extensive Cython + NumPy [pyproject.toml](https://github.com/deepcharles/ruptures/blob/master/pyproject.toml) example. | | [OpenTimelineIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Open Source API and interchange format for editorial timeline information. | -| [PyTables][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python package to manage extremely large amounts of data | | [CTranslate2][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html) and CUDA kernels compiled for multiple GPU architectures. | +| [PyTables][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python package to manage extremely large amounts of data | | [Psycopg 3][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A modern implementation of a PostgreSQL adapter for Python | | [Parselmouth][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python interface to the Praat software package, using pybind11, C++17 and CMake, with the core Praat static library built only once and shared between wheels. | | [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) | @@ -67,8 +67,8 @@ title: Working examples | [AutoPy][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | | [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system | | [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS ¶ | -| [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | | [mosec][] | ![github icon][] | ![linux icon][] ![apple icon][] | A high-performance serving framework for ML models, offers dynamic batching and multi-stage pipeline to fully exploit your compute machine | +| [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | | [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. | | [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | | [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python | @@ -164,8 +164,8 @@ title: Working examples [aioquic]: https://github.com/aiortc/aioquic [ruptures]: https://github.com/deepcharles/ruptures [OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO -[PyTables]: https://github.com/PyTables/PyTables [CTranslate2]: https://github.com/OpenNMT/CTranslate2 +[PyTables]: https://github.com/PyTables/PyTables [Psycopg 3]: https://github.com/psycopg/psycopg [Parselmouth]: https://github.com/YannickJadoul/Parselmouth [DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest @@ -173,8 +173,8 @@ title: Working examples [AutoPy]: https://github.com/autopilot-rs/autopy [H3-py]: https://github.com/uber/h3-py [Rtree]: https://github.com/Toblerity/rtree -[markupsafe]: https://github.com/pallets/markupsafe [mosec]: https://github.com/mosecorg/mosec +[markupsafe]: https://github.com/pallets/markupsafe [Picologging]: https://github.com/microsoft/picologging [pybind11 cmake_example]: https://github.com/pybind/cmake_example [KDEpy]: https://github.com/tommyod/KDEpy From bd9675d05b8ba0f5fb5becbb3d4cb8eccd62e189 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Fri, 14 Jul 2023 22:42:03 +0100 Subject: [PATCH 17/37] Manually specify 3.12.0b4 on macOS --- cibuildwheel/resources/build-platforms.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 8e792720b..84d67d9a4 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -100,9 +100,9 @@ python_configurations = [ { identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg" }, { identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg" }, { identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg" }, - { identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b3-macos11.pkg" }, - { identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b3-macos11.pkg" }, - { identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b3-macos11.pkg" }, + { identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b4-macos11.pkg" }, + { identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b4-macos11.pkg" }, + { identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b4-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" }, From f21bb8376a051ffb6cb5604b28ccaef7b90e8ab7 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sat, 15 Jul 2023 09:53:23 +0100 Subject: [PATCH 18/37] Bump version: v2.14.1 --- README.md | 16 +++++++--------- cibuildwheel/__init__.py | 2 +- docs/changelog.md | 6 ++++++ 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-apple-silicon.yml | 2 +- examples/github-deploy.yml | 2 +- examples/github-minimal.yml | 2 +- examples/github-with-qemu.yml | 2 +- examples/gitlab-minimal.yml | 4 ++-- 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 ++-- setup.cfg | 2 +- 20 files changed, 40 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 02ffe7703..df066df55 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ jobs: - uses: actions/setup-python@v3 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.14.0 + run: python -m pip install cibuildwheel==2.14.1 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse @@ -213,6 +213,12 @@ Changelog +### v2.14.1 + +_15 July 2023_ + +- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0b4 (#1550) + ### v2.14.0 _10 July 2023_ @@ -246,14 +252,6 @@ _19 April 2023_ - 🐛 Fix an import error when running on Python 3.7. (#1479) -### v2.12.2 - -_18 April 2023_ - -- 🐛 Fix a bug that caused an extra empty config-setting to be passed to the backend when CIBW_BUILD_FRONTEND is set to `build`. (#1474) -- 🐛 Fix a crash that occurred when overwriting an existing wheel on Windows. (#1464) -- 🛠 Pinned version updates, including CPython 3.10.11, 3.11.3, pip 23.1 and wheel 0.40.0. - --- diff --git a/cibuildwheel/__init__.py b/cibuildwheel/__init__.py index 894de67be..08ad1d3c7 100644 --- a/cibuildwheel/__init__.py +++ b/cibuildwheel/__init__.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "2.14.0" +__version__ = "2.14.1" diff --git a/docs/changelog.md b/docs/changelog.md index 4c66d56cf..607ecaaf8 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,12 @@ title: Changelog # Changelog +### v2.14.1 + +_15 July 2023_ + +- 🛠 Updates the prerelease CPython 3.12 version to 3.12.0b4 (#1550) + ### v2.14.0 _10 July 2023_ diff --git a/docs/faq.md b/docs/faq.md index aab0f436e..617f3f49c 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -159,7 +159,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.14.0 +uses: pypa/cibuildwheel@v2.14.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. @@ -181,7 +181,7 @@ The second option, and the only one that supports other CI systems, is using a ` ```bash # requirements-cibw.txt -cibuildwheel==2.14.0 +cibuildwheel==2.14.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: @@ -325,7 +325,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.14.0 --output-dir wheelhouse +pipx run cibuildwheel==2.14.1 --output-dir wheelhouse pipx run twine upload wheelhouse/*.whl ``` diff --git a/docs/setup.md b/docs/setup.md index f50274a82..3a18de679 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -184,7 +184,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/checkout@v3 - name: Build wheels - run: pipx run cibuildwheel==2.14.0 + run: pipx run cibuildwheel==2.14.1 - uses: actions/upload-artifact@v3 with: @@ -219,7 +219,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/setup-python@v3 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.14.0 + run: python -m pip install cibuildwheel==2.14.1 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/appveyor-minimal.yml b/examples/appveyor-minimal.yml index f9d312198..f9b91dc49 100644 --- a/examples/appveyor-minimal.yml +++ b/examples/appveyor-minimal.yml @@ -12,7 +12,7 @@ stack: python 3.7 init: - cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH% -install: python -m pip install cibuildwheel==2.14.0 +install: python -m pip install cibuildwheel==2.14.1 build_script: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index 06f97618f..af5096b9c 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.14.0 + pip3 install cibuildwheel==2.14.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==2.14.0 + python3 -m pip install cibuildwheel==2.14.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==2.14.0 + pip install cibuildwheel==2.14.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 54c3cf262..1166e9315 100644 --- a/examples/circleci-minimal.yml +++ b/examples/circleci-minimal.yml @@ -11,7 +11,7 @@ jobs: - run: name: Build the Linux wheels. command: | - pip3 install --user cibuildwheel==2.14.0 + pip3 install --user cibuildwheel==2.14.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==2.14.0 + python3 -m pip install --user cibuildwheel==2.14.1 python3 -m cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ @@ -42,7 +42,7 @@ jobs: - run: name: Build the OS X wheels. command: | - pip3 install cibuildwheel==2.14.0 + pip3 install cibuildwheel==2.14.1 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 c1eab6f58..eaebfb33b 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.14.0 + - python -m pip install cibuildwheel==2.14.1 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/cirrus-ci-minimal.yml b/examples/cirrus-ci-minimal.yml index fb79cfa33..808205d13 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.14.0 + - python -m pip install cibuildwheel==2.14.1 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/github-apple-silicon.yml b/examples/github-apple-silicon.yml index f0a8c3e77..73245df40 100644 --- a/examples/github-apple-silicon.yml +++ b/examples/github-apple-silicon.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.14.0 + uses: pypa/cibuildwheel@v2.14.1 env: CIBW_ARCHS_MACOS: x86_64 arm64 diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 7d50f99b3..4178d2add 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.14.0 + uses: pypa/cibuildwheel@v2.14.1 - uses: actions/upload-artifact@v3 with: diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index c89fb5f60..988f8ee89 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.14.0 + uses: pypa/cibuildwheel@v2.14.1 # env: # CIBW_SOME_OPTION: value # ... diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index 4235713a3..eabd1f21f 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -20,7 +20,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v2.14.0 + uses: pypa/cibuildwheel@v2.14.1 env: # configure cibuildwheel to build native archs ('auto'), and some # emulated ones diff --git a/examples/gitlab-minimal.yml b/examples/gitlab-minimal.yml index 61232ffbf..90abc3cac 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.14.0 + - python -m pip install cibuildwheel==2.14.1 - cibuildwheel --output-dir wheelhouse artifacts: paths: @@ -23,7 +23,7 @@ windows: before_script: - choco install python -y --version 3.8.6 - choco install git.install -y - - py -m pip install cibuildwheel==2.14.0 + - py -m pip install cibuildwheel==2.14.1 script: - py -m cibuildwheel --output-dir wheelhouse --platform windows artifacts: diff --git a/examples/gitlab-with-qemu.yml b/examples/gitlab-with-qemu.yml index cbdfd7839..f5ea753a0 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.14.0 + - python -m pip install cibuildwheel==2.14.1 # 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 5fedb081c..c98236647 100644 --- a/examples/travis-ci-deploy.yml +++ b/examples/travis-ci-deploy.yml @@ -20,7 +20,7 @@ jobs: - ln -s /c/Python38/python.exe /c/Python38/python3.exe install: - - python3 -m pip install cibuildwheel==2.14.0 + - python3 -m pip install cibuildwheel==2.14.1 script: # build the wheels, put them into './dist' diff --git a/examples/travis-ci-minimal.yml b/examples/travis-ci-minimal.yml index 83410803d..d970c1a56 100644 --- a/examples/travis-ci-minimal.yml +++ b/examples/travis-ci-minimal.yml @@ -26,7 +26,7 @@ jobs: - ln -s /c/Python38/python.exe /c/Python38/python3.exe install: - - python3 -m pip install cibuildwheel==2.14.0 + - python3 -m pip install cibuildwheel==2.14.1 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 39853a300..69f3e0db4 100644 --- a/examples/travis-ci-test-and-deploy.yml +++ b/examples/travis-ci-test-and-deploy.yml @@ -54,7 +54,7 @@ jobs: - stage: deploy name: Build and deploy Linux wheels services: docker - install: python3 -m pip install cibuildwheel==2.14.0 twine + install: python3 -m pip install cibuildwheel==2.14.1 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl # Deploy on windows @@ -62,7 +62,7 @@ jobs: name: Build and deploy Windows wheels os: windows language: shell - install: python3 -m pip install cibuildwheel==2.14.0 twine + install: python3 -m pip install cibuildwheel==2.14.1 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl diff --git a/setup.cfg b/setup.cfg index 0e78e8f50..b5587ba57 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = cibuildwheel -version = 2.14.0 +version = 2.14.1 description = Build Python wheels on CI with minimal configuration. long_description = file: README.md long_description_content_type = text/markdown From ddbcf561dbcfafec901b7e97551f5e9887db2c70 Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Sat, 15 Jul 2023 09:57:54 +0100 Subject: [PATCH 19/37] Correct logic with includes-only I'm assuming it takes multiple arguments because the Starlark version of the function does https://cirrus-ci.org/guide/programming-tasks/#changes_include_only --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index edbdb1df4..e6c502f92 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,4 +1,4 @@ -skip: changesIncludeOnly('docs/*') || changesIncludeOnly('.pre-commit-config.yaml') +skip: changesIncludeOnly('docs/*', '.pre-commit-config.yaml') run_tests: &RUN_TESTS install_cibuildwheel_script: From 4135c0a01dc11910ce118f58acc7caf4ac5c524a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 16 Jul 2023 15:32:55 -0500 Subject: [PATCH 20/37] [pre-commit.ci] pre-commit autoupdate (#1546) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.276 → v0.0.277](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.276...v0.0.277) * Update .pre-commit-config.yaml --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Henry Schreiner --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7a343a72b..de6c386f2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.276 + rev: v0.0.278 hooks: - id: ruff args: ["--fix", "--show-fixes"] From 8df6d59adf7f9c7876ece95d0f908b53e2014ff2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 23:27:43 +0000 Subject: [PATCH 21/37] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black: 23.3.0 → 23.7.0](https://github.com/psf/black/compare/23.3.0...23.7.0) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index de6c386f2..444a0f001 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/psf/black - rev: 23.3.0 + rev: 23.7.0 hooks: - id: black From 5b32ee7d7bcd9433f559d8b43e9f9a180288c227 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 22:34:06 -0400 Subject: [PATCH 22/37] [pre-commit.ci] pre-commit autoupdate (#1559) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.278 → v0.0.280](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.278...v0.0.280) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 444a0f001..561c3dbce 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.278 + rev: v0.0.280 hooks: - id: ruff args: ["--fix", "--show-fixes"] From 229f8570b497b5fa4a201f7dd28c4f52c104218e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 17:12:16 -0400 Subject: [PATCH 23/37] [pre-commit.ci] pre-commit autoupdate (#1562) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.280 → v0.0.281](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.280...v0.0.281) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 561c3dbce..c26120d9a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.280 + rev: v0.0.281 hooks: - id: ruff args: ["--fix", "--show-fixes"] From 36049d86a2e21d74382d84d7a423e20e49a2ca91 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Mon, 7 Aug 2023 18:01:10 +0200 Subject: [PATCH 24/37] feature: add musllinux_1_2 support (#1561) * feature: add musllinux_1_2 support * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix[test]: clean-up docker images in test_*linux*_only.py We are reaching disk space limits (14 GB) when running tests. Add a fixture to clean-up docker images after tests. This fixture is applied on tests that pull a specific image for one test only in order not to take too much time pulling that image many times. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- bin/update_docker.py | 6 ++ .../resources/pinned_docker_images.cfg | 43 +++++++------- docs/options.md | 2 +- test/conftest.py | 34 +++++++++++ test/test_container_images.py | 1 + test/test_manylinuxXXXX_only.py | 1 + test/test_musllinux_X_Y_only.py | 56 +++++++++++++++++++ test/utils.py | 15 ++--- unit_test/option_prepare_test.py | 21 +++++-- 9 files changed, 147 insertions(+), 32 deletions(-) create mode 100644 test/test_musllinux_X_Y_only.py diff --git a/bin/update_docker.py b/bin/update_docker.py index fa91cd009..9be3ae03d 100755 --- a/bin/update_docker.py +++ b/bin/update_docker.py @@ -59,6 +59,12 @@ class Image: Image("musllinux_1_1", "aarch64", "quay.io/pypa/musllinux_1_1_aarch64", None), Image("musllinux_1_1", "ppc64le", "quay.io/pypa/musllinux_1_1_ppc64le", None), Image("musllinux_1_1", "s390x", "quay.io/pypa/musllinux_1_1_s390x", None), + # musllinux_1_2 images + Image("musllinux_1_2", "x86_64", "quay.io/pypa/musllinux_1_2_x86_64", None), + Image("musllinux_1_2", "i686", "quay.io/pypa/musllinux_1_2_i686", None), + Image("musllinux_1_2", "aarch64", "quay.io/pypa/musllinux_1_2_aarch64", None), + Image("musllinux_1_2", "ppc64le", "quay.io/pypa/musllinux_1_2_ppc64le", None), + Image("musllinux_1_2", "s390x", "quay.io/pypa/musllinux_1_2_s390x", None), ] config = configparser.ConfigParser() diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index b0834e929..3f00c255f 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,49 +1,54 @@ [x86_64] manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-06-25-d2e0575 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-29-8793e83 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:2023-07-14-55e4124 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-07-14-55e4124 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-07-29-8793e83 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-07-29-8793e83 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-07-29-8793e83 [i686] manylinux1 = quay.io/pypa/manylinux1_i686:2023-06-25-d2e0575 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-29-8793e83 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-07-14-55e4124 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-07-29-8793e83 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-07-29-8793e83 [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-29-8793e83 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:2023-07-14-55e4124 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-07-29-8793e83 [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-29-8793e83 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-29-8793e83 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-14-55e4124 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-07-14-55e4124 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-29-8793e83 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-07-29-8793e83 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-07-29-8793e83 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-07-29-8793e83 manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-07-14-55e4124 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-07-14-55e4124 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-07-29-8793e83 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-07-29-8793e83 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-07-29-8793e83 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-07-29-8793e83 manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-07-14-55e4124 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-07-14-55e4124 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-07-29-8793e83 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-07-29-8793e83 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-07-29-8793e83 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-14-55e4124 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-29-8793e83 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-14-55e4124 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-29-8793e83 diff --git a/docs/options.md b/docs/options.md index 2c12b9ee1..66dec0b74 100644 --- a/docs/options.md +++ b/docs/options.md @@ -981,7 +981,7 @@ Set an alternative Docker image to be used for building [manylinux / musllinux]( For `CIBW_MANYLINUX_*_IMAGE`, the value of this option can either be set to `manylinux1`, `manylinux2010`, `manylinux2014`, `manylinux_2_24` or `manylinux_2_28` to use a pinned version of the [official manylinux images](https://github.com/pypa/manylinux). Alternatively, set these options to any other valid Docker image name. For PyPy, the `manylinux1` image is not available. For architectures other than x86 (x86\_64 and i686) `manylinux2014`, `manylinux_2_24` or `manylinux_2_28` must be used, because the first version of the manylinux specification that supports additional architectures is `manylinux2014`. `manylinux_2_28` is not supported for `i686` architecture. -For `CIBW_MUSLLINUX_*_IMAGE`, the value of this option can either be set to `musllinux_1_1` to use a pinned version of the [official musllinux images](https://github.com/pypa/musllinux). Alternatively, set these options to any other valid Docker image name. +For `CIBW_MUSLLINUX_*_IMAGE`, the value of this option can either be set to `musllinux_1_1` or `musllinux_1_2` to use a pinned version of the [official musllinux images](https://github.com/pypa/musllinux). Alternatively, set these options to any other valid Docker image name. If this option is blank, it will fall though to the next available definition (environment variable -> pyproject.toml -> default). diff --git a/test/conftest.py b/test/conftest.py index 07db1c1e4..161148680 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -1,7 +1,15 @@ from __future__ import annotations +import json +import subprocess +from typing import Generator + import pytest +from cibuildwheel.util import detect_ci_provider + +from .utils import platform + def pytest_addoption(parser) -> None: parser.addoption( @@ -21,3 +29,29 @@ def pytest_addoption(parser) -> None: ) def build_frontend_env(request) -> dict[str, str]: return request.param # type: ignore[no-any-return] + + +@pytest.fixture() +def docker_cleanup() -> Generator[None, None, None]: + def get_images() -> set[str]: + images = subprocess.run( + ["docker", "image", "ls", "--format", "{{json .ID}}"], + text=True, + check=True, + stdout=subprocess.PIPE, + ).stdout + return {json.loads(image.strip()) for image in images.splitlines() if image.strip()} + + if detect_ci_provider() is None or platform != "linux": + try: + yield + finally: + pass + return + images_before = get_images() + try: + yield + finally: + images_after = get_images() + for image in images_after - images_before: + subprocess.run(["docker", "rmi", image], check=False) diff --git a/test/test_container_images.py b/test/test_container_images.py index 75b102e38..12d486418 100644 --- a/test/test_container_images.py +++ b/test/test_container_images.py @@ -23,6 +23,7 @@ ) +@pytest.mark.usefixtures("docker_cleanup") def test(tmp_path): if utils.platform != "linux": pytest.skip("the test is only relevant to the linux build") diff --git a/test/test_manylinuxXXXX_only.py b/test/test_manylinuxXXXX_only.py index 4d1fe87e8..06082a7bb 100644 --- a/test/test_manylinuxXXXX_only.py +++ b/test/test_manylinuxXXXX_only.py @@ -53,6 +53,7 @@ "manylinux_image", ["manylinux1", "manylinux2010", "manylinux2014", "manylinux_2_24", "manylinux_2_28"], ) +@pytest.mark.usefixtures("docker_cleanup") def test(manylinux_image, tmp_path): if utils.platform != "linux": pytest.skip("the container image test is only relevant to the linux build") diff --git a/test/test_musllinux_X_Y_only.py b/test/test_musllinux_X_Y_only.py new file mode 100644 index 000000000..d05bc9f87 --- /dev/null +++ b/test/test_musllinux_X_Y_only.py @@ -0,0 +1,56 @@ +from __future__ import annotations + +import textwrap + +import pytest + +from . import test_projects, utils + +project_with_manylinux_symbols = test_projects.new_c_project( + spam_c_top_level_add=textwrap.dedent( + r""" + #include + + #if defined(__GLIBC_PREREQ) + #error "Must not run on a glibc linux environment" + #endif + """ + ), + spam_c_function_add=textwrap.dedent( + r""" + sts = 0; + """ + ), +) + + +@pytest.mark.parametrize( + "musllinux_image", + ["musllinux_1_1", "musllinux_1_2"], +) +@pytest.mark.usefixtures("docker_cleanup") +def test(musllinux_image, tmp_path): + if utils.platform != "linux": + pytest.skip("the container image test is only relevant to the linux build") + + project_dir = tmp_path / "project" + project_with_manylinux_symbols.generate(project_dir) + + # build the wheels + add_env = { + "CIBW_BUILD": "*-musllinux*", + "CIBW_MUSLLINUX_X86_64_IMAGE": musllinux_image, + "CIBW_MUSLLINUX_I686_IMAGE": musllinux_image, + "CIBW_MUSLLINUX_AARCH64_IMAGE": musllinux_image, + "CIBW_MUSLLINUX_PPC64LE_IMAGE": musllinux_image, + "CIBW_MUSLLINUX_S390X_IMAGE": musllinux_image, + } + + actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env) + expected_wheels = utils.expected_wheels( + "spam", + "0.1.0", + manylinux_versions=[], + musllinux_versions=[musllinux_image], + ) + assert set(actual_wheels) == set(expected_wheels) diff --git a/test/utils.py b/test/utils.py index f4578a58a..9ddc528c8 100644 --- a/test/utils.py +++ b/test/utils.py @@ -205,13 +205,14 @@ def expected_wheels( if machine_arch == "x86_64": architectures.append("i686") - platform_tags = [ - ".".join( - f"{manylinux_version}_{architecture}" - for manylinux_version in manylinux_versions - ) - for architecture in architectures - ] + if len(manylinux_versions) > 0: + platform_tags = [ + ".".join( + f"{manylinux_version}_{architecture}" + for manylinux_version in manylinux_versions + ) + for architecture in architectures + ] if len(musllinux_versions) > 0 and not python_abi_tag.startswith("pp"): platform_tags.extend( [ diff --git a/unit_test/option_prepare_test.py b/unit_test/option_prepare_test.py index f37badf20..0e965aa40 100644 --- a/unit_test/option_prepare_test.py +++ b/unit_test/option_prepare_test.py @@ -101,13 +101,15 @@ def test_build_with_override_launches(monkeypatch, tmp_path): cibw_toml.write_text( """ [tool.cibuildwheel] -manylinux-x86_64-image = "manylinux_2_24" +manylinux-x86_64-image = "manylinux_2_28" +musllinux-x86_64-image = "musllinux_1_2" -# Before Python 3.10, use manylinux2014 +# Before Python 3.10, use manylinux2014, musllinux_1_1 [[tool.cibuildwheel.overrides]] select = "cp3?-*" manylinux-x86_64-image = "manylinux2014" manylinux-i686-image = "manylinux2014" +musllinux-x86_64-image = "musllinux_1_1" [[tool.cibuildwheel.overrides]] select = "cp36-manylinux_x86_64" @@ -122,7 +124,7 @@ def test_build_with_override_launches(monkeypatch, tmp_path): build_in_container = typing.cast(mock.Mock, linux.build_in_container) - assert build_in_container.call_count == 6 + assert build_in_container.call_count == 7 kwargs = build_in_container.call_args_list[0][1] assert "quay.io/pypa/manylinux2014_x86_64" in kwargs["container"]["image"] @@ -146,7 +148,7 @@ def test_build_with_override_launches(monkeypatch, tmp_path): assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == "" kwargs = build_in_container.call_args_list[2][1] - assert "quay.io/pypa/manylinux_2_24_x86_64" in kwargs["container"]["image"] + assert "quay.io/pypa/manylinux_2_28_x86_64" in kwargs["container"]["image"] assert kwargs["container"]["cwd"] == PurePosixPath("/project") assert not kwargs["container"]["simulate_32_bit"] identifiers = {x.identifier for x in kwargs["platform_configs"]} @@ -169,10 +171,19 @@ def test_build_with_override_launches(monkeypatch, tmp_path): identifiers = {x.identifier for x in kwargs["platform_configs"]} assert identifiers == { - f"{x}-musllinux_x86_64" for x in ALL_IDS for x in ALL_IDS if "pp" not in x + f"{x}-musllinux_x86_64" for x in ALL_IDS & {"cp36", "cp37", "cp38", "cp39"} if "pp" not in x } kwargs = build_in_container.call_args_list[5][1] + assert "quay.io/pypa/musllinux_1_2_x86_64" in kwargs["container"]["image"] + assert kwargs["container"]["cwd"] == PurePosixPath("/project") + assert not kwargs["container"]["simulate_32_bit"] + identifiers = {x.identifier for x in kwargs["platform_configs"]} + assert identifiers == { + f"{x}-musllinux_x86_64" for x in ALL_IDS - {"cp36", "cp37", "cp38", "cp39"} if "pp" not in x + } + + kwargs = build_in_container.call_args_list[6][1] assert "quay.io/pypa/musllinux_1_1_i686" in kwargs["container"]["image"] assert kwargs["container"]["cwd"] == PurePosixPath("/project") assert kwargs["container"]["simulate_32_bit"] From 8946bfb2e8ca91e4cf1a267699f475581f292f35 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 23:30:53 +0000 Subject: [PATCH 25/37] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.281 → v0.0.282](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.281...v0.0.282) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c26120d9a..ac0e72632 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.281 + rev: v0.0.282 hooks: - id: ruff args: ["--fix", "--show-fixes"] From df94b5db6769eb8c3abb164caa9ab84c763570da Mon Sep 17 00:00:00 2001 From: "cibuildwheel-bot[bot]" <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 08:27:23 +0200 Subject: [PATCH 26/37] [Bot] Update dependencies (#1553) Update dependencies Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> --- cibuildwheel/resources/build-platforms.toml | 12 ++--- .../resources/constraints-python310.txt | 10 ++-- .../resources/constraints-python311.txt | 10 ++-- .../resources/constraints-python312.txt | 10 ++-- .../resources/constraints-python37.txt | 10 ++-- .../resources/constraints-python38.txt | 10 ++-- .../resources/constraints-python39.txt | 10 ++-- cibuildwheel/resources/constraints.txt | 10 ++-- .../resources/pinned_docker_images.cfg | 52 +++++++++---------- docs/working-examples.md | 38 +++++++------- 10 files changed, 86 insertions(+), 86 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 84d67d9a4..696427cdf 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -100,9 +100,9 @@ python_configurations = [ { identifier = "cp311-macosx_x86_64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg" }, { identifier = "cp311-macosx_arm64", version = "3.11", url = "https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg" }, { identifier = "cp311-macosx_universal2", version = "3.11", url = "https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg" }, - { identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b4-macos11.pkg" }, - { identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b4-macos11.pkg" }, - { identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0b4-macos11.pkg" }, + { identifier = "cp312-macosx_x86_64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0rc1-macos11.pkg" }, + { identifier = "cp312-macosx_arm64", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0rc1-macos11.pkg" }, + { identifier = "cp312-macosx_universal2", version = "3.12", url = "https://www.python.org/ftp/python/3.12.0/python-3.12.0rc1-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" }, @@ -126,12 +126,12 @@ python_configurations = [ { identifier = "cp310-win_amd64", version = "3.10.11", arch = "64" }, { identifier = "cp311-win32", version = "3.11.4", arch = "32" }, { identifier = "cp311-win_amd64", version = "3.11.4", arch = "64" }, - { identifier = "cp312-win32", version = "3.12.0-b4", arch = "32" }, - { identifier = "cp312-win_amd64", version = "3.12.0-b4", arch = "64" }, + { identifier = "cp312-win32", version = "3.12.0-rc1", arch = "32" }, + { identifier = "cp312-win_amd64", version = "3.12.0-rc1", 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.4", arch = "ARM64" }, - { identifier = "cp312-win_arm64", version = "3.12.0-b4", arch = "ARM64" }, + { identifier = "cp312-win_arm64", version = "3.12.0-rc1", 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.12-win64.zip" }, diff --git a/cibuildwheel/resources/constraints-python310.txt b/cibuildwheel/resources/constraints-python310.txt index 22f06f863..a2836162a 100644 --- a/cibuildwheel/resources/constraints-python310.txt +++ b/cibuildwheel/resources/constraints-python310.txt @@ -6,23 +6,23 @@ # delocate==0.10.4 # via -r cibuildwheel/resources/constraints.in -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.1 +platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.23.1 +virtualenv==20.24.2 # via -r cibuildwheel/resources/constraints.in -wheel==0.40.0 +wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r cibuildwheel/resources/constraints.in setuptools==68.0.0 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python311.txt b/cibuildwheel/resources/constraints-python311.txt index 72882c1d5..11d4beca7 100644 --- a/cibuildwheel/resources/constraints-python311.txt +++ b/cibuildwheel/resources/constraints-python311.txt @@ -6,23 +6,23 @@ # delocate==0.10.4 # via -r cibuildwheel/resources/constraints.in -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.1 +platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.23.1 +virtualenv==20.24.2 # via -r cibuildwheel/resources/constraints.in -wheel==0.40.0 +wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r cibuildwheel/resources/constraints.in setuptools==68.0.0 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python312.txt b/cibuildwheel/resources/constraints-python312.txt index ca6615dc4..23a755f1b 100644 --- a/cibuildwheel/resources/constraints-python312.txt +++ b/cibuildwheel/resources/constraints-python312.txt @@ -6,23 +6,23 @@ # delocate==0.10.4 # via -r cibuildwheel/resources/constraints.in -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.1 +platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.23.1 +virtualenv==20.24.2 # via -r cibuildwheel/resources/constraints.in -wheel==0.40.0 +wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r cibuildwheel/resources/constraints.in setuptools==68.0.0 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python37.txt b/cibuildwheel/resources/constraints-python37.txt index 250c56b7d..b4e57965d 100644 --- a/cibuildwheel/resources/constraints-python37.txt +++ b/cibuildwheel/resources/constraints-python37.txt @@ -6,7 +6,7 @@ # delocate==0.10.4 # via -r cibuildwheel/resources/constraints.in -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via virtualenv @@ -14,22 +14,22 @@ importlib-metadata==6.7.0 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.1 +platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via # delocate # importlib-metadata # platformdirs -virtualenv==20.23.1 +virtualenv==20.24.2 # via -r cibuildwheel/resources/constraints.in -wheel==0.40.0 +wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in zipp==3.15.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r cibuildwheel/resources/constraints.in setuptools==68.0.0 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python38.txt b/cibuildwheel/resources/constraints-python38.txt index 707340c28..f5e63ad5b 100644 --- a/cibuildwheel/resources/constraints-python38.txt +++ b/cibuildwheel/resources/constraints-python38.txt @@ -6,23 +6,23 @@ # delocate==0.10.4 # via -r cibuildwheel/resources/constraints.in -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.1 +platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.23.1 +virtualenv==20.24.2 # via -r cibuildwheel/resources/constraints.in -wheel==0.40.0 +wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r cibuildwheel/resources/constraints.in setuptools==68.0.0 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python39.txt b/cibuildwheel/resources/constraints-python39.txt index bbe4692ed..1669efa8b 100644 --- a/cibuildwheel/resources/constraints-python39.txt +++ b/cibuildwheel/resources/constraints-python39.txt @@ -6,23 +6,23 @@ # delocate==0.10.4 # via -r cibuildwheel/resources/constraints.in -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.1 +platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.23.1 +virtualenv==20.24.2 # via -r cibuildwheel/resources/constraints.in -wheel==0.40.0 +wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r cibuildwheel/resources/constraints.in setuptools==68.0.0 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints.txt b/cibuildwheel/resources/constraints.txt index ca6615dc4..23a755f1b 100644 --- a/cibuildwheel/resources/constraints.txt +++ b/cibuildwheel/resources/constraints.txt @@ -6,23 +6,23 @@ # delocate==0.10.4 # via -r cibuildwheel/resources/constraints.in -distlib==0.3.6 +distlib==0.3.7 # via virtualenv filelock==3.12.2 # via virtualenv packaging==23.1 # via delocate -platformdirs==3.8.1 +platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.23.1 +virtualenv==20.24.2 # via -r cibuildwheel/resources/constraints.in -wheel==0.40.0 +wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in # The following packages are considered to be unsafe in a requirements file: -pip==23.1.2 +pip==23.2.1 # via -r cibuildwheel/resources/constraints.in setuptools==68.0.0 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 3f00c255f..7b8ead79b 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,54 +1,54 @@ [x86_64] -manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-06-25-d2e0575 +manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-08-06-0a0ac62 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-07-e3f636d 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:2023-07-29-8793e83 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-07-29-8793e83 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-07-29-8793e83 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-08-07-e3f636d +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-08-07-e3f636d +musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-08-07-e3f636d [i686] -manylinux1 = quay.io/pypa/manylinux1_i686:2023-06-25-d2e0575 +manylinux1 = quay.io/pypa/manylinux1_i686:2023-08-06-0a0ac62 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-07-e3f636d manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-07-29-8793e83 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-07-29-8793e83 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-08-07-e3f636d +musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-08-07-e3f636d [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-07-e3f636d 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:2023-07-29-8793e83 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-08-07-e3f636d [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-07-e3f636d manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-07-e3f636d manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-29-8793e83 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-07-29-8793e83 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-07-29-8793e83 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-07-e3f636d +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-08-07-e3f636d +musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-08-07-e3f636d [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-08-07-e3f636d manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-07-29-8793e83 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-07-29-8793e83 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-07-29-8793e83 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-08-07-e3f636d +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-08-07-e3f636d +musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-08-07-e3f636d [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-08-07-e3f636d manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-07-29-8793e83 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-07-29-8793e83 -musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-07-29-8793e83 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-08-07-e3f636d +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-08-07-e3f636d +musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-08-07-e3f636d [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-07-29-8793e83 +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-07-e3f636d manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-07-29-8793e83 +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-07-e3f636d diff --git a/docs/working-examples.md b/docs/working-examples.md index 1c3fcd47b..50575ea2c 100644 --- a/docs/working-examples.md +++ b/docs/working-examples.md @@ -22,8 +22,8 @@ title: Working examples | [uvloop][] | ![github icon][] | ![apple icon][] ![linux icon][] | Ultra fast asyncio event loop. | | [psutil][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Cross-platform lib for process and system monitoring in Python | | [vaex][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀 | -| [Google Benchmark][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A microbenchmark support library | | [Triton][] | ![github icon][] | ![linux icon][] | Self hosted runners | +| [Google Benchmark][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A microbenchmark support library | | [Apache Beam][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Apache Beam is a unified programming model for Batch and Streaming data processing. | | [PyGame][] | ![github icon][] | ![apple icon][] ![linux icon][] | 🐍🎮 pygame (the library) is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL. | | [asyncpg][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A fast PostgreSQL Database Client Library for Python/asyncio. | @@ -51,33 +51,33 @@ title: Working examples | [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. | | [h5py][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | HDF5 for Python -- The h5py package is a Pythonic interface to the HDF5 binary data format. | | [Wrapt][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python module for decorators, wrappers and monkey patching. | -| [pikepdf][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by qpdf | -| [envd][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | 🏕️ Reproducible development environment for AI/ML | +| [pikepdf][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by QPDF | +| [envd][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | 🏕️ Reproducible development environment for AI/ML (LLMOps) | | [SimpleJSON][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | simplejson is a simple, fast, extensible JSON encoder/decoder for Python | | [OpenColorIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A color management framework for visual effects and animation. | +| [CTranslate2][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html) and CUDA kernels compiled for multiple GPU architectures. | | [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python | | [ruptures][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Extensive Cython + NumPy [pyproject.toml](https://github.com/deepcharles/ruptures/blob/master/pyproject.toml) example. | | [OpenTimelineIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Open Source API and interchange format for editorial timeline information. | -| [CTranslate2][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html) and CUDA kernels compiled for multiple GPU architectures. | | [PyTables][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python package to manage extremely large amounts of data | | [Psycopg 3][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A modern implementation of a PostgreSQL adapter for Python | | [Parselmouth][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python interface to the Praat software package, using pybind11, C++17 and CMake, with the core Praat static library built only once and shared between wheels. | -| [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) | | [google neuroglancer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | WebGL-based viewer for volumetric data | +| [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) | | [AutoPy][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | | [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system | | [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS ¶ | -| [mosec][] | ![github icon][] | ![linux icon][] ![apple icon][] | A high-performance serving framework for ML models, offers dynamic batching and multi-stage pipeline to fully exploit your compute machine | +| [mosec][] | ![github icon][] | ![linux icon][] ![apple icon][] | A high-performance ML model serving framework, offers dynamic batching and CPU/GPU pipelines to fully exploit your compute machine | | [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | | [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. | | [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | | [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python | -| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | | [time-machine][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Time mocking library using only the CPython C API. | +| [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | | [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library | | [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. | -| [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system | | [dd-trace-py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Uses custom alternate arch emulation on GitHub | +| [pybind11 python_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a Python-based build system | | [sourmash][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Quickly search, compare, and analyze genomic and metagenomic data sets. | | [cyvcf2][] | ![github icon][] | ![apple icon][] ![linux icon][] | cython + htslib == fast VCF and BCF processing | | [matrixprofile][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python 3 library making time series data mining tasks, utilizing matrix profile algorithms, accessible to everyone. | @@ -88,8 +88,8 @@ title: Working examples | [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python | | [TgCrypto][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | | [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. | -| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 | | [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. | +| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 | | [pillow-heif][] | ![github icon][] ![cirrusci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Bindings to libheif library with third party dependencies. Fully automated CI for tests and publishing including Apple Silicon builds. | | [Python-WebRTC][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | a Python extension that provides bindings to WebRTC M92 | | [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python | @@ -100,13 +100,13 @@ title: Working examples | [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. | | [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. | | [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 | -| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions | | [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. | +| [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions | | [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. | | [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy | | [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy | -| [ril][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A python binding to Rust Imaging library using maturin and Pyo3, utilizes Github Action cache to improve speed. Builds abi3 wheels. | | [GSD][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Cython and NumPy project with 64-bit wheels. | +| [ril][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A python binding to Rust Imaging library using maturin and Pyo3, utilizes Github Action cache to improve speed. Builds abi3 wheels. | | [SiPM][] | ![github icon][] | ![apple icon][] ![linux icon][] | High performance library for SiPM detectors simulation using C++17, OpenMP and AVX2 intrinsics. | | [CorrectionLib][] | ![github icon][] | ![apple icon][] ![linux icon][] | Structured JSON powered correction library for HEP, designed for the CMS experiment at CERN. | | [pyinstrument_cext][] | ![travisci icon][] ![appveyor icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A simple C extension, without external dependencies | @@ -128,8 +128,8 @@ title: Working examples [uvloop]: https://github.com/MagicStack/uvloop [psutil]: https://github.com/giampaolo/psutil [vaex]: https://github.com/vaexio/vaex -[Google Benchmark]: https://github.com/google/benchmark [Triton]: https://github.com/openai/triton +[Google Benchmark]: https://github.com/google/benchmark [Apache Beam]: https://github.com/apache/beam [PyGame]: https://github.com/pygame/pygame [asyncpg]: https://github.com/MagicStack/asyncpg @@ -161,15 +161,15 @@ title: Working examples [envd]: https://github.com/tensorchord/envd [SimpleJSON]: https://github.com/simplejson/simplejson [OpenColorIO]: https://github.com/AcademySoftwareFoundation/OpenColorIO +[CTranslate2]: https://github.com/OpenNMT/CTranslate2 [aioquic]: https://github.com/aiortc/aioquic [ruptures]: https://github.com/deepcharles/ruptures [OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO -[CTranslate2]: https://github.com/OpenNMT/CTranslate2 [PyTables]: https://github.com/PyTables/PyTables [Psycopg 3]: https://github.com/psycopg/psycopg [Parselmouth]: https://github.com/YannickJadoul/Parselmouth -[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest [google neuroglancer]: https://github.com/google/neuroglancer +[DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest [AutoPy]: https://github.com/autopilot-rs/autopy [H3-py]: https://github.com/uber/h3-py [Rtree]: https://github.com/Toblerity/rtree @@ -178,12 +178,12 @@ title: Working examples [Picologging]: https://github.com/microsoft/picologging [pybind11 cmake_example]: https://github.com/pybind/cmake_example [KDEpy]: https://github.com/tommyod/KDEpy -[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson [time-machine]: https://github.com/adamchainz/time-machine +[python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson [python-snappy]: https://github.com/andrix/python-snappy [tgcalls]: https://github.com/MarshalX/tgcalls -[pybind11 python_example]: https://github.com/pybind/python_example [dd-trace-py]: https://github.com/DataDog/dd-trace-py +[pybind11 python_example]: https://github.com/pybind/python_example [sourmash]: https://github.com/dib-lab/sourmash [cyvcf2]: https://github.com/brentp/cyvcf2 [matrixprofile]: https://github.com/matrix-profile-foundation/matrixprofile @@ -194,8 +194,8 @@ title: Working examples [PyGLM]: https://github.com/Zuzu-Typ/PyGLM [TgCrypto]: https://github.com/pyrogram/tgcrypto [bx-python]: https://github.com/bxlab/bx-python -[iDynTree]: https://github.com/robotology/idyntree [boost-histogram]: https://github.com/scikit-hep/boost-histogram +[iDynTree]: https://github.com/robotology/idyntree [pillow-heif]: https://github.com/bigcat88/pillow_heif [Python-WebRTC]: https://github.com/MarshalX/python-webrtc [pybase64]: https://github.com/mayeut/pybase64 @@ -206,13 +206,13 @@ title: Working examples [polaroid]: https://github.com/daggy1234/polaroid [etebase-py]: https://github.com/etesync/etebase-py [pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example -[cf-units]: https://github.com/SciTools/cf-units [clang-format]: https://github.com/ssciwr/clang-format-wheel +[cf-units]: https://github.com/SciTools/cf-units [ninja]: https://github.com/scikit-build/ninja-python-distributions [numpythia]: https://github.com/scikit-hep/numpythia [pyjet]: https://github.com/scikit-hep/pyjet -[ril]: https://github.com/Cryptex-github/ril-py [GSD]: https://github.com/glotzerlab/gsd +[ril]: https://github.com/Cryptex-github/ril-py [SiPM]: https://github.com/EdoPro98/SimSiPM [CorrectionLib]: https://github.com/cms-nanoAOD/correctionlib [pyinstrument_cext]: https://github.com/joerick/pyinstrument_cext From a63e11a1c40bf45810a29b0837a72312202cb00b Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Mon, 7 Aug 2023 12:31:37 -0400 Subject: [PATCH 27/37] feat: build using 3.12 RC by default Signed-off-by: Henry Schreiner --- README.md | 2 +- cibuildwheel/util.py | 2 +- unit_test/build_selector_test.py | 4 ++-- unit_test/linux_build_steps_test.py | 3 ++- unit_test/option_prepare_test.py | 19 ++++++++++++++++--- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index df066df55..d03c4a617 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ What does it do? ² Windows arm64 support is experimental.
³ Alpine 3.14 and very briefly 3.15's default python3 [was not able to load](https://github.com/pypa/cibuildwheel/issues/934) musllinux wheels. This has been fixed; please upgrade the python package if using Alpine from before the fix.
⁴ Cross-compilation not supported with PyPy - to build these wheels you need to run cibuildwheel on an Apple Silicon machine.
-⁵ CPython 3.12 is available using the [CIBW_PRERELEASE_PYTHONS](https://cibuildwheel.readthedocs.io/en/stable/options/#prerelease-pythons) option.
+⁵ CPython 3.12 is built by default using Python RCs, starting with cibuildwheel 2.15.
- Builds manylinux, musllinux, macOS 10.9+, and Windows wheels for CPython and PyPy - Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, GitLab CI, and Cirrus CI diff --git a/cibuildwheel/util.py b/cibuildwheel/util.py index 93aad1860..7875ea404 100644 --- a/cibuildwheel/util.py +++ b/cibuildwheel/util.py @@ -250,7 +250,7 @@ class BuildSelector: requires_python: SpecifierSet | None = None # a pattern that skips prerelease versions, when include_prereleases is False. - PRERELEASE_SKIP: ClassVar[str] = "cp312-*" + PRERELEASE_SKIP: ClassVar[str] = "" prerelease_pythons: bool = False def __call__(self, build_id: str) -> bool: diff --git a/unit_test/build_selector_test.py b/unit_test/build_selector_test.py index b4c6e96a4..9fa7eabda 100644 --- a/unit_test/build_selector_test.py +++ b/unit_test/build_selector_test.py @@ -12,7 +12,7 @@ def test_build(): assert build_selector("cp37-manylinux_x86_64") assert build_selector("cp310-manylinux_x86_64") assert build_selector("cp311-manylinux_x86_64") - assert not build_selector("cp312-manylinux_x86_64") + assert build_selector("cp312-manylinux_x86_64") assert build_selector("pp36-manylinux_x86_64") assert build_selector("pp37-manylinux_x86_64") assert build_selector("cp36-manylinux_i686") @@ -32,7 +32,7 @@ def test_build(): assert build_selector("cp37-win_amd64") assert build_selector("cp310-win_amd64") assert build_selector("cp311-win_amd64") - assert not build_selector("cp312-win_amd64") + assert build_selector("cp312-win_amd64") assert not build_selector("pp36-win_amd64") assert not build_selector("pp37-win_amd64") diff --git a/unit_test/linux_build_steps_test.py b/unit_test/linux_build_steps_test.py index 065c53c35..29ee25990 100644 --- a/unit_test/linux_build_steps_test.py +++ b/unit_test/linux_build_steps_test.py @@ -62,8 +62,9 @@ def before_alls(step): "cp36-manylinux_x86_64", "cp37-manylinux_x86_64", "cp311-manylinux_x86_64", + "cp312-manylinux_x86_64", ] - assert before_alls(build_steps[0]) == ["", "", ""] + assert before_alls(build_steps[0]) == ["", "", "", ""] assert build_steps[1].container_image == "other_container_image" assert identifiers(build_steps[1]) == ["cp38-manylinux_x86_64", "cp310-manylinux_x86_64"] diff --git a/unit_test/option_prepare_test.py b/unit_test/option_prepare_test.py index 0e965aa40..fdf77c537 100644 --- a/unit_test/option_prepare_test.py +++ b/unit_test/option_prepare_test.py @@ -13,7 +13,19 @@ from cibuildwheel import linux, util from cibuildwheel.__main__ import main -ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "cp311", "pp37", "pp38", "pp39", "pp310"} +ALL_IDS = { + "cp36", + "cp37", + "cp38", + "cp39", + "cp310", + "cp311", + "cp312", + "pp37", + "pp38", + "pp39", + "pp310", +} @pytest.fixture() @@ -143,7 +155,7 @@ def test_build_with_override_launches(monkeypatch, tmp_path): identifiers = {x.identifier for x in kwargs["platform_configs"]} assert identifiers == { f"{x}-manylinux_x86_64" - for x in ALL_IDS - {"cp36", "cp310", "cp311", "pp37", "pp38", "pp39", "pp310"} + for x in ALL_IDS - {"cp36", "cp310", "cp311", "cp312", "pp37", "pp38", "pp39", "pp310"} } assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == "" @@ -153,7 +165,8 @@ def test_build_with_override_launches(monkeypatch, tmp_path): assert not kwargs["container"]["simulate_32_bit"] identifiers = {x.identifier for x in kwargs["platform_configs"]} assert identifiers == { - f"{x}-manylinux_x86_64" for x in ["cp310", "cp311", "pp37", "pp38", "pp39", "pp310"] + f"{x}-manylinux_x86_64" + for x in ["cp310", "cp311", "cp312", "pp37", "pp38", "pp39", "pp310"] } kwargs = build_in_container.call_args_list[3][1] From 39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d Mon Sep 17 00:00:00 2001 From: Joe Rickerby Date: Tue, 8 Aug 2023 18:54:48 +0100 Subject: [PATCH 28/37] Bump version: v2.15.0 --- README.md | 15 ++++++++------- cibuildwheel/__init__.py | 2 +- docs/changelog.md | 7 +++++++ 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-apple-silicon.yml | 2 +- examples/github-deploy.yml | 2 +- examples/github-minimal.yml | 2 +- examples/github-with-qemu.yml | 2 +- examples/gitlab-minimal.yml | 4 ++-- 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 ++-- setup.cfg | 2 +- 20 files changed, 42 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index d03c4a617..8346d755e 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ jobs: - uses: actions/setup-python@v3 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.14.1 + run: python -m pip install cibuildwheel==2.15.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse @@ -213,6 +213,13 @@ Changelog +### v2.15.0 + +_8 August 2023_ + +- 🌟 CPython 3.12 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. It's time to build and upload these wheels to PyPI! This release includes CPython 3.12.0rc1, which is guaranteed to be ABI compatible with the final release. (#1565) +- ✨ Adds musllinux_1_2 support - this allows packagers to build for musl-based Linux distributions on a more recent Alpine image, and a newer musl libc. (#1561) + ### v2.14.1 _15 July 2023_ @@ -246,12 +253,6 @@ _28 May 2023_ - ✨ Adds the ability to pass arguments to the container engine when the container is created, using the [CIBW_CONTAINER_ENGINE](https://cibuildwheel.readthedocs.io/en/stable/options/#container-engine) option. (#1499) -### v2.12.3 - -_19 April 2023_ - -- 🐛 Fix an import error when running on Python 3.7. (#1479) - --- diff --git a/cibuildwheel/__init__.py b/cibuildwheel/__init__.py index 08ad1d3c7..79a44705c 100644 --- a/cibuildwheel/__init__.py +++ b/cibuildwheel/__init__.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "2.14.1" +__version__ = "2.15.0" diff --git a/docs/changelog.md b/docs/changelog.md index 607ecaaf8..8d99c6333 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,13 @@ title: Changelog # Changelog +### v2.15.0 + +_8 August 2023_ + +- 🌟 CPython 3.12 wheels are now built by default - without the CIBW_PRERELEASE_PYTHONS flag. It's time to build and upload these wheels to PyPI! This release includes CPython 3.12.0rc1, which is guaranteed to be ABI compatible with the final release. (#1565) +- ✨ Adds musllinux_1_2 support - this allows packagers to build for musl-based Linux distributions on a more recent Alpine image, and a newer musl libc. (#1561) + ### v2.14.1 _15 July 2023_ diff --git a/docs/faq.md b/docs/faq.md index 617f3f49c..91f2f6709 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -159,7 +159,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.14.1 +uses: pypa/cibuildwheel@v2.15.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. @@ -181,7 +181,7 @@ The second option, and the only one that supports other CI systems, is using a ` ```bash # requirements-cibw.txt -cibuildwheel==2.14.1 +cibuildwheel==2.15.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: @@ -325,7 +325,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.14.1 --output-dir wheelhouse +pipx run cibuildwheel==2.15.0 --output-dir wheelhouse pipx run twine upload wheelhouse/*.whl ``` diff --git a/docs/setup.md b/docs/setup.md index 3a18de679..90526097d 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -184,7 +184,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/checkout@v3 - name: Build wheels - run: pipx run cibuildwheel==2.14.1 + run: pipx run cibuildwheel==2.15.0 - uses: actions/upload-artifact@v3 with: @@ -219,7 +219,7 @@ To build Linux, Mac, and Windows wheels using GitHub Actions, create a `.github/ - uses: actions/setup-python@v3 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.14.1 + run: python -m pip install cibuildwheel==2.15.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/appveyor-minimal.yml b/examples/appveyor-minimal.yml index f9b91dc49..5ba6b666d 100644 --- a/examples/appveyor-minimal.yml +++ b/examples/appveyor-minimal.yml @@ -12,7 +12,7 @@ stack: python 3.7 init: - cmd: set PATH=C:\Python37;C:\Python37\Scripts;%PATH% -install: python -m pip install cibuildwheel==2.14.1 +install: python -m pip install cibuildwheel==2.15.0 build_script: python -m cibuildwheel --output-dir wheelhouse diff --git a/examples/azure-pipelines-minimal.yml b/examples/azure-pipelines-minimal.yml index af5096b9c..90865ffc0 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.14.1 + pip3 install cibuildwheel==2.15.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.14.1 + python3 -m pip install cibuildwheel==2.15.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.14.1 + pip install cibuildwheel==2.15.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 1166e9315..015aa5488 100644 --- a/examples/circleci-minimal.yml +++ b/examples/circleci-minimal.yml @@ -11,7 +11,7 @@ jobs: - run: name: Build the Linux wheels. command: | - pip3 install --user cibuildwheel==2.14.1 + pip3 install --user cibuildwheel==2.15.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.14.1 + python3 -m pip install --user cibuildwheel==2.15.0 python3 -m cibuildwheel --output-dir wheelhouse - store_artifacts: path: wheelhouse/ @@ -42,7 +42,7 @@ jobs: - run: name: Build the OS X wheels. command: | - pip3 install cibuildwheel==2.14.1 + pip3 install cibuildwheel==2.15.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 eaebfb33b..ab0b69c4e 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.14.1 + - python -m pip install cibuildwheel==2.15.0 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/cirrus-ci-minimal.yml b/examples/cirrus-ci-minimal.yml index 808205d13..176726c90 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.14.1 + - python -m pip install cibuildwheel==2.15.0 run_cibuildwheel_script: - cibuildwheel wheels_artifacts: diff --git a/examples/github-apple-silicon.yml b/examples/github-apple-silicon.yml index 73245df40..3fec68f51 100644 --- a/examples/github-apple-silicon.yml +++ b/examples/github-apple-silicon.yml @@ -10,7 +10,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.14.1 + uses: pypa/cibuildwheel@v2.15.0 env: CIBW_ARCHS_MACOS: x86_64 arm64 diff --git a/examples/github-deploy.yml b/examples/github-deploy.yml index 4178d2add..acafd7273 100644 --- a/examples/github-deploy.yml +++ b/examples/github-deploy.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.14.1 + uses: pypa/cibuildwheel@v2.15.0 - uses: actions/upload-artifact@v3 with: diff --git a/examples/github-minimal.yml b/examples/github-minimal.yml index 988f8ee89..53a028111 100644 --- a/examples/github-minimal.yml +++ b/examples/github-minimal.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v3 - name: Build wheels - uses: pypa/cibuildwheel@v2.14.1 + uses: pypa/cibuildwheel@v2.15.0 # env: # CIBW_SOME_OPTION: value # ... diff --git a/examples/github-with-qemu.yml b/examples/github-with-qemu.yml index eabd1f21f..e31253633 100644 --- a/examples/github-with-qemu.yml +++ b/examples/github-with-qemu.yml @@ -20,7 +20,7 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v2.14.1 + uses: pypa/cibuildwheel@v2.15.0 env: # configure cibuildwheel to build native archs ('auto'), and some # emulated ones diff --git a/examples/gitlab-minimal.yml b/examples/gitlab-minimal.yml index 90abc3cac..454c5d27f 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.14.1 + - python -m pip install cibuildwheel==2.15.0 - cibuildwheel --output-dir wheelhouse artifacts: paths: @@ -23,7 +23,7 @@ windows: before_script: - choco install python -y --version 3.8.6 - choco install git.install -y - - py -m pip install cibuildwheel==2.14.1 + - py -m pip install cibuildwheel==2.15.0 script: - py -m cibuildwheel --output-dir wheelhouse --platform windows artifacts: diff --git a/examples/gitlab-with-qemu.yml b/examples/gitlab-with-qemu.yml index f5ea753a0..6dd3f7575 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.14.1 + - python -m pip install cibuildwheel==2.15.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 c98236647..a0c0ee7d3 100644 --- a/examples/travis-ci-deploy.yml +++ b/examples/travis-ci-deploy.yml @@ -20,7 +20,7 @@ jobs: - ln -s /c/Python38/python.exe /c/Python38/python3.exe install: - - python3 -m pip install cibuildwheel==2.14.1 + - python3 -m pip install cibuildwheel==2.15.0 script: # build the wheels, put them into './dist' diff --git a/examples/travis-ci-minimal.yml b/examples/travis-ci-minimal.yml index d970c1a56..34c06fedb 100644 --- a/examples/travis-ci-minimal.yml +++ b/examples/travis-ci-minimal.yml @@ -26,7 +26,7 @@ jobs: - ln -s /c/Python38/python.exe /c/Python38/python3.exe install: - - python3 -m pip install cibuildwheel==2.14.1 + - python3 -m pip install cibuildwheel==2.15.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 69f3e0db4..32ac81e6f 100644 --- a/examples/travis-ci-test-and-deploy.yml +++ b/examples/travis-ci-test-and-deploy.yml @@ -54,7 +54,7 @@ jobs: - stage: deploy name: Build and deploy Linux wheels services: docker - install: python3 -m pip install cibuildwheel==2.14.1 twine + install: python3 -m pip install cibuildwheel==2.15.0 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl # Deploy on windows @@ -62,7 +62,7 @@ jobs: name: Build and deploy Windows wheels os: windows language: shell - install: python3 -m pip install cibuildwheel==2.14.1 twine + install: python3 -m pip install cibuildwheel==2.15.0 twine script: python3 -m cibuildwheel --output-dir wheelhouse after_success: python3 -m twine upload --skip-existing wheelhouse/*.whl diff --git a/setup.cfg b/setup.cfg index b5587ba57..e9e0c7cf5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = cibuildwheel -version = 2.14.1 +version = 2.15.0 description = Build Python wheels on CI with minimal configuration. long_description = file: README.md long_description_content_type = text/markdown From 26c5e18e62a51e082b721f7c0e6160fe92e4e5b8 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Fri, 11 Aug 2023 02:43:29 -0400 Subject: [PATCH 29/37] chore: use 2x faster pre-commit mirror (#1569) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ac0e72632..a2419fec5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: - id: mixed-line-ending - id: trailing-whitespace -- repo: https://github.com/psf/black +- repo: https://github.com/psf/black-pre-commit-mirror rev: 23.7.0 hooks: - id: black From 7508943e0613ee0ab79b5cdcd3a6ad081331f9a7 Mon Sep 17 00:00:00 2001 From: Mark Barsi-Siminszky <66876095+MBS9@users.noreply.github.com> Date: Mon, 14 Aug 2023 08:30:33 +0200 Subject: [PATCH 30/37] fix: path construction when testing Linux wheels on Windows hosts (#1573) fix: path construction when testing linux wheels --- cibuildwheel/linux.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cibuildwheel/linux.py b/cibuildwheel/linux.py index 88bd201b5..a4d7c184d 100644 --- a/cibuildwheel/linux.py +++ b/cibuildwheel/linux.py @@ -185,7 +185,7 @@ def build_in_container( constraints_file = build_options.dependency_constraints.get_for_python_version( config.version ) - container_constraints_file = PurePath("/constraints.txt") + container_constraints_file = PurePosixPath("/constraints.txt") container.copy_into(constraints_file, container_constraints_file) dependency_constraint_flags = ["-c", container_constraints_file] From 9afd31017a92372002d0d22593b79cb7ef91f373 Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Mon, 14 Aug 2023 02:36:44 -0400 Subject: [PATCH 31/37] Update Tornado's entry in projects.yml (#1571) We've moved to github actions and added windows support. Also add a note about our use of the stable ABI which may be the most interesting part of our config. --- docs/data/projects.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/data/projects.yml b/docs/data/projects.yml index cf9937354..dbfb29d2b 100644 --- a/docs/data/projects.yml +++ b/docs/data/projects.yml @@ -413,8 +413,9 @@ - name: Tornado gh: tornadoweb/tornado - ci: [travisci] - os: [apple, linux] + ci: [github] + os: [linux, apple, windows] + notes: Tornado is a Python web framework and asynchronous networking library. Uses stable ABI for a small C extension. - name: pytorch-fairseq gh: pytorch/fairseq From 12d548865f92a33468552176d7979c8c82423317 Mon Sep 17 00:00:00 2001 From: "cibuildwheel-bot[bot]" <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 12:15:24 -0400 Subject: [PATCH 32/37] [Bot] Update dependencies (#1575) Update dependencies Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> --- .../resources/constraints-python310.txt | 2 +- .../resources/constraints-python311.txt | 2 +- .../resources/constraints-python312.txt | 2 +- .../resources/constraints-python37.txt | 2 +- .../resources/constraints-python38.txt | 2 +- .../resources/constraints-python39.txt | 2 +- cibuildwheel/resources/constraints.txt | 2 +- .../resources/pinned_docker_images.cfg | 48 +++++++++---------- docs/working-examples.md | 24 +++++----- 9 files changed, 43 insertions(+), 43 deletions(-) diff --git a/cibuildwheel/resources/constraints-python310.txt b/cibuildwheel/resources/constraints-python310.txt index a2836162a..29c221b6b 100644 --- a/cibuildwheel/resources/constraints-python310.txt +++ b/cibuildwheel/resources/constraints-python310.txt @@ -16,7 +16,7 @@ platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.24.2 +virtualenv==20.24.3 # via -r cibuildwheel/resources/constraints.in wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python311.txt b/cibuildwheel/resources/constraints-python311.txt index 11d4beca7..c4d8e883a 100644 --- a/cibuildwheel/resources/constraints-python311.txt +++ b/cibuildwheel/resources/constraints-python311.txt @@ -16,7 +16,7 @@ platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.24.2 +virtualenv==20.24.3 # via -r cibuildwheel/resources/constraints.in wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python312.txt b/cibuildwheel/resources/constraints-python312.txt index 23a755f1b..4c47576f5 100644 --- a/cibuildwheel/resources/constraints-python312.txt +++ b/cibuildwheel/resources/constraints-python312.txt @@ -16,7 +16,7 @@ platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.24.2 +virtualenv==20.24.3 # via -r cibuildwheel/resources/constraints.in wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python37.txt b/cibuildwheel/resources/constraints-python37.txt index b4e57965d..7acc677bf 100644 --- a/cibuildwheel/resources/constraints-python37.txt +++ b/cibuildwheel/resources/constraints-python37.txt @@ -21,7 +21,7 @@ typing-extensions==4.7.1 # delocate # importlib-metadata # platformdirs -virtualenv==20.24.2 +virtualenv==20.24.3 # via -r cibuildwheel/resources/constraints.in wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python38.txt b/cibuildwheel/resources/constraints-python38.txt index f5e63ad5b..0a9d00ec4 100644 --- a/cibuildwheel/resources/constraints-python38.txt +++ b/cibuildwheel/resources/constraints-python38.txt @@ -16,7 +16,7 @@ platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.24.2 +virtualenv==20.24.3 # via -r cibuildwheel/resources/constraints.in wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python39.txt b/cibuildwheel/resources/constraints-python39.txt index 1669efa8b..402316bdb 100644 --- a/cibuildwheel/resources/constraints-python39.txt +++ b/cibuildwheel/resources/constraints-python39.txt @@ -16,7 +16,7 @@ platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.24.2 +virtualenv==20.24.3 # via -r cibuildwheel/resources/constraints.in wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints.txt b/cibuildwheel/resources/constraints.txt index 23a755f1b..4c47576f5 100644 --- a/cibuildwheel/resources/constraints.txt +++ b/cibuildwheel/resources/constraints.txt @@ -16,7 +16,7 @@ platformdirs==3.10.0 # via virtualenv typing-extensions==4.7.1 # via delocate -virtualenv==20.24.2 +virtualenv==20.24.3 # via -r cibuildwheel/resources/constraints.in wheel==0.41.1 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 7b8ead79b..2f97710d3 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,54 +1,54 @@ [x86_64] manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-08-06-0a0ac62 manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-13-d68f0ef 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:2023-08-07-e3f636d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-08-07-e3f636d -musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-08-07-e3f636d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-08-13-d68f0ef +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-08-13-d68f0ef +musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-08-13-d68f0ef [i686] manylinux1 = quay.io/pypa/manylinux1_i686:2023-08-06-0a0ac62 manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-13-d68f0ef manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-08-07-e3f636d -musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-08-07-e3f636d +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-08-13-d68f0ef +musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-08-13-d68f0ef [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-13-d68f0ef 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:2023-08-07-e3f636d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-08-13-d68f0ef [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-13-d68f0ef manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-13-d68f0ef manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-07-e3f636d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-08-07-e3f636d -musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-08-07-e3f636d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-13-d68f0ef +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-08-13-d68f0ef +musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-08-13-d68f0ef [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-08-13-d68f0ef manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-08-07-e3f636d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-08-07-e3f636d -musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-08-07-e3f636d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-08-13-d68f0ef +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-08-13-d68f0ef +musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-08-13-d68f0ef [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-08-13-d68f0ef manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-08-07-e3f636d -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-08-07-e3f636d -musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-08-07-e3f636d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-08-13-d68f0ef +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-08-13-d68f0ef +musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-08-13-d68f0ef [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-07-e3f636d +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-13-d68f0ef manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-07-e3f636d +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-13-d68f0ef diff --git a/docs/working-examples.md b/docs/working-examples.md index 50575ea2c..e008053ff 100644 --- a/docs/working-examples.md +++ b/docs/working-examples.md @@ -40,22 +40,22 @@ title: Working examples | [pyzmq][] | ![github icon][] ![circleci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython on CPython and CFFI on PyPy. ARM wheels for linux are built natively on CircleCI. | | [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` | | [Implicit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes GPU support for linux wheels | -| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy | | [Dependency Injector][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Dependency injection framework for Python, uses Windows TravisCI | +| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy | | [tinyobjloader][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Tiny but powerful single file wavefront obj loader | | [coverage.py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The coverage tool for Python | | [PyCryptodome][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A self-contained cryptographic library for Python | | [PyYAML][] | ![github icon][] | ![apple icon][] | Canonical source repository for PyYAML | -| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more | | [Line Profiler][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Line-by-line profiling for Python | +| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more | | [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. | | [h5py][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | HDF5 for Python -- The h5py package is a Pythonic interface to the HDF5 binary data format. | | [Wrapt][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python module for decorators, wrappers and monkey patching. | | [pikepdf][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by QPDF | | [envd][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | 🏕️ Reproducible development environment for AI/ML (LLMOps) | +| [CTranslate2][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html) and CUDA kernels compiled for multiple GPU architectures. | | [SimpleJSON][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | simplejson is a simple, fast, extensible JSON encoder/decoder for Python | | [OpenColorIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A color management framework for visual effects and animation. | -| [CTranslate2][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html) and CUDA kernels compiled for multiple GPU architectures. | | [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python | | [ruptures][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Extensive Cython + NumPy [pyproject.toml](https://github.com/deepcharles/ruptures/blob/master/pyproject.toml) example. | | [OpenTimelineIO][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Open Source API and interchange format for editorial timeline information. | @@ -71,8 +71,8 @@ title: Working examples | [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | | [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. | | [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | -| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python | | [time-machine][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Time mocking library using only the CPython C API. | +| [KDEpy][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Kernel Density Estimation in Python | | [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | | [python-snappy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for the snappy google library | | [tgcalls][] | ![github icon][] | ![apple icon][] ![windows icon][] | Python `pybind11` binding to Telegram's WebRTC library with third party dependencies like `OpenSSL`, `MozJPEG`, `FFmpeg`, etc. | @@ -88,8 +88,8 @@ title: Working examples | [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python | | [TgCrypto][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | | [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. | -| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. | | [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 | +| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. | | [pillow-heif][] | ![github icon][] ![cirrusci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Bindings to libheif library with third party dependencies. Fully automated CI for tests and publishing including Apple Silicon builds. | | [Python-WebRTC][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | a Python extension that provides bindings to WebRTC M92 | | [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python | @@ -100,8 +100,8 @@ title: Working examples | [polaroid][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Full range of wheels for setuptools rust, with auto release and PyPI deploy. | | [etebase-py][] | ![travisci icon][] | ![linux icon][] | Python bindings to a Rust library using `setuptools-rust`, and `sccache` for improved speed. | | [pybind11 scikit_build_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | An example combining scikit-build and pybind11 | -| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. | | [cf-units][] | ![github icon][] | ![apple icon][] ![linux icon][] | Units of measure as required by the Climate and Forecast (CF) Metadata Conventions | +| [clang-format][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Scikit-build wrapper around LLVM's CMake, all platforms, generic wheels. | | [ninja][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Multitagged binary builds for all supported platforms, using cibw 2 config configuration. | | [numpythia][] | ![github icon][] | ![apple icon][] ![linux icon][] | The interface between PYTHIA and NumPy | | [pyjet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The interface between FastJet and NumPy | @@ -146,22 +146,22 @@ title: Working examples [pyzmq]: https://github.com/zeromq/pyzmq [Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python [Implicit]: https://github.com/benfred/implicit -[vispy]: https://github.com/vispy/vispy [Dependency Injector]: https://github.com/ets-labs/python-dependency-injector +[vispy]: https://github.com/vispy/vispy [tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader [coverage.py]: https://github.com/nedbat/coveragepy [PyCryptodome]: https://github.com/Legrandin/pycryptodome [PyYAML]: https://github.com/yaml/pyyaml -[numexpr]: https://github.com/pydata/numexpr [Line Profiler]: https://github.com/pyutils/line_profiler +[numexpr]: https://github.com/pydata/numexpr [PyAV]: https://github.com/PyAV-Org/PyAV [h5py]: https://github.com/h5py/h5py [Wrapt]: https://github.com/GrahamDumpleton/wrapt [pikepdf]: https://github.com/pikepdf/pikepdf [envd]: https://github.com/tensorchord/envd +[CTranslate2]: https://github.com/OpenNMT/CTranslate2 [SimpleJSON]: https://github.com/simplejson/simplejson [OpenColorIO]: https://github.com/AcademySoftwareFoundation/OpenColorIO -[CTranslate2]: https://github.com/OpenNMT/CTranslate2 [aioquic]: https://github.com/aiortc/aioquic [ruptures]: https://github.com/deepcharles/ruptures [OpenTimelineIO]: https://github.com/PixarAnimationStudios/OpenTimelineIO @@ -177,8 +177,8 @@ title: Working examples [markupsafe]: https://github.com/pallets/markupsafe [Picologging]: https://github.com/microsoft/picologging [pybind11 cmake_example]: https://github.com/pybind/cmake_example -[KDEpy]: https://github.com/tommyod/KDEpy [time-machine]: https://github.com/adamchainz/time-machine +[KDEpy]: https://github.com/tommyod/KDEpy [python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson [python-snappy]: https://github.com/andrix/python-snappy [tgcalls]: https://github.com/MarshalX/tgcalls @@ -194,8 +194,8 @@ title: Working examples [PyGLM]: https://github.com/Zuzu-Typ/PyGLM [TgCrypto]: https://github.com/pyrogram/tgcrypto [bx-python]: https://github.com/bxlab/bx-python -[boost-histogram]: https://github.com/scikit-hep/boost-histogram [iDynTree]: https://github.com/robotology/idyntree +[boost-histogram]: https://github.com/scikit-hep/boost-histogram [pillow-heif]: https://github.com/bigcat88/pillow_heif [Python-WebRTC]: https://github.com/MarshalX/python-webrtc [pybase64]: https://github.com/mayeut/pybase64 @@ -206,8 +206,8 @@ title: Working examples [polaroid]: https://github.com/daggy1234/polaroid [etebase-py]: https://github.com/etesync/etebase-py [pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example -[clang-format]: https://github.com/ssciwr/clang-format-wheel [cf-units]: https://github.com/SciTools/cf-units +[clang-format]: https://github.com/ssciwr/clang-format-wheel [ninja]: https://github.com/scikit-build/ninja-python-distributions [numpythia]: https://github.com/scikit-hep/numpythia [pyjet]: https://github.com/scikit-hep/pyjet From ce71f445deee7ac0dabd1ee900d6672370e60478 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Mon, 14 Aug 2023 12:15:53 -0400 Subject: [PATCH 33/37] fix: --only shouldn't require prerelease pythons setting (#1564) * fix: --only shouldn't require prerelease pythons setting Signed-off-by: Henry Schreiner * Add test --------- Signed-off-by: Henry Schreiner Co-authored-by: Joe Rickerby --- cibuildwheel/options.py | 1 + unit_test/main_tests/main_platform_test.py | 1 + 2 files changed, 2 insertions(+) diff --git a/cibuildwheel/options.py b/cibuildwheel/options.py index fd6fabfe1..581e576b8 100644 --- a/cibuildwheel/options.py +++ b/cibuildwheel/options.py @@ -450,6 +450,7 @@ def globals(self) -> GlobalOptions: build_config = args.only skip_config = "" architectures = Architecture.all_archs(self.platform) + prerelease_pythons = True build_selector = BuildSelector( build_config=build_config, diff --git a/unit_test/main_tests/main_platform_test.py b/unit_test/main_tests/main_platform_test.py index 79424821c..782b32520 100644 --- a/unit_test/main_tests/main_platform_test.py +++ b/unit_test/main_tests/main_platform_test.py @@ -214,6 +214,7 @@ def test_only_argument(intercepted_build_args, monkeypatch, only, plat): assert options.globals.build_selector.skip_config == "" assert options.platform == plat assert options.globals.architectures == Architecture.all_archs(plat) + assert options.globals.build_selector.prerelease_pythons is True @pytest.mark.parametrize("only", ("cp311-manylxinux_x86_64", "some_linux_thing")) From 25428deff2fed9064f9387393f95c1c82e494949 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 17:23:52 -0400 Subject: [PATCH 34/37] [pre-commit.ci] pre-commit autoupdate (#1579) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.282 → v0.0.284](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.282...v0.0.284) - [github.com/pre-commit/mirrors-mypy: v1.4.1 → v1.5.0](https://github.com/pre-commit/mirrors-mypy/compare/v1.4.1...v1.5.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a2419fec5..523245ac1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.282 + rev: v0.0.284 hooks: - id: ruff args: ["--fix", "--show-fixes"] @@ -31,7 +31,7 @@ repos: args: [--include-version-classifiers, --min-py-version=3.8, --max-py-version=3.11] - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.4.1 + rev: v1.5.0 hooks: - id: mypy name: mypy 3.8 on cibuildwheel/ From 98b83afe63e86b75643621e9d852c10772acc9b2 Mon Sep 17 00:00:00 2001 From: "cibuildwheel-bot[bot]" <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 17:24:01 -0400 Subject: [PATCH 35/37] [Bot] Update dependencies (#1581) Update dependencies Co-authored-by: cibuildwheel-bot[bot] <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> --- README.md | 2 +- .../resources/constraints-python310.txt | 2 +- .../resources/constraints-python311.txt | 2 +- .../resources/constraints-python312.txt | 2 +- .../resources/constraints-python38.txt | 2 +- .../resources/constraints-python39.txt | 2 +- cibuildwheel/resources/constraints.txt | 2 +- .../resources/pinned_docker_images.cfg | 52 +++++++++---------- docs/working-examples.md | 6 +-- 9 files changed, 36 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 8346d755e..58ca9506e 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ Here are some repos that use cibuildwheel. | [scikit-learn][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The machine learning library. A complex but clean config using many of cibuildwheel's features to build a large project with Cython and C++ extensions. | | [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. | | [NumPy][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The fundamental package for scientific computing with Python. | -| [Tornado][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. | +| [Tornado][] | ![github icon][] | ![linux icon][] ![apple icon][] ![windows icon][] | Tornado is a Python web framework and asynchronous networking library. Uses stable ABI for a small C extension. | | [Matplotlib][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The venerable Matplotlib, a Python library with C++ portions | | [NCNN][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | ncnn is a high-performance neural network inference framework optimized for the mobile platform | | [Prophet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth. | diff --git a/cibuildwheel/resources/constraints-python310.txt b/cibuildwheel/resources/constraints-python310.txt index 29c221b6b..02a99d2bc 100644 --- a/cibuildwheel/resources/constraints-python310.txt +++ b/cibuildwheel/resources/constraints-python310.txt @@ -24,5 +24,5 @@ wheel==0.41.1 # The following packages are considered to be unsafe in a requirements file: pip==23.2.1 # via -r cibuildwheel/resources/constraints.in -setuptools==68.0.0 +setuptools==68.1.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python311.txt b/cibuildwheel/resources/constraints-python311.txt index c4d8e883a..4236f3ec6 100644 --- a/cibuildwheel/resources/constraints-python311.txt +++ b/cibuildwheel/resources/constraints-python311.txt @@ -24,5 +24,5 @@ wheel==0.41.1 # The following packages are considered to be unsafe in a requirements file: pip==23.2.1 # via -r cibuildwheel/resources/constraints.in -setuptools==68.0.0 +setuptools==68.1.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python312.txt b/cibuildwheel/resources/constraints-python312.txt index 4c47576f5..8de5466f9 100644 --- a/cibuildwheel/resources/constraints-python312.txt +++ b/cibuildwheel/resources/constraints-python312.txt @@ -24,5 +24,5 @@ wheel==0.41.1 # The following packages are considered to be unsafe in a requirements file: pip==23.2.1 # via -r cibuildwheel/resources/constraints.in -setuptools==68.0.0 +setuptools==68.1.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python38.txt b/cibuildwheel/resources/constraints-python38.txt index 0a9d00ec4..fa8eb6558 100644 --- a/cibuildwheel/resources/constraints-python38.txt +++ b/cibuildwheel/resources/constraints-python38.txt @@ -24,5 +24,5 @@ wheel==0.41.1 # The following packages are considered to be unsafe in a requirements file: pip==23.2.1 # via -r cibuildwheel/resources/constraints.in -setuptools==68.0.0 +setuptools==68.1.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python39.txt b/cibuildwheel/resources/constraints-python39.txt index 402316bdb..58870b808 100644 --- a/cibuildwheel/resources/constraints-python39.txt +++ b/cibuildwheel/resources/constraints-python39.txt @@ -24,5 +24,5 @@ wheel==0.41.1 # The following packages are considered to be unsafe in a requirements file: pip==23.2.1 # via -r cibuildwheel/resources/constraints.in -setuptools==68.0.0 +setuptools==68.1.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints.txt b/cibuildwheel/resources/constraints.txt index 4c47576f5..8de5466f9 100644 --- a/cibuildwheel/resources/constraints.txt +++ b/cibuildwheel/resources/constraints.txt @@ -24,5 +24,5 @@ wheel==0.41.1 # The following packages are considered to be unsafe in a requirements file: pip==23.2.1 # via -r cibuildwheel/resources/constraints.in -setuptools==68.0.0 +setuptools==68.1.2 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 2f97710d3..0ec09d169 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,54 +1,54 @@ [x86_64] -manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-08-06-0a0ac62 +manylinux1 = quay.io/pypa/manylinux1_x86_64:2023-08-20-dcf13fc manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-20-323dd42 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:2023-08-13-d68f0ef -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-08-13-d68f0ef -musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-08-13-d68f0ef +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-08-20-323dd42 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2023-08-20-323dd42 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2023-08-20-323dd42 [i686] -manylinux1 = quay.io/pypa/manylinux1_i686:2023-08-06-0a0ac62 +manylinux1 = quay.io/pypa/manylinux1_i686:2023-08-20-dcf13fc manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-20-323dd42 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-08-13-d68f0ef -musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-08-13-d68f0ef +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2023-08-20-323dd42 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2023-08-20-323dd42 [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2023-08-20-323dd42 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:2023-08-13-d68f0ef +manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2023-08-20-323dd42 [pypy_i686] manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177 -manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_i686:2023-08-20-323dd42 manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-20-323dd42 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-13-d68f0ef -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-08-13-d68f0ef -musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-08-13-d68f0ef +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-20-323dd42 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2023-08-20-323dd42 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2023-08-20-323dd42 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2023-08-20-323dd42 manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-08-13-d68f0ef -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-08-13-d68f0ef -musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-08-13-d68f0ef +manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2023-08-20-323dd42 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2023-08-20-323dd42 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2023-08-20-323dd42 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2023-08-20-323dd42 manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-08-13-d68f0ef -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-08-13-d68f0ef -musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-08-13-d68f0ef +manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2023-08-20-323dd42 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2023-08-20-323dd42 +musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2023-08-20-323dd42 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-13-d68f0ef +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2023-08-20-323dd42 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463 -manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-13-d68f0ef +manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2023-08-20-323dd42 diff --git a/docs/working-examples.md b/docs/working-examples.md index e008053ff..0af26078b 100644 --- a/docs/working-examples.md +++ b/docs/working-examples.md @@ -11,7 +11,7 @@ title: Working examples | [scikit-learn][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The machine learning library. A complex but clean config using many of cibuildwheel's features to build a large project with Cython and C++ extensions. | | [pytorch-fairseq][] | ![github icon][] | ![apple icon][] ![linux icon][] | Facebook AI Research Sequence-to-Sequence Toolkit written in Python. | | [NumPy][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The fundamental package for scientific computing with Python. | -| [Tornado][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. | +| [Tornado][] | ![github icon][] | ![linux icon][] ![apple icon][] ![windows icon][] | Tornado is a Python web framework and asynchronous networking library. Uses stable ABI for a small C extension. | | [Matplotlib][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The venerable Matplotlib, a Python library with C++ portions | | [NCNN][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | ncnn is a high-performance neural network inference framework optimized for the mobile platform | | [Prophet][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth. | @@ -66,8 +66,8 @@ title: Working examples | [DeepForest][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1) | | [AutoPy][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | | [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system | -| [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS ¶ | | [mosec][] | ![github icon][] | ![linux icon][] ![apple icon][] | A high-performance ML model serving framework, offers dynamic batching and CPU/GPU pipelines to fully exploit your compute machine | +| [Rtree][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Rtree: spatial index for Python GIS ¶ | | [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | | [Picologging][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A high-performance logging library for Python. | | [pybind11 cmake_example][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Example pybind11 module built with a CMake-based build system | @@ -172,8 +172,8 @@ title: Working examples [DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest [AutoPy]: https://github.com/autopilot-rs/autopy [H3-py]: https://github.com/uber/h3-py -[Rtree]: https://github.com/Toblerity/rtree [mosec]: https://github.com/mosecorg/mosec +[Rtree]: https://github.com/Toblerity/rtree [markupsafe]: https://github.com/pallets/markupsafe [Picologging]: https://github.com/microsoft/picologging [pybind11 cmake_example]: https://github.com/pybind/cmake_example From 18ff2c57c2558bd401d8c2639cc4271761f332e3 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Wed, 23 Aug 2023 03:41:51 +1200 Subject: [PATCH 36/37] docs: Update info for CIBW_TEST_EXTRAS (#1582) Update setuptools link to new URL, and add `pyproject.toml` as a source file (as already done in the example). --- docs/options.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/options.md b/docs/options.md index 66dec0b74..8df4e8f25 100644 --- a/docs/options.md +++ b/docs/options.md @@ -1345,11 +1345,11 @@ Platform-specific environment variables are also available:
> Install your wheel for testing using `extras_require` List of -[extras_require](https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies) +[extras_require](https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#declaring-required-dependency) options that should be included when installing the wheel prior to running the tests. This can be used to avoid having to redefine test dependencies in -`CIBW_TEST_REQUIRES` if they are already defined in `setup.py` or -`setup.cfg`. +`CIBW_TEST_REQUIRES` if they are already defined in `pyproject.toml`, +`setup.cfg` or `setup.py`. Platform-specific environment variables are also available:
`CIBW_TEST_EXTRAS_MACOS` | `CIBW_TEST_EXTRAS_WINDOWS` | `CIBW_TEST_EXTRAS_LINUX` From e8bb208374117ef8e54e28f8fada054fbe701cc8 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 11:57:20 -0400 Subject: [PATCH 37/37] [pre-commit.ci] pre-commit autoupdate (#1583) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/astral-sh/ruff-pre-commit: v0.0.284 → v0.0.285](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.284...v0.0.285) - [github.com/pre-commit/mirrors-mypy: v1.5.0 → v1.5.1](https://github.com/pre-commit/mirrors-mypy/compare/v1.5.0...v1.5.1) * chore: add check arguments Signed-off-by: Henry Schreiner * Update bin/bump_version.py Co-authored-by: Joe Rickerby --------- Signed-off-by: Henry Schreiner Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Henry Schreiner Co-authored-by: Joe Rickerby --- .pre-commit-config.yaml | 4 ++-- bin/bump_version.py | 5 +++-- bin/make_dependency_update_pr.py | 10 +++++----- bin/run_example_ci_configs.py | 10 +++++----- bin/sample_build.py | 6 +++++- bin/update_how_it_works_image.py | 2 +- 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 523245ac1..e66479bba 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: - id: black - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.284 + rev: v0.0.285 hooks: - id: ruff args: ["--fix", "--show-fixes"] @@ -31,7 +31,7 @@ repos: args: [--include-version-classifiers, --min-py-version=3.8, --max-py-version=3.11] - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.5.0 + rev: v1.5.1 hooks: - id: mypy name: mypy 3.8 on cibuildwheel/ diff --git a/bin/bump_version.py b/bin/bump_version.py index 2af6e37d8..cf0727db7 100755 --- a/bin/bump_version.py +++ b/bin/bump_version.py @@ -60,7 +60,7 @@ def bump_version() -> None: print(e) print("Failed to get previous version tag information.") - git_changes_result = subprocess.run(["git diff-index --quiet HEAD --"], shell=True) + git_changes_result = subprocess.run(["git diff-index --quiet HEAD --"], shell=True, check=False) repo_has_uncommitted_changes = git_changes_result.returncode != 0 if repo_has_uncommitted_changes: @@ -142,7 +142,8 @@ def bump_version() -> None: "pre-commit", "run", "--files=docs/changelog.md", - ] + ], + check=False, ) # run pre-commit to check that no errors occurred on the second run diff --git a/bin/make_dependency_update_pr.py b/bin/make_dependency_update_pr.py index be8a57ad5..cfbdef913 100755 --- a/bin/make_dependency_update_pr.py +++ b/bin/make_dependency_update_pr.py @@ -12,13 +12,13 @@ import click -def shell(cmd, **kwargs): - return run([cmd], shell=True, **kwargs) +def shell(cmd, *, check: bool, **kwargs): + return run([cmd], shell=True, check=check, **kwargs) def git_repo_has_changes(): - unstaged_changes = shell("git diff-index --quiet HEAD --").returncode != 0 - staged_changes = shell("git diff-index --quiet --cached HEAD --").returncode != 0 + unstaged_changes = shell("git diff-index --quiet HEAD --", check=False).returncode != 0 + staged_changes = shell("git diff-index --quiet --cached HEAD --", check=False).returncode != 0 return unstaged_changes or staged_changes @@ -73,7 +73,7 @@ def main(): print("Done.") finally: # remove any local changes - shell("git checkout -- .") + shell("git checkout -- .", check=True) shell(f"git checkout {previous_branch}", check=True) shell(f"git branch -D --force {branch_name}", check=True) diff --git a/bin/run_example_ci_configs.py b/bin/run_example_ci_configs.py index 07f3a6cde..ef3c6eaad 100755 --- a/bin/run_example_ci_configs.py +++ b/bin/run_example_ci_configs.py @@ -16,13 +16,13 @@ import click -def shell(cmd, **kwargs): - return run([cmd], shell=True, **kwargs) +def shell(cmd, *, check: bool, **kwargs): + return run([cmd], shell=True, check=check, **kwargs) def git_repo_has_changes(): - unstaged_changes = shell("git diff-index --quiet HEAD --").returncode != 0 - staged_changes = shell("git diff-index --quiet --cached HEAD --").returncode != 0 + unstaged_changes = shell("git diff-index --quiet HEAD --", check=False).returncode != 0 + staged_changes = shell("git diff-index --quiet --cached HEAD --", check=False).returncode != 0 return unstaged_changes or staged_changes @@ -163,7 +163,7 @@ def run_example_ci_configs(config_files=None): finally: # remove any local changes shutil.rmtree(example_project, ignore_errors=True) - shell("git checkout -- .") + shell("git checkout -- .", check=True) shell(f"git checkout {previous_branch}", check=True) shell(f"git branch -D --force {branch_name}", check=True) diff --git a/bin/sample_build.py b/bin/sample_build.py index 90c636ed6..9e8e64204 100755 --- a/bin/sample_build.py +++ b/bin/sample_build.py @@ -24,4 +24,8 @@ check=True, ) - sys.exit(subprocess.run([sys.executable, "-m", "cibuildwheel"], cwd=project_dir).returncode) + sys.exit( + subprocess.run( + [sys.executable, "-m", "cibuildwheel"], cwd=project_dir, check=False + ).returncode + ) diff --git a/bin/update_how_it_works_image.py b/bin/update_how_it_works_image.py index b7b433fb6..39ecfec9b 100755 --- a/bin/update_how_it_works_image.py +++ b/bin/update_how_it_works_image.py @@ -19,7 +19,7 @@ def main(): - subprocess.run(["mkdocs", "build"]) + subprocess.run(["mkdocs", "build"], check=True) hti = Html2Image(custom_flags=["--force-device-scale-factor=2"])