Imported Upstream version 44.1.1 upstream/44.1.1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 29 Dec 2020 22:04:52 +0000 (07:04 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 29 Dec 2020 22:04:52 +0000 (07:04 +0900)
.bumpversion.cfg
CHANGES.rst
setup.cfg
setuptools/__init__.py

index c8c9f544bf742b754f0805b2aa49240615d3b459..4bea6cca5ac997d36b555ab7aac0323ffe1efbd7 100644 (file)
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 44.1.0
+current_version = 44.1.1
 commit = True
 tag = True
 
index 83cd8c784bd472ecf0cd471c2c711fba64e7e68f..43b65eb33aa4dde254cc52a4495fde5e217b8241 100644 (file)
@@ -1,3 +1,9 @@
+v44.1.1
+-------
+
+* #2158: Avoid loading working set during ``Distribution.finalize_options`` prior to invoking ``_install_setup_requires``, broken since v42.0.0.
+
+
 v44.1.0
 -------
 
index cb5ae73bc431eb49c9ef1edfadf744401c0dbf5f..323d2cf59648b6cdf58a142ba353698e455cd4b3 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -19,7 +19,7 @@ universal = 1
 
 [metadata]
 name = setuptools
-version = 44.1.0
+version = 44.1.1
 description = Easily download, build, install, upgrade, and uninstall Python packages
 author = Python Packaging Authority
 author_email = distutils-sig@python.org
index a71b2bbdc6170963a66959c48080c1dedc7bb703..9d8ae1ed5f5e3702903589d4ff6c8b9807c894ac 100644 (file)
@@ -129,10 +129,27 @@ if PY3:
 def _install_setup_requires(attrs):
     # Note: do not use `setuptools.Distribution` directly, as
     # our PEP 517 backend patch `distutils.core.Distribution`.
-    dist = distutils.core.Distribution(dict(
-        (k, v) for k, v in attrs.items()
-        if k in ('dependency_links', 'setup_requires')
-    ))
+    class MinimalDistribution(distutils.core.Distribution):
+        """
+        A minimal version of a distribution for supporting the
+        fetch_build_eggs interface.
+        """
+        def __init__(self, attrs):
+            _incl = 'dependency_links', 'setup_requires'
+            filtered = {
+                k: attrs[k]
+                for k in set(_incl) & set(attrs)
+            }
+            distutils.core.Distribution.__init__(self, filtered)
+
+        def finalize_options(self):
+            """
+            Disable finalize_options to avoid building the working set.
+            Ref #2158.
+            """
+
+    dist = MinimalDistribution(attrs)
+
     # Honor setup.cfg's options.
     dist.parse_config_files(ignore_option_errors=True)
     if dist.setup_requires: