]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.9] gh-109002: Ensure only one wheel for each vendored package (GH-109003) (#109008)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 6 Sep 2023 18:01:05 +0000 (11:01 -0700)
committerGitHub <noreply@github.com>
Wed, 6 Sep 2023 18:01:05 +0000 (20:01 +0200)
Output with one wheel:
```
❯ GITHUB_ACTIONS=true ./Tools/build/verify_ensurepip_wheels.py
Verifying checksum for /Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl.
Expected digest: 7ccf472345f20d35bdc9d1841ff5f313260c2c33fe417f48c30ac46cccabf5be
Actual digest:   7ccf472345f20d35bdc9d1841ff5f313260c2c33fe417f48c30ac46cccabf5be
::notice file=/Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl::Successfully verified the checksum of the pip wheel.
```

Output with two wheels:
```
❯ GITHUB_ACTIONS=true ./Tools/build/verify_ensurepip_wheels.py
::error file=/Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl::Found more than one wheel for package pip.

::error file=/Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl::Found more than one wheel for package pip.
```

Output without wheels:
```
❯ GITHUB_ACTIONS=true ./Tools/build/verify_ensurepip_wheels.py
::error file=::Could not find a pip wheel on disk.
```
(cherry picked from commit f8a047941f2e4a1848700c21d58a08c9ec6a9c68)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Tools/scripts/verify_ensurepip_wheels.py

index 044d1fd6b3cf2d58eab2507a8804920746618e17..434a0b4c5387d4e7ae989b18f80e183bb8c43623 100755 (executable)
@@ -1,4 +1,4 @@
-#! /usr/bin/env python3
+#!/usr/bin/env python3
 
 """
 Compare checksums for wheels in :mod:`ensurepip` against the Cheeseshop.
@@ -35,11 +35,17 @@ def print_error(file_path: str, message: str) -> None:
 
 def verify_wheel(package_name: str) -> bool:
     # Find the package on disk
-    package_path = next(WHEEL_DIR.glob(f"{package_name}*.whl"), None)
-    if not package_path:
-        print_error("", f"Could not find a {package_name} wheel on disk.")
+    package_paths = list(WHEEL_DIR.glob(f"{package_name}*.whl"))
+    if len(package_paths) != 1:
+        if package_paths:
+            for p in package_paths:
+                print_error(p, f"Found more than one wheel for package {package_name}.")
+        else:
+            print_error("", f"Could not find a {package_name} wheel on disk.")
         return False
 
+    package_path = package_paths[0]
+
     print(f"Verifying checksum for {package_path}.")
 
     # Find the version of the package used by ensurepip