From 823d4af1ad29ce0d79dfb536c74fb4940b89f76e Mon Sep 17 00:00:00 2001 From: "cibuildwheel-bot[bot]" <83877280+cibuildwheel-bot[bot]@users.noreply.github.com> Date: Thu, 11 Nov 2021 08:40:15 -0500 Subject: [PATCH] feat: pypy 3.8 & pip 21.3 (#881) * Update dependencies * fix: support pypy 3.8 and 7.3.7 Co-authored-by: henryiii Co-authored-by: Henry Schreiner --- cibuildwheel/resources/build-platforms.toml | 25 ++- .../resources/constraints-python36.txt | 14 +- .../resources/constraints-python37.txt | 12 +- .../resources/constraints-python38.txt | 10 +- .../resources/constraints-python39.txt | 10 +- cibuildwheel/resources/constraints.txt | 10 +- .../resources/pinned_docker_images.cfg | 54 +++--- cibuildwheel/windows.py | 1 - docs/options.md | 3 +- docs/working-examples.md | 174 +++++++++--------- test/utils.py | 2 +- unit_test/build_selector_test.py | 3 + unit_test/option_prepare_test.py | 12 +- 13 files changed, 172 insertions(+), 158 deletions(-) diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 10ac3c7f..78efd3f8 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -11,6 +11,7 @@ python_configurations = [ { identifier = "cp39-manylinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" }, { identifier = "cp310-manylinux_i686", version = "3.10", path_str = "/opt/python/cp310-cp310" }, { identifier = "pp37-manylinux_x86_64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" }, + { identifier = "pp38-manylinux_x86_64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" }, { identifier = "cp36-manylinux_aarch64", version = "3.6", path_str = "/opt/python/cp36-cp36m" }, { identifier = "cp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/cp37-cp37m" }, { identifier = "cp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/cp38-cp38" }, @@ -27,7 +28,9 @@ python_configurations = [ { identifier = "cp39-manylinux_s390x", version = "3.9", path_str = "/opt/python/cp39-cp39" }, { identifier = "cp310-manylinux_s390x", version = "3.10", path_str = "/opt/python/cp310-cp310" }, { identifier = "pp37-manylinux_aarch64", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" }, + { identifier = "pp38-manylinux_aarch64", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" }, { identifier = "pp37-manylinux_i686", version = "3.7", path_str = "/opt/python/pp37-pypy37_pp73" }, + { identifier = "pp38-manylinux_i686", version = "3.8", path_str = "/opt/python/pp38-pypy38_pp73" }, { identifier = "cp36-musllinux_x86_64", version = "3.6", path_str = "/opt/python/cp36-cp36m" }, { identifier = "cp37-musllinux_x86_64", version = "3.7", path_str = "/opt/python/cp37-cp37m" }, { identifier = "cp38-musllinux_x86_64", version = "3.8", path_str = "/opt/python/cp38-cp38" }, @@ -62,13 +65,14 @@ python_configurations = [ { identifier = "cp38-macosx_x86_64", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" }, { identifier = "cp38-macosx_arm64", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" }, { identifier = "cp38-macosx_universal2", version = "3.8", url = "https://www.python.org/ftp/python/3.8.10/python-3.8.10-macosx10.9.pkg" }, - { identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" }, - { identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" }, - { identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg" }, - { identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" }, - { identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" }, - { identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0-macos11.pkg" }, - { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-osx64.tar.bz2" }, + { identifier = "cp39-macosx_x86_64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" }, + { identifier = "cp39-macosx_arm64", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" }, + { identifier = "cp39-macosx_universal2", version = "3.9", url = "https://www.python.org/ftp/python/3.9.8/python-3.9.8-macos11.pkg" }, + { identifier = "cp310-macosx_x86_64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" }, + { identifier = "cp310-macosx_arm64", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" }, + { identifier = "cp310-macosx_universal2", version = "3.10", url = "https://www.python.org/ftp/python/3.10.0/python-3.10.0post2-macos11.pkg" }, + { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.7-osx64.tar.bz2" }, + { identifier = "pp38-macosx_x86_64", version = "3.8", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.7-osx64.tar.bz2" }, ] [windows] @@ -79,9 +83,10 @@ python_configurations = [ { identifier = "cp37-win_amd64", version = "3.7.9", arch = "64" }, { identifier = "cp38-win32", version = "3.8.10", arch = "32" }, { identifier = "cp38-win_amd64", version = "3.8.10", arch = "64" }, - { identifier = "cp39-win32", version = "3.9.7", arch = "32" }, - { identifier = "cp39-win_amd64", version = "3.9.7", arch = "64" }, + { identifier = "cp39-win32", version = "3.9.8", arch = "32" }, + { identifier = "cp39-win_amd64", version = "3.9.8", arch = "64" }, { identifier = "cp310-win32", version = "3.10.0", arch = "32" }, { identifier = "cp310-win_amd64", version = "3.10.0", arch = "64" }, - { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.5-win64.zip" }, + { identifier = "pp37-win_amd64", version = "3.7", arch = "64", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.7-win64.zip" }, + { identifier = "pp38-win_amd64", version = "3.8", arch = "64", url = "https://downloads.python.org/pypy/pypy3.8-v7.3.7-win64.zip" }, ] diff --git a/cibuildwheel/resources/constraints-python36.txt b/cibuildwheel/resources/constraints-python36.txt index 36380a9d..997c0348 100644 --- a/cibuildwheel/resources/constraints-python36.txt +++ b/cibuildwheel/resources/constraints-python36.txt @@ -4,19 +4,19 @@ # # bin/update_dependencies.py # -backports.entry-points-selectable==1.1.0 +backports.entry-points-selectable==1.1.1 # via virtualenv delocate==0.10.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.3 # via virtualenv -filelock==3.3.0 +filelock==3.3.2 # via virtualenv -importlib-metadata==4.8.1 +importlib-metadata==4.8.2 # via # backports.entry-points-selectable # virtualenv -importlib-resources==5.2.2 +importlib-resources==5.4.0 # via virtualenv platformdirs==2.4.0 # via virtualenv @@ -26,7 +26,7 @@ typing-extensions==3.10.0.2 # via # delocate # importlib-metadata -virtualenv==20.8.1 +virtualenv==20.10.0 # via -r cibuildwheel/resources/constraints.in wheel==0.37.0 # via @@ -38,7 +38,7 @@ zipp==3.6.0 # importlib-resources # The following packages are considered to be unsafe in a requirements file: -pip==21.2.4 +pip==21.3.1 # via -r cibuildwheel/resources/constraints.in -setuptools==58.2.0 +setuptools==58.5.3 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python37.txt b/cibuildwheel/resources/constraints-python37.txt index 9dfe3a88..ef7f2d11 100644 --- a/cibuildwheel/resources/constraints-python37.txt +++ b/cibuildwheel/resources/constraints-python37.txt @@ -4,15 +4,15 @@ # # bin/update_dependencies.py # -backports.entry-points-selectable==1.1.0 +backports.entry-points-selectable==1.1.1 # via virtualenv delocate==0.10.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.3 # via virtualenv -filelock==3.3.0 +filelock==3.3.2 # via virtualenv -importlib-metadata==4.8.1 +importlib-metadata==4.8.2 # via # backports.entry-points-selectable # virtualenv @@ -24,7 +24,7 @@ typing-extensions==3.10.0.2 # via # delocate # importlib-metadata -virtualenv==20.8.1 +virtualenv==20.10.0 # via -r cibuildwheel/resources/constraints.in wheel==0.37.0 # via @@ -34,7 +34,7 @@ zipp==3.6.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -pip==21.2.4 +pip==21.3.1 # via -r cibuildwheel/resources/constraints.in -setuptools==58.2.0 +setuptools==58.5.3 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python38.txt b/cibuildwheel/resources/constraints-python38.txt index c3bd567c..1e964eb2 100644 --- a/cibuildwheel/resources/constraints-python38.txt +++ b/cibuildwheel/resources/constraints-python38.txt @@ -4,13 +4,13 @@ # # bin/update_dependencies.py # -backports.entry-points-selectable==1.1.0 +backports.entry-points-selectable==1.1.1 # via virtualenv delocate==0.10.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.3 # via virtualenv -filelock==3.3.0 +filelock==3.3.2 # via virtualenv platformdirs==2.4.0 # via virtualenv @@ -18,7 +18,7 @@ six==1.16.0 # via virtualenv typing-extensions==3.10.0.2 # via delocate -virtualenv==20.8.1 +virtualenv==20.10.0 # via -r cibuildwheel/resources/constraints.in wheel==0.37.0 # via @@ -26,7 +26,7 @@ wheel==0.37.0 # delocate # The following packages are considered to be unsafe in a requirements file: -pip==21.2.4 +pip==21.3.1 # via -r cibuildwheel/resources/constraints.in -setuptools==58.2.0 +setuptools==58.5.3 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints-python39.txt b/cibuildwheel/resources/constraints-python39.txt index d2824450..ae417444 100644 --- a/cibuildwheel/resources/constraints-python39.txt +++ b/cibuildwheel/resources/constraints-python39.txt @@ -4,13 +4,13 @@ # # bin/update_dependencies.py # -backports.entry-points-selectable==1.1.0 +backports.entry-points-selectable==1.1.1 # via virtualenv delocate==0.10.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.3 # via virtualenv -filelock==3.3.0 +filelock==3.3.2 # via virtualenv platformdirs==2.4.0 # via virtualenv @@ -18,7 +18,7 @@ six==1.16.0 # via virtualenv typing-extensions==3.10.0.2 # via delocate -virtualenv==20.8.1 +virtualenv==20.10.0 # via -r cibuildwheel/resources/constraints.in wheel==0.37.0 # via @@ -26,7 +26,7 @@ wheel==0.37.0 # delocate # The following packages are considered to be unsafe in a requirements file: -pip==21.2.4 +pip==21.3.1 # via -r cibuildwheel/resources/constraints.in -setuptools==58.2.0 +setuptools==58.5.3 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/constraints.txt b/cibuildwheel/resources/constraints.txt index d2824450..ae417444 100644 --- a/cibuildwheel/resources/constraints.txt +++ b/cibuildwheel/resources/constraints.txt @@ -4,13 +4,13 @@ # # bin/update_dependencies.py # -backports.entry-points-selectable==1.1.0 +backports.entry-points-selectable==1.1.1 # via virtualenv delocate==0.10.0 # via -r cibuildwheel/resources/constraints.in distlib==0.3.3 # via virtualenv -filelock==3.3.0 +filelock==3.3.2 # via virtualenv platformdirs==2.4.0 # via virtualenv @@ -18,7 +18,7 @@ six==1.16.0 # via virtualenv typing-extensions==3.10.0.2 # via delocate -virtualenv==20.8.1 +virtualenv==20.10.0 # via -r cibuildwheel/resources/constraints.in wheel==0.37.0 # via @@ -26,7 +26,7 @@ wheel==0.37.0 # delocate # The following packages are considered to be unsafe in a requirements file: -pip==21.2.4 +pip==21.3.1 # via -r cibuildwheel/resources/constraints.in -setuptools==58.2.0 +setuptools==58.5.3 # via -r cibuildwheel/resources/constraints.in diff --git a/cibuildwheel/resources/pinned_docker_images.cfg b/cibuildwheel/resources/pinned_docker_images.cfg index b889af8d..e8cf043f 100644 --- a/cibuildwheel/resources/pinned_docker_images.cfg +++ b/cibuildwheel/resources/pinned_docker_images.cfg @@ -1,43 +1,43 @@ [x86_64] -manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-10-10-fee0ae1 -manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-10-10-790306f -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-10-10-790306f -musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2021-10-10-790306f +manylinux1 = quay.io/pypa/manylinux1_x86_64:2021-11-07-f38ff36 +manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-11-07-28723f3 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-11-07-28723f3 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2021-11-07-28723f3 [i686] -manylinux1 = quay.io/pypa/manylinux1_i686:2021-10-10-fee0ae1 -manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-10-10-790306f -manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-10-10-790306f -musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2021-10-10-790306f +manylinux1 = quay.io/pypa/manylinux1_i686:2021-11-07-f38ff36 +manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-11-07-28723f3 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-11-07-28723f3 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2021-11-07-28723f3 [pypy_x86_64] -manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-10-10-790306f -manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-10-10-790306f +manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2021-11-07-28723f3 +manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2021-11-07-28723f3 [pypy_i686] -manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-10-10-790306f -manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-10-10-790306f +manylinux2010 = quay.io/pypa/manylinux2010_i686:2021-11-07-28723f3 +manylinux2014 = quay.io/pypa/manylinux2014_i686:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2021-11-07-28723f3 [aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-10-10-790306f -musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2021-10-10-790306f +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-11-07-28723f3 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2021-11-07-28723f3 [ppc64le] -manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-10-10-790306f -musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2021-10-10-790306f +manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2021-11-07-28723f3 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2021-11-07-28723f3 [s390x] -manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-10-10-790306f -musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2021-10-10-790306f +manylinux2014 = quay.io/pypa/manylinux2014_s390x:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2021-11-07-28723f3 +musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2021-11-07-28723f3 [pypy_aarch64] -manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-10-10-790306f -manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-10-10-790306f +manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2021-11-07-28723f3 +manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2021-11-07-28723f3 diff --git a/cibuildwheel/windows.py b/cibuildwheel/windows.py index bd5ad085..0a429c6d 100644 --- a/cibuildwheel/windows.py +++ b/cibuildwheel/windows.py @@ -112,7 +112,6 @@ def install_pypy(version: str, arch: str, url: str) -> Path: download(url, pypy_zip) # Extract to the parent directory because the zip file still contains a directory extract_zip(pypy_zip, installation_path.parent) - (installation_path / "python.exe").symlink_to(installation_path / "pypy3.exe") return installation_path diff --git a/docs/options.md b/docs/options.md index aa625133..3b9aaeb3 100644 --- a/docs/options.md +++ b/docs/options.md @@ -208,7 +208,8 @@ When setting the options, you can use shell-style globbing syntax, as per [fnmat | Python 3.8 | cp38-macosx_x86_64
cp38-macosx_universal2
cp38-macosx_arm64 | cp38-win_amd64
cp38-win32 | cp38-manylinux_x86_64
cp38-manylinux_i686
cp38-musllinux_x86_64
cp38-musllinux_i686 | cp38-manylinux_aarch64
cp38-manylinux_ppc64le
cp38-manylinux_s390x
cp38-musllinux_aarch64
cp38-musllinux_ppc64le
cp38-musllinux_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-musllinux_x86_64
cp39-musllinux_i686 | cp39-manylinux_aarch64
cp39-manylinux_ppc64le
cp39-manylinux_s390x
cp39-musllinux_aarch64
cp39-musllinux_ppc64le
cp39-musllinux_s390x | | Python 3.10 | cp310-macosx_x86_64
cp310-macosx_universal2
cp310-macosx_arm64 | cp310-win_amd64
cp310-win32 | cp310-manylinux_x86_64
cp310-manylinux_i686
cp310-musllinux_x86_64
cp310-musllinux_i686 | cp310-manylinux_aarch64
cp310-manylinux_ppc64le
cp310-manylinux_s390x
cp310-musllinux_aarch64
cp310-musllinux_ppc64le
cp310-musllinux_s390x | -| PyPy3.7 v7.3 | pp37-macosx_x86_64 | pp37-win_amd64 | pp37-manylinux_x86_64 | | +| PyPy3.7 v7.3 | pp37-macosx_x86_64 | pp37-win_amd64 | pp37-manylinux_x86_64
pp37-manylinux_i686 | pp37-manylinux_aarch64 | +| PyPy3.8 v7.3 | pp38-macosx_x86_64 | pp38-win_amd64 | pp38-manylinux_x86_64
pp38-manylinux_i686 | pp38-manylinux_aarch64 | The list of supported and currently selected build identifiers can also be retrieved by passing the `--print-build-identifiers` flag to cibuildwheel. The format is `python_tag-platform_tag`, with tags similar to those in [PEP 425](https://www.python.org/dev/peps/pep-0425/#details). diff --git a/docs/working-examples.md b/docs/working-examples.md index 5301bb80..5a355bac 100644 --- a/docs/working-examples.md +++ b/docs/working-examples.md @@ -30,8 +30,8 @@ title: Working examples | [PyOxidizer][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A modern Python application packaging and distribution tool | | [pyzmq][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python bindings for zeromq, the networking library. Uses Cython and CFFI. | | [OpenSpiel][] | ![github icon][] | ![apple icon][] ![linux icon][] | OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games. | -| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy | | [River][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | 🌊 Online machine learning in Python | +| [vispy][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Main repository for Vispy | | [aiortc][] | ![github icon][] | ![apple icon][] ![linux icon][] | WebRTC and ORTC implementation for Python using asyncio. | | [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` | | [tinyobjloader][] | ![azurepipelines icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Tiny but powerful single file wavefront obj loader | @@ -51,8 +51,8 @@ title: Working examples | [aioquic][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | QUIC and HTTP/3 implementation in Python | | [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) | -| [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. | | [AutoPy][] | ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Includes a Windows Travis build. | +| [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. | | [H3-py][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Python bindings for H3, a hierarchical hexagonal geospatial indexing system | | [python-rapidjson][] | ![travisci icon][] ![gitlab icon][] ![appveyor icon][] | ![windows icon][] ![linux icon][] | Python wrapper around rapidjson | | [markupsafe][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Safely add untrusted strings to HTML/XML markup. | @@ -70,7 +70,7 @@ title: Working examples | [CTranslate2][] | ![github icon][] | ![apple icon][] ![linux icon][] | Includes libraries from the [Intel oneAPI toolkit](https://software.intel.com/content/www/us/en/develop/tools/oneapi/base-toolkit.html). The Linux wheels also include CUDA libraries for GPU execution. | | [iminuit][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Jupyter-friendly Python interface for C++ MINUIT2 | | [jq.py][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | Python bindings for jq | -| [Tokenizer][] | ![github icon][] ![travisci icon][] | ![apple icon][] ![linux icon][] | Fast and customizable text tokenization library with BPE and SentencePiece support | +| [Tokenizer][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast and customizable text tokenization library with BPE and SentencePiece support | | [PyGLM][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Fast OpenGL Mathematics (GLM) for Python | | [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. | @@ -115,8 +115,8 @@ title: Working examples [PyOxidizer]: https://github.com/indygreg/PyOxidizer [pyzmq]: https://github.com/zeromq/pyzmq [OpenSpiel]: https://github.com/deepmind/open_spiel -[vispy]: https://github.com/vispy/vispy [River]: https://github.com/online-ml/river +[vispy]: https://github.com/vispy/vispy [aiortc]: https://github.com/aiortc/aiortc [Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python [tinyobjloader]: https://github.com/tinyobjloader/tinyobjloader @@ -136,8 +136,8 @@ title: Working examples [aioquic]: https://github.com/aiortc/aioquic [google neuroglancer]: https://github.com/google/neuroglancer [DeepForest]: https://github.com/LAMDA-NJU/Deep-Forest -[Parselmouth]: https://github.com/YannickJadoul/Parselmouth [AutoPy]: https://github.com/autopilot-rs/autopy +[Parselmouth]: https://github.com/YannickJadoul/Parselmouth [H3-py]: https://github.com/uber/h3-py [python-rapidjson]: https://github.com/python-rapidjson/python-rapidjson [markupsafe]: https://github.com/pallets/markupsafe @@ -188,90 +188,90 @@ title: Working examples [apple icon]: data/readme_icons/apple.svg [linux icon]: data/readme_icons/linux.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/utils.py b/test/utils.py index 34632c20..97675c7d 100644 --- a/test/utils.py +++ b/test/utils.py @@ -130,7 +130,7 @@ def expected_wheels( python_abi_tags = ["cp36-cp36m", "cp37-cp37m", "cp38-cp38", "cp39-cp39", "cp310-cp310"] if machine_arch in ["x86_64", "AMD64", "x86", "aarch64"]: - python_abi_tags += ["pp37-pypy37_pp73"] + python_abi_tags += ["pp37-pypy37_pp73", "pp38-pypy38_pp73"] if platform == "macos" and machine_arch == "arm64": # currently, arm64 macs are only supported by cp39 & cp310 diff --git a/unit_test/build_selector_test.py b/unit_test/build_selector_test.py index c99b28f1..7555ab33 100644 --- a/unit_test/build_selector_test.py +++ b/unit_test/build_selector_test.py @@ -53,6 +53,9 @@ def test_skip(): assert not build_selector("pp36-manylinux_x86_64") assert build_selector("pp37-manylinux_x86_64") + assert build_selector("pp38-manylinux_x86_64") + assert build_selector("pp37-manylinux_i686") + assert build_selector("pp38-manylinux_i686") assert build_selector("cp36-manylinux_x86_64") assert build_selector("cp37-manylinux_x86_64") assert not build_selector("cp36-manylinux_i686") diff --git a/unit_test/option_prepare_test.py b/unit_test/option_prepare_test.py index cadab279..55d7edb2 100644 --- a/unit_test/option_prepare_test.py +++ b/unit_test/option_prepare_test.py @@ -11,7 +11,7 @@ import pytest from cibuildwheel import linux, util from cibuildwheel.__main__ import main -ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "pp37"} +ALL_IDS = {"cp36", "cp37", "cp38", "cp39", "cp310", "pp37", "pp38"} @pytest.fixture @@ -132,7 +132,9 @@ before-all = "true" assert not kwargs["docker"]["simulate_32_bit"] identifiers = {x.identifier for x in kwargs["platform_configs"]} - assert identifiers == {f"{x}-manylinux_x86_64" for x in ALL_IDS - {"cp36", "cp310", "pp37"}} + assert identifiers == { + f"{x}-manylinux_x86_64" for x in ALL_IDS - {"cp36", "cp310", "pp37", "pp38"} + } assert kwargs["options"].build_options("cp37-manylinux_x86_64").before_all == "" kwargs = build_on_docker.call_args_list[2][1] @@ -140,7 +142,11 @@ before-all = "true" assert kwargs["docker"]["cwd"] == Path("/project") assert not kwargs["docker"]["simulate_32_bit"] identifiers = {x.identifier for x in kwargs["platform_configs"]} - assert identifiers == {"cp310-manylinux_x86_64", "pp37-manylinux_x86_64"} + assert identifiers == { + "cp310-manylinux_x86_64", + "pp37-manylinux_x86_64", + "pp38-manylinux_x86_64", + } kwargs = build_on_docker.call_args_list[3][1] assert "quay.io/pypa/manylinux2010_i686" in kwargs["docker"]["docker_image"]