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"]