summaryrefslogtreecommitdiff
path: root/setuptools/dist.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-05-31 16:34:03 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-05-31 16:34:07 +0100
commit5a0404fa3875a069f7a6436f508116e852909cf2 (patch)
tree84fd9f76f5ea30da677beef6a4d99d0495bdf2cc /setuptools/dist.py
parent2234e88b7b820c40f29d7ddadc182b0f130eaa1d (diff)
downloadpython-setuptools-git-5a0404fa3875a069f7a6436f508116e852909cf2.tar.gz
setuptools/dist: Fix reproducibility issue by sorting globbing
globbing uses os.listdir() which returns order on disk which is unsorted. Ultimately this leads to random ordering of License-File entries in PKG-INFO and means the resulting output isn't deterministic. Adding a sort fixes that. Switch to glob instead ot iglob since sorted() removes the benefit of an iterator. https://github.com/pypa/setuptools/issues/2691 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r--setuptools/dist.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py
index 6e3f25f9..04db6843 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -15,7 +15,7 @@ import distutils.command
from distutils.util import strtobool
from distutils.debug import DEBUG
from distutils.fancy_getopt import translate_longopt
-from glob import iglob
+from glob import glob
import itertools
import textwrap
from typing import List, Optional, TYPE_CHECKING
@@ -603,7 +603,7 @@ class Distribution(_Distribution):
return (
path
for pattern in patterns
- for path in iglob(pattern)
+ for path in sorted(glob(pattern))
if not path.endswith('~')
and os.path.isfile(path)
)