From 511606c5a7e2a2821fe2abc0d9cbb24716ad56ae Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Thu, 25 Mar 2021 12:46:54 +0100 Subject: [PATCH 01/15] Try out PyPy 7.3.4rc1 (dropping PyPy 3.6) --- cibuildwheel/resources/build-platforms.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 1720f4ec..ae0322f7 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win32", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.3-win32.zip" }, + { identifier = "pp37-win32", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc1-win32.zip" }, ] From 1ebad9473dc638823bdbe496997285f13e7ccfe4 Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Thu, 25 Mar 2021 13:19:39 +0100 Subject: [PATCH 02/15] PyPy now has 64-bit Windows binaries --- cibuildwheel/resources/build-platforms.toml | 2 +- docs/options.md | 2 +- unit_test/build_selector_test.py | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index ae0322f7..2a944c44 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win32", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc1-win32.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc1-win64.zip" }, ] diff --git a/docs/options.md b/docs/options.md index 669724d6..cf39648b 100644 --- a/docs/options.md +++ b/docs/options.md @@ -124,7 +124,7 @@ When setting the options, you can use shell-style globbing syntax, as per [fnmat | Python 3.7 | cp37-macosx_x86_64 | cp37-win_amd64
cp37-win32 | cp37-manylinux_x86_64
cp37-manylinux_i686 | cp37-manylinux_aarch64
cp37-manylinux_ppc64le
cp37-manylinux_s390x | | Python 3.8 | cp38-macosx_x86_64 | cp38-win_amd64
cp38-win32 | cp38-manylinux_x86_64
cp38-manylinux_i686 | cp38-manylinux_aarch64
cp38-manylinux_ppc64le
cp38-manylinux_s390x | | Python 3.9 | cp39-macosx_x86_64
cp39-macosx_universal2
cp39-macosx_arm64 | cp39-win_amd64
cp39-win32 | cp39-manylinux_x86_64
cp39-manylinux_i686 | cp39-manylinux_aarch64
cp39-manylinux_ppc64le
cp39-manylinux_s390x | -| PyPy3.7 v7.3 | pp37-macosx_x86_64 | pp37-win32 | pp37-manylinux_x86_64 | | +| PyPy3.7 v7.3 | pp37-macosx_x86_64 | pp37-win_amd64 | pp37-manylinux_x86_64 | | The list of supported and currently selected build identifiers can also be retrieved by passing the `--print-build-identifiers` flag to cibuildwheel. diff --git a/unit_test/build_selector_test.py b/unit_test/build_selector_test.py index 67fbde6f..c57bb146 100644 --- a/unit_test/build_selector_test.py +++ b/unit_test/build_selector_test.py @@ -92,8 +92,7 @@ def test_build_limited_python(): assert not build_selector("cp36-win32") assert build_selector("cp37-win32") assert build_selector("cp38-win32") - assert not build_selector("pp36-win32") - assert build_selector("pp37-win32") + assert build_selector('pp37-win_amd64') def test_build_limited_python_partial(): From 921a6269bdb2b6ac78f66081098734fdf3981aeb Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Sun, 4 Apr 2021 23:43:23 +0200 Subject: [PATCH 03/15] PyPy 7.3.4rc2 --- cibuildwheel/resources/build-platforms.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 2a944c44..e239ef07 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win_amd64", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc1-win64.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc2-win64.zip" }, ] From 6789fb51a29d238b8412517d04f9e0d0be193f31 Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Mon, 5 Apr 2021 13:23:19 +0200 Subject: [PATCH 04/15] Fix Windows tests --- test/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/utils.py b/test/utils.py index e22d15e0..61c9ea10 100644 --- a/test/utils.py +++ b/test/utils.py @@ -157,7 +157,7 @@ def expected_wheels( if python_abi_tag.startswith("cp"): platform_tags = ["win32", "win_amd64"] else: - platform_tags = ["win32"] + platform_tags = ['win_amd64'] elif platform == "macos": if python_abi_tag == "cp39-cp39" and machine_arch == "arm64": From ac40e31b11019722fd4353dc7f19fddc7edd95ca Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Mon, 5 Apr 2021 14:59:21 +0200 Subject: [PATCH 05/15] Change overlooked architecture entry of PyPy in build-platforms.toml --- cibuildwheel/resources/build-platforms.toml | 2 +- cibuildwheel/windows.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index e239ef07..cf253d9e 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win_amd64", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc2-win64.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc2-win64.zip" }, ] diff --git a/cibuildwheel/windows.py b/cibuildwheel/windows.py index 04884289..73691d8f 100644 --- a/cibuildwheel/windows.py +++ b/cibuildwheel/windows.py @@ -95,7 +95,7 @@ def install_cpython(version: str, arch: str, nuget: Path) -> Path: def install_pypy(version: str, arch: str, url: str) -> Path: - assert arch == "32" + assert arch == '64' and 'win64' in url # Inside the PyPy zip file is a directory with the same name zip_filename = url.rsplit("/", 1)[-1] extension = ".zip" From 1a6b9d2db38cf8c2ea3333092537658f751b24fc Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Thu, 8 Apr 2021 18:45:47 +0200 Subject: [PATCH 06/15] PyPy 7.3.4 released --- cibuildwheel/resources/build-platforms.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index cf253d9e..b231f165 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4rc2-win64.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4-win64.zip" }, ] From acbfce04e09f6aa10c98b220969f0cbe662f6c0b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 14:42:09 +0000 Subject: [PATCH 07/15] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- cibuildwheel/windows.py | 2 +- test/utils.py | 2 +- unit_test/build_selector_test.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cibuildwheel/windows.py b/cibuildwheel/windows.py index 73691d8f..98132689 100644 --- a/cibuildwheel/windows.py +++ b/cibuildwheel/windows.py @@ -95,7 +95,7 @@ def install_cpython(version: str, arch: str, nuget: Path) -> Path: def install_pypy(version: str, arch: str, url: str) -> Path: - assert arch == '64' and 'win64' in url + assert arch == "64" and "win64" in url # Inside the PyPy zip file is a directory with the same name zip_filename = url.rsplit("/", 1)[-1] extension = ".zip" diff --git a/test/utils.py b/test/utils.py index 61c9ea10..d5f87b02 100644 --- a/test/utils.py +++ b/test/utils.py @@ -157,7 +157,7 @@ def expected_wheels( if python_abi_tag.startswith("cp"): platform_tags = ["win32", "win_amd64"] else: - platform_tags = ['win_amd64'] + platform_tags = ["win_amd64"] elif platform == "macos": if python_abi_tag == "cp39-cp39" and machine_arch == "arm64": diff --git a/unit_test/build_selector_test.py b/unit_test/build_selector_test.py index c57bb146..670fe60a 100644 --- a/unit_test/build_selector_test.py +++ b/unit_test/build_selector_test.py @@ -92,7 +92,7 @@ def test_build_limited_python(): assert not build_selector("cp36-win32") assert build_selector("cp37-win32") assert build_selector("cp38-win32") - assert build_selector('pp37-win_amd64') + assert build_selector("pp37-win_amd64") def test_build_limited_python_partial(): From 3ec1bfab12c1d41edb0f31f611b6a8d692db19d8 Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Sun, 16 May 2021 23:26:40 +0200 Subject: [PATCH 08/15] Try out PyPy 7.3.5rc2 --- cibuildwheel/resources/build-platforms.toml | 4 ++-- cibuildwheel/resources/pinned_docker_images.cfg | 2 +- unit_test/main_tests/main_options_test.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index b231f165..b6e73f53 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -31,7 +31,7 @@ python_configurations = [ { identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, { identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, { identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, - { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4-osx64.tar.bz2" }, + { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc2-osx64.tar.bz2" }, ] [windows] @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4-win64.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc2-win64.zip" }, ] diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 6a5c392b..e1706101 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -11,7 +11,7 @@ manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-16-606ba6c manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-16-606ba6c [pypy_x86_64] -manylinux2010 = pypywheels/manylinux2010-pypy_x86_64:2021-05-08-8650a6d +manylinux2010 = yannickjadoul/manylinux2010-pypy_x86_64:7.3.5rc2 [aarch64] manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-16-606ba6c diff --git a/unit_test/main_tests/main_options_test.py b/unit_test/main_tests/main_options_test.py index 9ccdba79..d6288753 100644 --- a/unit_test/main_tests/main_options_test.py +++ b/unit_test/main_tests/main_options_test.py @@ -81,9 +81,9 @@ def test_empty_selector(platform, intercepted_build_args, monkeypatch): ("i686", "manylinux2014", "quay.io/pypa/manylinux2014_i686:*"), ("i686", "manylinux_2_24", "quay.io/pypa/manylinux_2_24_i686:*"), ("i686", "custom_image", "custom_image"), - ("pypy_x86_64", None, "pypywheels/manylinux2010-pypy_x86_64:*"), + ("pypy_x86_64", None, "yannickjadoul/manylinux2010-pypy_x86_64:*"), ("pypy_x86_64", "manylinux1", "manylinux1"), # Does not exist - ("pypy_x86_64", "manylinux2010", "pypywheels/manylinux2010-pypy_x86_64:*"), + ("pypy_x86_64", "manylinux2010", "yannickjadoul/manylinux2010-pypy_x86_64:*"), ("pypy_x86_64", "manylinux2014", "manylinux2014"), # Does not exist (yet) ("pypy_x86_64", "custom_image", "custom_image"), ], From 0b0a37af738ec1e3d6a1bbc068c9f1075e24f36e Mon Sep 17 00:00:00 2001 From: Yannick Jadoul Date: Fri, 21 May 2021 22:51:23 +0200 Subject: [PATCH 09/15] Update to PyPy 7.3.5rc3 --- cibuildwheel/resources/build-platforms.toml | 4 ++-- cibuildwheel/resources/pinned_docker_images.cfg | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index b6e73f53..d45a9dd3 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -31,7 +31,7 @@ python_configurations = [ { identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, { identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, { identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, - { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc2-osx64.tar.bz2" }, + { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc3-osx64.tar.bz2" }, ] [windows] @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc2-win64.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc3-win64.zip" }, ] diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index e1706101..44e629e9 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -11,7 +11,7 @@ manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-16-606ba6c manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-16-606ba6c [pypy_x86_64] -manylinux2010 = yannickjadoul/manylinux2010-pypy_x86_64:7.3.5rc2 +manylinux2010 = yannickjadoul/manylinux2010-pypy_x86_64:7.3.5rc3 [aarch64] manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-16-606ba6c From d608cc5da8d2a13091d2a90427f4a919db7d50d9 Mon Sep 17 00:00:00 2001 From: mayeut Date: Sun, 23 May 2021 20:15:46 +0200 Subject: [PATCH 10/15] Update PyPy to 7.3.5 on macOS/Windows --- cibuildwheel/resources/build-platforms.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index d45a9dd3..36a5c00c 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -31,7 +31,7 @@ python_configurations = [ { identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, { identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, { identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.5/python-3.9.5-macos11.pkg" }, - { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc3-osx64.tar.bz2" }, + { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-osx64.tar.bz2" }, ] [windows] @@ -44,5 +44,5 @@ python_configurations = [ { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, { identifier = "cp39-win32", version = "3.9.5", arch = "32" }, { identifier = "cp39-win_amd64", version = "3.9.5", arch = "64" }, - { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5rc3-win64.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-win64.zip" }, ] From 976d8a0740cbbc108f850e5e3d479f9d4caddaf4 Mon Sep 17 00:00:00 2001 From: mayeut Date: Sun, 23 May 2021 20:20:51 +0200 Subject: [PATCH 11/15] Use quay.io/pypa/manylinux2010_x86_64 for PyPy Update bin/update_docker.py Update docker images to get PyPy 3.7 v7.3.5 --- bin/update_docker.py | 2 +- .../resources/pinned_docker_images.cfg | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/bin/update_docker.py b/bin/update_docker.py index 22034aae..169f5150 100755 --- a/bin/update_docker.py +++ b/bin/update_docker.py @@ -24,7 +24,7 @@ images = [ # 2010 images Image("manylinux2010", "x86_64", "quay.io/pypa/manylinux2010_x86_64", None), Image("manylinux2010", "i686", "quay.io/pypa/manylinux2010_i686", None), - Image("manylinux2010", "pypy_x86_64", "pypywheels/manylinux2010-pypy_x86_64", None), + Image("manylinux2010", "pypy_x86_64", "quay.io/pypa/manylinux2010_x86_64", None), # 2014 images Image("manylinux2014", "x86_64", "quay.io/pypa/manylinux2014_x86_64", None), Image("manylinux2014", "i686", "quay.io/pypa/manylinux2014_i686", None), diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 44e629e9..25c29f6e 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,27 +1,27 @@ [x86_64] -manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-05-16-740a2ec -manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-16-606ba6c -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-16-606ba6c -manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-16-606ba6c +manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-05-23-5b75c59 +manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-23-b4fb34d +manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-23-b4fb34d [i686] -manylinux1 = quay.io/pypa/manylinux1_i686:2021-05-16-740a2ec -manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-05-16-606ba6c -manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-16-606ba6c -manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-16-606ba6c +manylinux1 = quay.io/pypa/manylinux1_i686:2021-05-23-5b75c59 +manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-05-23-b4fb34d +manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-23-b4fb34d +manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-23-b4fb34d [pypy_x86_64] -manylinux2010 = yannickjadoul/manylinux2010-pypy_x86_64:7.3.5rc3 +manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-16-606ba6c -manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-16-606ba6c +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-23-b4fb34d +manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-23-769ff88 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-16-606ba6c -manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-16-606ba6c +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-23-769ff88 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-23-769ff88 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-16-606ba6c -manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-16-606ba6c +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-23-b4fb34d +manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-23-769ff88 From 9abf1990fcc3d0a38fece67383b13151d077fb31 Mon Sep 17 00:00:00 2001 From: mayeut Date: Sun, 23 May 2021 20:26:14 +0200 Subject: [PATCH 12/15] Fix tests linked to manylinux2010_x86_64 usage for PyPy --- unit_test/main_tests/main_options_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unit_test/main_tests/main_options_test.py b/unit_test/main_tests/main_options_test.py index d6288753..65161ec1 100644 --- a/unit_test/main_tests/main_options_test.py +++ b/unit_test/main_tests/main_options_test.py @@ -81,9 +81,9 @@ def test_empty_selector(platform, intercepted_build_args, monkeypatch): ("i686", "manylinux2014", "quay.io/pypa/manylinux2014_i686:*"), ("i686", "manylinux_2_24", "quay.io/pypa/manylinux_2_24_i686:*"), ("i686", "custom_image", "custom_image"), - ("pypy_x86_64", None, "yannickjadoul/manylinux2010-pypy_x86_64:*"), + ("pypy_x86_64", None, "quay.io/pypa/manylinux2010_x86_64:*"), ("pypy_x86_64", "manylinux1", "manylinux1"), # Does not exist - ("pypy_x86_64", "manylinux2010", "yannickjadoul/manylinux2010-pypy_x86_64:*"), + ("pypy_x86_64", "manylinux2010", "quay.io/pypa/manylinux2010_x86_64:*"), ("pypy_x86_64", "manylinux2014", "manylinux2014"), # Does not exist (yet) ("pypy_x86_64", "custom_image", "custom_image"), ], From 7126c1063f143901ee7cc3e04a7f8202fae47095 Mon Sep 17 00:00:00 2001 From: mayeut Date: Sun, 23 May 2021 21:19:15 +0200 Subject: [PATCH 13/15] Add manylinux2014 & manylinux_2_24 support for PyPy --- bin/update_docker.py | 2 ++ cibuildwheel/resources/pinned_docker_images.cfg | 10 ++++++---- docs/options.md | 4 ++-- test/test_manylinuxXXXX_only.py | 5 ++--- unit_test/main_tests/main_options_test.py | 3 ++- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/bin/update_docker.py b/bin/update_docker.py index 169f5150..37e9593f 100755 --- a/bin/update_docker.py +++ b/bin/update_docker.py @@ -31,12 +31,14 @@ images = [ Image("manylinux2014", "aarch64", "quay.io/pypa/manylinux2014_aarch64", None), Image("manylinux2014", "ppc64le", "quay.io/pypa/manylinux2014_ppc64le", None), Image("manylinux2014", "s390x", "quay.io/pypa/manylinux2014_s390x", None), + Image("manylinux2014", "pypy_x86_64", "quay.io/pypa/manylinux2014_x86_64", None), # 2_24 images Image("manylinux_2_24", "x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None), Image("manylinux_2_24", "i686", "quay.io/pypa/manylinux_2_24_i686", None), Image("manylinux_2_24", "aarch64", "quay.io/pypa/manylinux_2_24_aarch64", None), Image("manylinux_2_24", "ppc64le", "quay.io/pypa/manylinux_2_24_ppc64le", None), Image("manylinux_2_24", "s390x", "quay.io/pypa/manylinux_2_24_s390x", None), + Image("manylinux_2_24", "pypy_x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None), ] config = configparser.ConfigParser() diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 25c29f6e..2abcaefa 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -12,16 +12,18 @@ manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-23-b4fb34d [pypy_x86_64] manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-23-b4fb34d +manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-23-b4fb34d [aarch64] manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-23-769ff88 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-23-b4fb34d [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-23-769ff88 -manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-23-769ff88 +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-23-b4fb34d +manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-23-b4fb34d [s390x] manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-23-769ff88 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-23-b4fb34d diff --git a/docs/options.md b/docs/options.md index cf39648b..370b5d32 100644 --- a/docs/options.md +++ b/docs/options.md @@ -479,9 +479,9 @@ The available options are: - `CIBW_MANYLINUX_PPC64LE_IMAGE` - `CIBW_MANYLINUX_S390X_IMAGE` -Set an alternative Docker image to be used for building [manylinux](https://github.com/pypa/manylinux) wheels. cibuildwheel will then pull these instead of the default images, [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2010_i686`](https://quay.io/pypa/manylinux2010_i686), [`pypywheels/manylinux2010-pypy_x86_64`](https://hub.docker.com/r/pypywheels/manylinux2010-pypy_x86_64), [`quay.io/pypa/manylinux2014_aarch64`](https://quay.io/pypa/manylinux2014_aarch64), [`quay.io/pypa/manylinux2014_ppc64le`](https://quay.io/pypa/manylinux2014_ppc64le), and [`quay.io/pypa/manylinux2014_s390x`](https://quay.io/pypa/manylinux2010_s390x). +Set an alternative Docker image to be used for building [manylinux](https://github.com/pypa/manylinux) wheels. cibuildwheel will then pull these instead of the default images, [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2010_i686`](https://quay.io/pypa/manylinux2010_i686), [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2014_aarch64`](https://quay.io/pypa/manylinux2014_aarch64), [`quay.io/pypa/manylinux2014_ppc64le`](https://quay.io/pypa/manylinux2014_ppc64le), and [`quay.io/pypa/manylinux2014_s390x`](https://quay.io/pypa/manylinux2010_s390x). -The value of this option can either be set to `manylinux1`, `manylinux2010`, `manylinux2014` or `manylinux_2_24` to use a pinned version of the [official manylinux images](https://github.com/pypa/manylinux) and [PyPy manylinux images](https://github.com/pypy/manylinux). Alternatively, set these options to any other valid Docker image name. For PyPy, only the official `manylinux2010` image is currently available. For architectures other +The value of this option can either be set to `manylinux1`, `manylinux2010`, `manylinux2014` or `manylinux_2_24` 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` or `manylinux_2_24` must be used, because the first version of the manylinux specification that supports additional architectures is `manylinux2014`. diff --git a/test/test_manylinuxXXXX_only.py b/test/test_manylinuxXXXX_only.py index a406fed4..0776a2f2 100644 --- a/test/test_manylinuxXXXX_only.py +++ b/test/test_manylinuxXXXX_only.py @@ -65,9 +65,8 @@ def test(manylinux_image, tmp_path): "CIBW_MANYLINUX_PPC64LE_IMAGE": manylinux_image, "CIBW_MANYLINUX_S390X_IMAGE": manylinux_image, } - if manylinux_image in {"manylinux1", "manylinux2014", "manylinux_2_24"}: + if manylinux_image in {"manylinux1"}: # We don't have a manylinux1 image for PyPy - # We don't have a manylinux2014 / manylinux_2_24 image for PyPy (yet?) add_env["CIBW_SKIP"] = "pp*" actual_wheels = utils.cibuildwheel_run(project_dir, add_env=add_env) @@ -80,6 +79,6 @@ def test(manylinux_image, tmp_path): expected_wheels = utils.expected_wheels( "spam", "0.1.0", manylinux_versions=platform_tag_map.get(manylinux_image, [manylinux_image]) ) - if manylinux_image in {"manylinux1", "manylinux2014", "manylinux_2_24"}: + if manylinux_image in {"manylinux1"}: expected_wheels = [w for w in expected_wheels if "-pp" not in w] assert set(actual_wheels) == set(expected_wheels) diff --git a/unit_test/main_tests/main_options_test.py b/unit_test/main_tests/main_options_test.py index 65161ec1..556c2a7b 100644 --- a/unit_test/main_tests/main_options_test.py +++ b/unit_test/main_tests/main_options_test.py @@ -84,7 +84,8 @@ def test_empty_selector(platform, intercepted_build_args, monkeypatch): ("pypy_x86_64", None, "quay.io/pypa/manylinux2010_x86_64:*"), ("pypy_x86_64", "manylinux1", "manylinux1"), # Does not exist ("pypy_x86_64", "manylinux2010", "quay.io/pypa/manylinux2010_x86_64:*"), - ("pypy_x86_64", "manylinux2014", "manylinux2014"), # Does not exist (yet) + ("pypy_x86_64", "manylinux2014", "quay.io/pypa/manylinux2014_x86_64:*"), + ("pypy_x86_64", "manylinux_2_24", "quay.io/pypa/manylinux_2_24_x86_64:*"), ("pypy_x86_64", "custom_image", "custom_image"), ], ) From c29a701ebc72ee544978dfe5fa7c15b3e626c591 Mon Sep 17 00:00:00 2001 From: mayeut Date: Mon, 24 May 2021 09:28:18 +0200 Subject: [PATCH 14/15] Add aarch64 support for PyPy --- README.md | 4 +- bin/update_docker.py | 2 + cibuildwheel/__main__.py | 10 ++++- cibuildwheel/linux.py | 1 + cibuildwheel/resources/build-platforms.toml | 1 + .../resources/pinned_docker_images.cfg | 38 ++++++++++--------- docs/options.md | 4 +- test/test_manylinuxXXXX_only.py | 1 + test/utils.py | 2 +- 9 files changed, 41 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index cb480cc7..57d1c355 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ What does it do? | CPython 3.7 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.8 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| PyPy 3.7 v7.3 | ✅ | | ✅ | | ✅ | | | | | +| PyPy 3.7 v7.3 | ✅ | | ✅ | | ✅ | | ✅ | | | - Builds manylinux, macOS 10.9+, and Windows wheels for CPython and PyPy - Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, and GitLab CI @@ -110,7 +110,7 @@ Options | | [`CIBW_BEFORE_ALL`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-all) | Execute a shell command on the build system before any wheels are built. | | | [`CIBW_BEFORE_BUILD`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-build) | Execute a shell command preparing each wheel's build | | | [`CIBW_REPAIR_WHEEL_COMMAND`](https://cibuildwheel.readthedocs.io/en/stable/options/#repair-wheel-command) | Execute a shell command to repair each (non-pure Python) built wheel | -| | [`CIBW_MANYLINUX_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_I686_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PPC64LE_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_S390X_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) | Specify alternative manylinux docker images | +| | [`CIBW_MANYLINUX_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_I686_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PPC64LE_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_S390X_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) | Specify alternative manylinux docker images | | | [`CIBW_DEPENDENCY_VERSIONS`](https://cibuildwheel.readthedocs.io/en/stable/options/#dependency-versions) | Specify how cibuildwheel controls the versions of the tools it uses | | **Testing** | [`CIBW_TEST_COMMAND`](https://cibuildwheel.readthedocs.io/en/stable/options/#test-command) | Execute a shell command to test each built wheel | | | [`CIBW_BEFORE_TEST`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-test) | Execute a shell command before testing each wheel | diff --git a/bin/update_docker.py b/bin/update_docker.py index 37e9593f..cae73468 100755 --- a/bin/update_docker.py +++ b/bin/update_docker.py @@ -32,6 +32,7 @@ images = [ Image("manylinux2014", "ppc64le", "quay.io/pypa/manylinux2014_ppc64le", None), Image("manylinux2014", "s390x", "quay.io/pypa/manylinux2014_s390x", None), Image("manylinux2014", "pypy_x86_64", "quay.io/pypa/manylinux2014_x86_64", None), + Image("manylinux2014", "pypy_aarch64", "quay.io/pypa/manylinux2014_aarch64", None), # 2_24 images Image("manylinux_2_24", "x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None), Image("manylinux_2_24", "i686", "quay.io/pypa/manylinux_2_24_i686", None), @@ -39,6 +40,7 @@ images = [ Image("manylinux_2_24", "ppc64le", "quay.io/pypa/manylinux_2_24_ppc64le", None), Image("manylinux_2_24", "s390x", "quay.io/pypa/manylinux_2_24_s390x", None), Image("manylinux_2_24", "pypy_x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None), + Image("manylinux_2_24", "pypy_aarch64", "quay.io/pypa/manylinux_2_24_aarch64", None), ] config = configparser.ConfigParser() diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index baa0227e..192fbb19 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -285,7 +285,15 @@ def main() -> None: manylinux_images = {} - for build_platform in ["x86_64", "i686", "pypy_x86_64", "aarch64", "ppc64le", "s390x"]: + for build_platform in [ + "x86_64", + "i686", + "pypy_x86_64", + "aarch64", + "ppc64le", + "s390x", + "pypy_aarch64", + ]: pinned_images = all_pinned_docker_images[build_platform] config_name = f"CIBW_MANYLINUX_{build_platform.upper()}_IMAGE" diff --git a/cibuildwheel/linux.py b/cibuildwheel/linux.py index d6972550..3b5bfcda 100644 --- a/cibuildwheel/linux.py +++ b/cibuildwheel/linux.py @@ -69,6 +69,7 @@ def build(options: BuildOptions) -> None: ("cp", "manylinux_ppc64le", options.manylinux_images["ppc64le"]), ("cp", "manylinux_s390x", options.manylinux_images["s390x"]), ("pp", "manylinux_x86_64", options.manylinux_images["pypy_x86_64"]), + ("pp", "manylinux_aarch64", options.manylinux_images["pypy_aarch64"]), ] cwd = Path.cwd() diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 36a5c00c..6bb90c3e 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -21,6 +21,7 @@ python_configurations = [ { identifier = "cp37-manylinux_s390x", version = "3.7", path_str = "/opt/python/cp37-cp37m" }, { identifier = "cp38-manylinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" }, { identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" }, + { identifier = "pp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" }, ] [macos] diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index 2abcaefa..be36bc3a 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,29 +1,33 @@ [x86_64] -manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-05-23-5b75c59 -manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-23-b4fb34d +manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-05-24-df68af6 +manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-24-84874a2 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-24-84874a2 [i686] -manylinux1 = quay.io/pypa/manylinux1_i686:2021-05-23-5b75c59 -manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-05-23-b4fb34d -manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-23-b4fb34d +manylinux1 = quay.io/pypa/manylinux1_i686:2021-05-24-df68af6 +manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-05-24-84874a2 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-24-84874a2 [pypy_x86_64] -manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-23-b4fb34d -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-23-b4fb34d +manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-24-84874a2 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-24-84874a2 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-23-b4fb34d +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-24-84874a2 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-23-b4fb34d +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-05-24-84874a2 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-23-b4fb34d -manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-23-b4fb34d +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-05-24-84874a2 + +[pypy_aarch64] +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-24-84874a2 diff --git a/docs/options.md b/docs/options.md index 370b5d32..3a197924 100644 --- a/docs/options.md +++ b/docs/options.md @@ -478,6 +478,7 @@ The available options are: - `CIBW_MANYLINUX_AARCH64_IMAGE` - `CIBW_MANYLINUX_PPC64LE_IMAGE` - `CIBW_MANYLINUX_S390X_IMAGE` +- `CIBW_MANYLINUX_PYPY_AARCH64_IMAGE` Set an alternative Docker image to be used for building [manylinux](https://github.com/pypa/manylinux) wheels. cibuildwheel will then pull these instead of the default images, [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2010_i686`](https://quay.io/pypa/manylinux2010_i686), [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2014_aarch64`](https://quay.io/pypa/manylinux2014_aarch64), [`quay.io/pypa/manylinux2014_ppc64le`](https://quay.io/pypa/manylinux2014_ppc64le), and [`quay.io/pypa/manylinux2014_s390x`](https://quay.io/pypa/manylinux2010_s390x). @@ -501,12 +502,13 @@ CIBW_SKIP: pp* # build using the manylinux2014 image CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 CIBW_MANYLINUX_I686_IMAGE: manylinux2014 -CIBW_SKIP: cp27-manylinux* +CIBW_MANYLINUX_PYPY_X86_64_IMAGE: manylinux2014 # build using the latest manylinux2010 release, instead of the cibuildwheel # pinned version CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2010_x86_64:latest CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux2010_i686:latest +CIBW_MANYLINUX_PYPY_X86_64_IMAGE: quay.io/pypa/manylinux2010_x86_64:latest # build using a different image from the docker registry CIBW_MANYLINUX_X86_64_IMAGE: dockcross/manylinux-x64 diff --git a/test/test_manylinuxXXXX_only.py b/test/test_manylinuxXXXX_only.py index 0776a2f2..5efd0177 100644 --- a/test/test_manylinuxXXXX_only.py +++ b/test/test_manylinuxXXXX_only.py @@ -64,6 +64,7 @@ def test(manylinux_image, tmp_path): "CIBW_MANYLINUX_AARCH64_IMAGE": manylinux_image, "CIBW_MANYLINUX_PPC64LE_IMAGE": manylinux_image, "CIBW_MANYLINUX_S390X_IMAGE": manylinux_image, + "CIBW_MANYLINUX_PYPY_AARCH64_IMAGE": manylinux_image, } if manylinux_image in {"manylinux1"}: # We don't have a manylinux1 image for PyPy diff --git a/test/utils.py b/test/utils.py index d5f87b02..96630e5d 100644 --- a/test/utils.py +++ b/test/utils.py @@ -120,7 +120,7 @@ def expected_wheels( python_abi_tags = ["cp36-cp36m", "cp37-cp37m", "cp38-cp38", "cp39-cp39"] - if machine_arch in ["x86_64", "AMD64", "x86"]: + if machine_arch in ["x86_64", "AMD64", "x86", "aarch64"]: python_abi_tags += ["pp37-pypy37_pp73"] if platform == "macos" and get_macos_version() >= (10, 16): From d84665491a4a2954010138bcfb580908b878d173 Mon Sep 17 00:00:00 2001 From: mayeut Date: Mon, 24 May 2021 09:44:50 +0200 Subject: [PATCH 15/15] Add i686 support for PyPy --- README.md | 4 ++-- bin/update_docker.py | 3 +++ cibuildwheel/__main__.py | 1 + cibuildwheel/linux.py | 1 + cibuildwheel/resources/build-platforms.toml | 1 + cibuildwheel/resources/pinned_docker_images.cfg | 5 +++++ docs/options.md | 3 +++ test/test_manylinuxXXXX_only.py | 1 + test/utils.py | 2 +- 9 files changed, 18 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 57d1c355..3e767f8e 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ What does it do? | CPython 3.7 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.8 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| PyPy 3.7 v7.3 | ✅ | | ✅ | | ✅ | | ✅ | | | +| PyPy 3.7 v7.3 | ✅ | | ✅ | | ✅ | ✅ | ✅ | | | - Builds manylinux, macOS 10.9+, and Windows wheels for CPython and PyPy - Works on GitHub Actions, Azure Pipelines, Travis CI, AppVeyor, CircleCI, and GitLab CI @@ -110,7 +110,7 @@ Options | | [`CIBW_BEFORE_ALL`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-all) | Execute a shell command on the build system before any wheels are built. | | | [`CIBW_BEFORE_BUILD`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-build) | Execute a shell command preparing each wheel's build | | | [`CIBW_REPAIR_WHEEL_COMMAND`](https://cibuildwheel.readthedocs.io/en/stable/options/#repair-wheel-command) | Execute a shell command to repair each (non-pure Python) built wheel | -| | [`CIBW_MANYLINUX_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_I686_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PPC64LE_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_S390X_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) | Specify alternative manylinux docker images | +| | [`CIBW_MANYLINUX_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_I686_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_X86_64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PPC64LE_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_S390X_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_AARCH64_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image)
[`CIBW_MANYLINUX_PYPY_I686_IMAGE`](https://cibuildwheel.readthedocs.io/en/stable/options/#manylinux-image) | Specify alternative manylinux docker images | | | [`CIBW_DEPENDENCY_VERSIONS`](https://cibuildwheel.readthedocs.io/en/stable/options/#dependency-versions) | Specify how cibuildwheel controls the versions of the tools it uses | | **Testing** | [`CIBW_TEST_COMMAND`](https://cibuildwheel.readthedocs.io/en/stable/options/#test-command) | Execute a shell command to test each built wheel | | | [`CIBW_BEFORE_TEST`](https://cibuildwheel.readthedocs.io/en/stable/options/#before-test) | Execute a shell command before testing each wheel | diff --git a/bin/update_docker.py b/bin/update_docker.py index cae73468..2e97a8e6 100755 --- a/bin/update_docker.py +++ b/bin/update_docker.py @@ -25,6 +25,7 @@ images = [ Image("manylinux2010", "x86_64", "quay.io/pypa/manylinux2010_x86_64", None), Image("manylinux2010", "i686", "quay.io/pypa/manylinux2010_i686", None), Image("manylinux2010", "pypy_x86_64", "quay.io/pypa/manylinux2010_x86_64", None), + Image("manylinux2010", "pypy_i686", "quay.io/pypa/manylinux2010_i686", None), # 2014 images Image("manylinux2014", "x86_64", "quay.io/pypa/manylinux2014_x86_64", None), Image("manylinux2014", "i686", "quay.io/pypa/manylinux2014_i686", None), @@ -32,6 +33,7 @@ images = [ Image("manylinux2014", "ppc64le", "quay.io/pypa/manylinux2014_ppc64le", None), Image("manylinux2014", "s390x", "quay.io/pypa/manylinux2014_s390x", None), Image("manylinux2014", "pypy_x86_64", "quay.io/pypa/manylinux2014_x86_64", None), + Image("manylinux2014", "pypy_i686", "quay.io/pypa/manylinux2014_i686", None), Image("manylinux2014", "pypy_aarch64", "quay.io/pypa/manylinux2014_aarch64", None), # 2_24 images Image("manylinux_2_24", "x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None), @@ -40,6 +42,7 @@ images = [ Image("manylinux_2_24", "ppc64le", "quay.io/pypa/manylinux_2_24_ppc64le", None), Image("manylinux_2_24", "s390x", "quay.io/pypa/manylinux_2_24_s390x", None), Image("manylinux_2_24", "pypy_x86_64", "quay.io/pypa/manylinux_2_24_x86_64", None), + Image("manylinux_2_24", "pypy_i686", "quay.io/pypa/manylinux_2_24_i686", None), Image("manylinux_2_24", "pypy_aarch64", "quay.io/pypa/manylinux_2_24_aarch64", None), ] diff --git a/cibuildwheel/__main__.py b/cibuildwheel/__main__.py index 192fbb19..e9326939 100644 --- a/cibuildwheel/__main__.py +++ b/cibuildwheel/__main__.py @@ -293,6 +293,7 @@ def main() -> None: "ppc64le", "s390x", "pypy_aarch64", + "pypy_i686", ]: pinned_images = all_pinned_docker_images[build_platform] diff --git a/cibuildwheel/linux.py b/cibuildwheel/linux.py index 3b5bfcda..faeff20b 100644 --- a/cibuildwheel/linux.py +++ b/cibuildwheel/linux.py @@ -70,6 +70,7 @@ def build(options: BuildOptions) -> None: ("cp", "manylinux_s390x", options.manylinux_images["s390x"]), ("pp", "manylinux_x86_64", options.manylinux_images["pypy_x86_64"]), ("pp", "manylinux_aarch64", options.manylinux_images["pypy_aarch64"]), + ("pp", "manylinux_i686", options.manylinux_images["pypy_i686"]), ] cwd = Path.cwd() diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 6bb90c3e..65012101 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -22,6 +22,7 @@ python_configurations = [ { identifier = "cp38-manylinux_s390x", version = "3.8", path_str = "/opt/python/cp38-cp38" }, { identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" }, { identifier = "pp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" }, + { identifier = "pp37-manylinux_i686", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" }, ] [macos] diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index be36bc3a..40b302be 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -15,6 +15,11 @@ manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-05-24-84874a2 manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-05-24-84874a2 manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-05-24-84874a2 +[pypy_i686] +manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-05-24-84874a2 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-05-24-84874a2 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-05-24-84874a2 + [aarch64] manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-05-24-84874a2 manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-05-24-84874a2 diff --git a/docs/options.md b/docs/options.md index 3a197924..4332e683 100644 --- a/docs/options.md +++ b/docs/options.md @@ -479,6 +479,7 @@ The available options are: - `CIBW_MANYLINUX_PPC64LE_IMAGE` - `CIBW_MANYLINUX_S390X_IMAGE` - `CIBW_MANYLINUX_PYPY_AARCH64_IMAGE` +- `CIBW_MANYLINUX_PYPY_I686_IMAGE` Set an alternative Docker image to be used for building [manylinux](https://github.com/pypa/manylinux) wheels. cibuildwheel will then pull these instead of the default images, [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2010_i686`](https://quay.io/pypa/manylinux2010_i686), [`quay.io/pypa/manylinux2010_x86_64`](https://quay.io/pypa/manylinux2010_x86_64), [`quay.io/pypa/manylinux2014_aarch64`](https://quay.io/pypa/manylinux2014_aarch64), [`quay.io/pypa/manylinux2014_ppc64le`](https://quay.io/pypa/manylinux2014_ppc64le), and [`quay.io/pypa/manylinux2014_s390x`](https://quay.io/pypa/manylinux2010_s390x). @@ -503,12 +504,14 @@ CIBW_SKIP: pp* CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 CIBW_MANYLINUX_I686_IMAGE: manylinux2014 CIBW_MANYLINUX_PYPY_X86_64_IMAGE: manylinux2014 +CIBW_MANYLINUX_PYPY_I686_IMAGE: manylinux2014 # build using the latest manylinux2010 release, instead of the cibuildwheel # pinned version CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2010_x86_64:latest CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux2010_i686:latest CIBW_MANYLINUX_PYPY_X86_64_IMAGE: quay.io/pypa/manylinux2010_x86_64:latest +CIBW_MANYLINUX_PYPY_I686_IMAGE: quay.io/pypa/manylinux2010_i686:latest # build using a different image from the docker registry CIBW_MANYLINUX_X86_64_IMAGE: dockcross/manylinux-x64 diff --git a/test/test_manylinuxXXXX_only.py b/test/test_manylinuxXXXX_only.py index 5efd0177..eb4599aa 100644 --- a/test/test_manylinuxXXXX_only.py +++ b/test/test_manylinuxXXXX_only.py @@ -65,6 +65,7 @@ def test(manylinux_image, tmp_path): "CIBW_MANYLINUX_PPC64LE_IMAGE": manylinux_image, "CIBW_MANYLINUX_S390X_IMAGE": manylinux_image, "CIBW_MANYLINUX_PYPY_AARCH64_IMAGE": manylinux_image, + "CIBW_MANYLINUX_PYPY_I686_IMAGE": manylinux_image, } if manylinux_image in {"manylinux1"}: # We don't have a manylinux1 image for PyPy diff --git a/test/utils.py b/test/utils.py index 96630e5d..844047bd 100644 --- a/test/utils.py +++ b/test/utils.py @@ -140,7 +140,7 @@ def expected_wheels( if platform == "linux": architectures = [machine_arch] - if machine_arch == "x86_64" and python_abi_tag.startswith("cp"): + if machine_arch == "x86_64": architectures.append("i686") platform_tags = [