From e368e7a9e6de7e91b68c9b2b4722bc0e78ba6cf6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 23 Dec 2022 11:04:36 +0000 Subject: [PATCH 1/2] builders/wheel: Ensure dist-info is written determinisically glob() returns values in "on disk" order. To make the RECORD file deterministic and consistent between builds we need to sort the data before adding to the records list. Signed-off-by: Richard Purdie --- src/poetry/core/masonry/builders/wheel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/poetry/core/masonry/builders/wheel.py b/src/poetry/core/masonry/builders/wheel.py index 9abf7f4d9..c28d5b3d8 100644 --- a/src/poetry/core/masonry/builders/wheel.py +++ b/src/poetry/core/masonry/builders/wheel.py @@ -294,7 +294,7 @@ def _write_record(self, wheel: zipfile.ZipFile) -> None: def _copy_dist_info(self, wheel: zipfile.ZipFile, source: Path) -> None: dist_info = Path(self.dist_info) - for file in source.glob("**/*"): + for file in sorted(source.glob("**/*")): if not file.is_file(): continue From 69d85c26c90d1b0c2f696392e180847ea172a7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Randy=20D=C3=B6ring?= <30527984+radoering@users.noreply.github.com> Date: Sat, 7 Jan 2023 13:31:01 +0100 Subject: [PATCH 2/2] builders/wheel: Ensure dist-info is written deterministically --- src/poetry/core/masonry/builders/wheel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/poetry/core/masonry/builders/wheel.py b/src/poetry/core/masonry/builders/wheel.py index c28d5b3d8..8d704cbdc 100644 --- a/src/poetry/core/masonry/builders/wheel.py +++ b/src/poetry/core/masonry/builders/wheel.py @@ -190,7 +190,7 @@ def _build(self, wheel: zipfile.ZipFile) -> None: lib = libs[0] - for pkg in lib.glob("**/*"): + for pkg in sorted(lib.glob("**/*")): if pkg.is_dir() or self.is_excluded(pkg): continue