Skip to content
This repository was archived by the owner on Mar 15, 2022. It is now read-only.

Update wheel version installed for PyPy >= 7.3.0 #3

Merged
merged 2 commits into from
Feb 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,33 +51,38 @@ All the following commands are equivalent and run the PyPy 2.7, version

- ``/opt/pypy/pypy2.7-7.3.0/bin/python``

- ``/opt/python/pp273-pypy_73/bin/pypy``
- ``/opt/python/pp27-pypy_73/bin/pypy``

- ``/opt/python/pp273-pypy_73/bin/python``
- ``/opt/python/pp27-pypy_73/bin/python``

Similarly, these are the commands to run PyPy 3.6, version 7.3.0:

- ``/opt/pypy/pypy3.6-7.3.0/bin/pypy``

- ``/opt/pypy/pypy3.6-7.3.0/bin/python``

- ``/opt/python/pp373-pypy36_pp73/bin/pypy``
- ``/opt/python/pp36-pypy36_pp73/bin/pypy``

- ``/opt/python/pp373-pypy36_pp73/bin/python``
- ``/opt/python/pp36-pypy36_pp73/bin/python``


PEP 425 Compatibility tags
---------------------------

``pp273-pypy_73`` and ``pp373-pypy36_pp73`` are the `PEP 425`_ compliant
``pp27-pypy_73`` and ``pp36-pypy36_pp73`` are the `PEP 425`_ compliant
compatibility tag. In particular:

- ``pp`` stands for PyPy (as opposed to ``cp`` which is CPython)

- ``273`` and ``373`` mean "Python [2|3]", "PyPy 7.3.x".
- ``27`` and ``36`` mean "Python 2.7|3.6"

- ``pypy_73`` and ``pypy36_pp73`` (or before PyPy 7.3.0, ``pypy_41`` and
``pypy3_71``) are the binary ABI tags for the relevant version of PyPy.
You can probably ignore them.

Before pip 20 and wheel 0.34, tags looked like ``pp273-pypy_73`` or
``pp373-pypy36_pp73``, where ``273`` and ``373`` mean "Python [2|3]",
"PyPy 7.3.x". Pre-7.3.0 versions of PyPy do not support pip>=20, and thus
still rely on these old PyPy PEP 425 tags.

.. _`PEP 425`: https://www.python.org/dev/peps/pep-0425/
9 changes: 9 additions & 0 deletions docker/build_scripts/requirements-pre-7.3.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
pip==19.1.1 \
--hash=sha256:44d3d7d3d30a1eb65c7e5ff1173cdf8f7467850605ac7cc3707b6064bddd0958 \
--hash=sha256:993134f0475471b91452ca029d4390dc8f298ac63a712814f101cd1b6db46676
wheel==0.31.1 \
--hash=sha256:80044e51ec5bbf6c894ba0bc48d26a8c20a9ba629f4ca19ea26ecfcf87685f5f \
--hash=sha256:0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c
setuptools==41.0.1 \
--hash=sha256:a222d126f5471598053c9a77f4b5d4f26eaa1f150ad6e01dcf1a42e185d05613 \
--hash=sha256:c7769ce668c7a333d84e17fe8b524b1c45e7ee9f7908ad0a73e1eda7e6a5aebf
21 changes: 12 additions & 9 deletions docker/build_scripts/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# pip requirements for all cpythons
# NOTE: pip has GPG signatures; could download and verify independently.
pip==19.1.1 \
--hash=sha256:44d3d7d3d30a1eb65c7e5ff1173cdf8f7467850605ac7cc3707b6064bddd0958 \
--hash=sha256:993134f0475471b91452ca029d4390dc8f298ac63a712814f101cd1b6db46676
wheel==0.31.1 \
--hash=sha256:80044e51ec5bbf6c894ba0bc48d26a8c20a9ba629f4ca19ea26ecfcf87685f5f \
--hash=sha256:0a2e54558a0628f2145d2fc822137e322412115173e8a2ddbe1c9024338ae83c
setuptools==41.0.1 \
--hash=sha256:a222d126f5471598053c9a77f4b5d4f26eaa1f150ad6e01dcf1a42e185d05613 \
--hash=sha256:c7769ce668c7a333d84e17fe8b524b1c45e7ee9f7908ad0a73e1eda7e6a5aebf
pip==20.0.2 \
--hash=sha256:4ae14a42d8adba3205ebeb38aa68cfc0b6c346e1ae2e699a0b3bad4da19cef5c \
--hash=sha256:7db0c8ea4c7ea51c8049640e8e6e7fde949de672bfa4949920675563a5a6967f
wheel==0.34.2 \
--hash=sha256:8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96 \
--hash=sha256:df277cb51e61359aba502208d680f90c0493adec6f0e848af94948778aed386e
setuptools==44.0.0; python_version == '2.7' \
--hash=sha256:180081a244d0888b0065e18206950d603f6550721bd6f8c0a10221ed467dd78e \
--hash=sha256:e5baf7723e5bb8382fc146e33032b241efc63314211a3a120aaa55d62d2bb008
setuptools==45.2.0; python_version >= '3.5' \
--hash=sha256:316484eebff54cc18f322dea09ed031b7e3eb00811b19dcedb09bc09bba7d93d \
--hash=sha256:89c6e6011ec2f6d57d43a3f9296c4ef022c2cbf49bab26b407fe67992ae3397f
5 changes: 5 additions & 0 deletions docker/build_scripts_pypy/install_pypy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ function get_shortdir {
$exe -c 'import sys; print("pypy%d.%d-%d.%d.%d" % (sys.version_info[:2]+sys.pypy_version_info[:3]))'
}

function get_requirements_txt {
local exe=$1
$exe -c 'import sys; print("requirements-pre-7.3.0.txt" if sys.pypy_version_info < (7,3,0) else "requirements.txt")'
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is correct since pypy < 7.3 does not properly support pip>20 and wheel>0.34

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for the record: I think I actually tried this installing pip 20 and wheel 0.34, and it seemed to work? (Except that the old directory symlinks got overwritten, since pp27-pypy_41 is ambiguous, being the new-style tag for both 7.1.x and 7.2.x.)

# this is more or less equivalent to do_cpython_build, although we download a
# prebuilt pypy instead of building it from scratch
function install_one_pypy {
Expand Down