diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-05-31 16:34:03 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-05-31 16:34:07 +0100 |
| commit | 5a0404fa3875a069f7a6436f508116e852909cf2 (patch) | |
| tree | 84fd9f76f5ea30da677beef6a4d99d0495bdf2cc /setuptools/dist.py | |
| parent | 2234e88b7b820c40f29d7ddadc182b0f130eaa1d (diff) | |
| download | python-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.py | 4 |
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) ) |
