From 980e11ba1da88f8157c746365f859b5734aaac82 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Sat, 8 May 2021 21:30:13 -0400 Subject: [PATCH] chore: update PyPy to 7.3.4 except on Windows Co-authored-by: Yannick Jadoul --- README.md | 3 +- bin/update_pythons.py | 4 +-- cibuildwheel/linux.py | 20 ------------ cibuildwheel/macos.py | 4 --- cibuildwheel/resources/build-platforms.toml | 5 +-- cibuildwheel/resources/pypy_venv.patch | 36 --------------------- docs/options.md | 3 +- test/test_testing.py | 4 --- test/utils.py | 2 +- 9 files changed, 5 insertions(+), 76 deletions(-) delete mode 100644 cibuildwheel/resources/pypy_venv.patch diff --git a/README.md b/README.md index e3382c294..c0b5f76a3 100644 --- a/README.md +++ b/README.md @@ -28,8 +28,7 @@ What does it do? | CPython 3.7 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.8 | ✅ | | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | CPython 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| PyPy 3.6 v7.3.3 | ✅ | | | ✅ | ✅ | | | | | -| PyPy 3.7 (beta) v7.3.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 diff --git a/bin/update_pythons.py b/bin/update_pythons.py index 6a7c7a325..af8fb9f4e 100755 --- a/bin/update_pythons.py +++ b/bin/update_pythons.py @@ -114,9 +114,7 @@ def __init__(self, arch_str: ArchStr): self.releases = [ r for r in releases - if not r["pypy_version"].is_prerelease - and not r["pypy_version"].is_devrelease - and not r["pypy_version"] == Version("7.3.4") + if not r["pypy_version"].is_prerelease and not r["pypy_version"].is_devrelease ] self.arch = arch_str diff --git a/cibuildwheel/linux.py b/cibuildwheel/linux.py index 8367705ec..d69725503 100644 --- a/cibuildwheel/linux.py +++ b/cibuildwheel/linux.py @@ -15,7 +15,6 @@ get_build_verbosity_extra_flags, prepare_command, read_python_configs, - resources_dir, ) @@ -122,25 +121,6 @@ def build(options: BuildOptions) -> None: log.build_start(config.identifier) dependency_constraint_flags: List[PathOrStr] = [] - if config.identifier.startswith("pp36"): - # Patch PyPy to make sure headers get installed into a venv - patch_path = resources_dir / "pypy_venv.patch" - patch_docker_path = PurePath("/pypy_venv.patch") - docker.copy_into(patch_path, patch_docker_path) - try: - docker.call( - [ - "patch", - "--force", - "-p1", - "-d", - config.path, - "-i", - patch_docker_path, - ] - ) - except subprocess.CalledProcessError: - print("PyPy patch not applied", file=sys.stderr) if options.dependency_constraints: constraints_file = options.dependency_constraints.get_for_python_version( diff --git a/cibuildwheel/macos.py b/cibuildwheel/macos.py index 9218e3e36..5cbee93f4 100644 --- a/cibuildwheel/macos.py +++ b/cibuildwheel/macos.py @@ -23,7 +23,6 @@ install_certifi_script, prepare_command, read_python_configs, - resources_dir, unwrap, ) @@ -167,9 +166,6 @@ def install_pypy(version: str, url: str) -> Path: downloaded_tar_bz2 = Path("/tmp") / pypy_tar_bz2 download(url, downloaded_tar_bz2) call(["tar", "-C", "/tmp", "-xf", downloaded_tar_bz2]) - # Patch PyPy to make sure headers get installed into a venv - patch_path = resources_dir / "pypy_venv.patch" - call(["patch", "--force", "-p1", "-d", installation_path, "-i", patch_path]) installation_bin_path = installation_path / "bin" python_executable = "pypy3" diff --git a/cibuildwheel/resources/build-platforms.toml b/cibuildwheel/resources/build-platforms.toml index 8f04406eb..1720f4ec5 100644 --- a/cibuildwheel/resources/build-platforms.toml +++ b/cibuildwheel/resources/build-platforms.toml @@ -8,7 +8,6 @@ python_configurations = [ { identifier = "cp37-manylinux_i686", version = "3.7", path_str = "/opt/python/cp37-cp37m" }, { identifier = "cp38-manylinux_i686", version = "3.8", path_str = "/opt/python/cp38-cp38" }, { identifier = "cp39-manylinux_i686", version = "3.9", path_str = "/opt/python/cp39-cp39" }, - { identifier = "pp36-manylinux_x86_64", version = "3.6", path_str = "/opt/python/pp36-pypy36_pp73" }, { identifier = "pp37-manylinux_x86_64", version = "3.7", path_str = "/opt/python/pp37-pypy37_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" }, @@ -32,8 +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 = "pp36-macosx_x86_64", version = "3.6", url = "https://downloads.python.org/pypy/pypy3.6-v7.3.3-osx64.tar.bz2" }, - { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.3-osx64.tar.bz2" }, + { identifier = "pp37-macosx_x86_64", version = "3.7", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.4-osx64.tar.bz2" }, ] [windows] @@ -46,6 +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 = "pp36-win32", version = "3.6", arch = "32", url = "https://downloads.python.org/pypy/pypy3.6-v7.3.3-win32.zip" }, { identifier = "pp37-win32", version = "3.7", arch = "32", url = "https://downloads.python.org/pypy/pypy3.7-v7.3.3-win32.zip" }, ] diff --git a/cibuildwheel/resources/pypy_venv.patch b/cibuildwheel/resources/pypy_venv.patch deleted file mode 100644 index 49207b1ac..000000000 --- a/cibuildwheel/resources/pypy_venv.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/lib-python/3/sysconfig.py b/lib-python/3/sysconfig.py -index 0d08cde66b4150e1772c13fdc6fe34d079c2b10d..30c77d165a2505d98bc7660ff0cc3b728f56c682 100644 ---- a/lib-python/3/sysconfig.py -+++ b/lib-python/3/sysconfig.py -@@ -618,9 +618,6 @@ def get_config_vars(*args): - import _osx_support - _osx_support.customize_config_vars(_CONFIG_VARS) - -- _CONFIG_VARS['INCLUDEPY'] = os.path.join(_CONFIG_VARS['prefix'], -- 'include') -- - if args: - vals = [] - for name in args: -diff --git a/lib_pypy/_sysconfigdata.py b/lib_pypy/_sysconfigdata.py -index f1cca41a4b7553819bb1a2a63af1c1a9b8591ce9..a34216e8e12b82abd72fabdd7793b3e8bb19bbcf 100644 ---- a/lib_pypy/_sysconfigdata.py -+++ b/lib_pypy/_sysconfigdata.py -@@ -5,6 +5,7 @@ from distutils.spawn import find_executable - - so_ext = _imp.extension_suffixes()[0] - -+mybase = os.path.dirname(os.path.dirname(__file__)) - - build_time_vars = { - # SOABI is PEP 3149 compliant, but CPython3 has so_ext.split('.')[1] -@@ -25,7 +26,8 @@ build_time_vars = { - 'AR': "ar", - 'ARFLAGS': "rc", - 'EXE': "", -- 'LIBDIR': os.path.join(sys.prefix, 'bin'), -+ 'LIBDIR': os.path.join(mybase, 'lib'), -+ 'INCLUDEPY': os.path.join(mybase, 'include'), - } - - if find_executable("gcc"): diff --git a/docs/options.md b/docs/options.md index 530feed79..669724d65 100644 --- a/docs/options.md +++ b/docs/options.md @@ -124,14 +124,13 @@ 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.6 v7.3 | pp36-macosx_x86_64 | pp36-win32 | pp36-manylinux_x86_64 | | | PyPy3.7 v7.3 | pp37-macosx_x86_64 | pp37-win32 | 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. The format is `python_tag-platform_tag`, with tags similar to those in [PEP 425](https://www.python.org/dev/peps/pep-0425/#details). -For CPython, the minimally supported macOS version is 10.9; for PyPy 3.6/3.7, macOS 10.13 or higher is required. +For CPython, the minimally supported macOS version is 10.9; for PyPy 3.7, macOS 10.13 or higher is required. See the [cibuildwheel 1 documentation](https://cibuildwheel.readthedocs.io/en/1.x/) for past end of life versions of Python, and PyPy2.7. diff --git a/test/test_testing.py b/test/test_testing.py index 95626002c..cac9d967c 100644 --- a/test/test_testing.py +++ b/test/test_testing.py @@ -66,10 +66,6 @@ def test_uname(self): bits = struct.calcsize("P") * 8 if bits == 32: self.assertEqual(platform.machine(), "i686") - - def test_time_to_remove_the_pypy_venv_patch(self): - if sys.platform == "darwin": - assert not hasattr(sys, "pypy_version_info") or sys.pypy_version_info < (7,3,4) ''' diff --git a/test/utils.py b/test/utils.py index 16bb390c1..e22d15e0e 100644 --- a/test/utils.py +++ b/test/utils.py @@ -121,7 +121,7 @@ def expected_wheels( python_abi_tags = ["cp36-cp36m", "cp37-cp37m", "cp38-cp38", "cp39-cp39"] if machine_arch in ["x86_64", "AMD64", "x86"]: - python_abi_tags += ["pp36-pypy36_pp73", "pp37-pypy37_pp73"] + python_abi_tags += ["pp37-pypy37_pp73"] if platform == "macos" and get_macos_version() >= (10, 16): # 10.16 is sometimes reported as the macOS version on macOS 11.