summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPradyun Gedam <3275593+pradyunsg@users.noreply.github.com>2020-08-25 20:40:27 +0530
committerGitHub <noreply@github.com>2020-08-25 20:40:27 +0530
commit0b18e21cbe64b1bd089e280fd8ba592cdbfcac61 (patch)
tree8c7e158514989b6392ef5711caf58ceb70e988c9
parentb7075b9351ef220f609e8b7bbd6045c626653fb0 (diff)
parent4c348cf3a08f05f498e5a3ad19cc268752de3b49 (diff)
downloadpip-0b18e21cbe64b1bd089e280fd8ba592cdbfcac61.tar.gz
Merge pull request #8752 from sbidoul/imp-8369-deprecation-sbi
-rw-r--r--news/8752.feature3
-rw-r--r--src/pip/_internal/commands/install.py21
-rw-r--r--src/pip/_internal/req/req_install.py13
3 files changed, 19 insertions, 18 deletions
diff --git a/news/8752.feature b/news/8752.feature
new file mode 100644
index 000000000..d2560da18
--- /dev/null
+++ b/news/8752.feature
@@ -0,0 +1,3 @@
+Make the ``setup.py install`` deprecation warning less noisy. We warn only
+when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as
+situations where both fails are most probably irrelevant to this deprecation.
diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py
index 77ec210d6..e41660070 100644
--- a/src/pip/_internal/commands/install.py
+++ b/src/pip/_internal/commands/install.py
@@ -21,7 +21,6 @@ from pip._internal.locations import distutils_scheme
from pip._internal.operations.check import check_install_conflicts
from pip._internal.req import install_given_reqs
from pip._internal.req.req_tracker import get_requirement_tracker
-from pip._internal.utils.deprecation import deprecated
from pip._internal.utils.distutils_args import parse_distutils_args
from pip._internal.utils.filesystem import test_writable_dir
from pip._internal.utils.misc import (
@@ -371,23 +370,9 @@ class InstallCommand(RequirementCommand):
# For now, we just warn about failures building legacy
# requirements, as we'll fall through to a direct
# install for those.
- legacy_build_failure_names = [
- r.name # type: ignore
- for r in build_failures if not r.use_pep517
- ] # type: List[str]
- if legacy_build_failure_names:
- deprecated(
- reason=(
- "Could not build wheels for {} which do not use "
- "PEP 517. pip will fall back to legacy 'setup.py "
- "install' for these.".format(
- ", ".join(legacy_build_failure_names)
- )
- ),
- replacement="to fix the wheel build issue reported above",
- gone_in="21.0",
- issue=8368,
- )
+ for r in build_failures:
+ if not r.use_pep517:
+ r.legacy_install_reason = 8368
to_install = resolver.get_installation_order(
requirement_set
diff --git a/src/pip/_internal/req/req_install.py b/src/pip/_internal/req/req_install.py
index 907c40249..72f792342 100644
--- a/src/pip/_internal/req/req_install.py
+++ b/src/pip/_internal/req/req_install.py
@@ -121,6 +121,7 @@ class InstallRequirement(object):
self.comes_from = comes_from
self.constraint = constraint
self.editable = editable
+ self.legacy_install_reason = None # type: Optional[int]
# source_dir is the local directory where the linked requirement is
# located, or unpacked. In case unpacking is needed, creating and
@@ -853,6 +854,18 @@ class InstallRequirement(object):
self.install_succeeded = success
+ if success and self.legacy_install_reason == 8368:
+ deprecated(
+ reason=(
+ "{} was installed using the legacy 'setup.py install' "
+ "method, because a wheel could not be built for it.".
+ format(self.name)
+ ),
+ replacement="to fix the wheel build issue reported above",
+ gone_in="21.0",
+ issue=8368,
+ )
+
def check_invalid_constraint_type(req):
# type: (InstallRequirement) -> str