From 8bebea801d266b7608ff623bc32469a9e4dc60be Mon Sep 17 00:00:00 2001 From: Pradyun Gedam Date: Fri, 15 Jul 2022 08:26:43 +0100 Subject: [PATCH] Remove `--use-deprecated=backtrack-on-build-failures` This flag is due for removal, in pip 22.2. --- news/11241.removal.rst | 1 + src/pip/_internal/cli/cmdoptions.py | 1 - src/pip/_internal/cli/req_command.py | 28 ------------------- .../resolution/resolvelib/factory.py | 15 ---------- .../resolution/resolvelib/resolver.py | 2 -- tests/functional/test_new_resolver.py | 20 ------------- tests/unit/resolution_resolvelib/conftest.py | 1 - .../resolution_resolvelib/test_resolver.py | 1 - 8 files changed, 1 insertion(+), 68 deletions(-) create mode 100644 news/11241.removal.rst diff --git a/news/11241.removal.rst b/news/11241.removal.rst new file mode 100644 index 00000000000..69fb018660b --- /dev/null +++ b/news/11241.removal.rst @@ -0,0 +1 @@ +Remove ``--use-deprecated=backtrack-on-build-failures``. diff --git a/src/pip/_internal/cli/cmdoptions.py b/src/pip/_internal/cli/cmdoptions.py index df5152a78c1..35ae1e68c2e 100644 --- a/src/pip/_internal/cli/cmdoptions.py +++ b/src/pip/_internal/cli/cmdoptions.py @@ -1013,7 +1013,6 @@ def check_list_path_option(options: Values) -> None: default=[], choices=[ "legacy-resolver", - "backtrack-on-build-failures", "html5lib", ], help=("Enable deprecated functionality, that will be removed in the future."), diff --git a/src/pip/_internal/cli/req_command.py b/src/pip/_internal/cli/req_command.py index 6db058869ac..b289426cfe8 100644 --- a/src/pip/_internal/cli/req_command.py +++ b/src/pip/_internal/cli/req_command.py @@ -34,7 +34,6 @@ from pip._internal.req.req_install import InstallRequirement from pip._internal.resolution.base import BaseResolver from pip._internal.self_outdated_check import pip_self_version_check -from pip._internal.utils.deprecation import deprecated from pip._internal.utils.temp_dir import ( TempDirectory, TempDirectoryTypeRegistry, @@ -270,31 +269,6 @@ def determine_resolver_variant(options: Values) -> str: return "2020-resolver" - @staticmethod - def determine_build_failure_suppression(options: Values) -> bool: - """Determines whether build failures should be suppressed and backtracked on.""" - if "backtrack-on-build-failures" not in options.deprecated_features_enabled: - return False - - if "legacy-resolver" in options.deprecated_features_enabled: - raise CommandError("Cannot backtrack with legacy resolver.") - - deprecated( - reason=( - "Backtracking on build failures can mask issues related to how " - "a package generates metadata or builds a wheel. This flag will " - "be removed in pip 22.2." - ), - gone_in=None, - replacement=( - "avoiding known-bad versions by explicitly telling pip to ignore them " - "(either directly as requirements, or via a constraints file)" - ), - feature_flag=None, - issue=10655, - ) - return True - @classmethod def make_requirement_preparer( cls, @@ -371,7 +345,6 @@ def make_resolver( use_pep517=use_pep517, config_settings=getattr(options, "config_settings", None), ) - suppress_build_failures = cls.determine_build_failure_suppression(options) resolver_variant = cls.determine_resolver_variant(options) # The long import name and duplicated invocation is needed to convince # Mypy into correctly typechecking. Otherwise it would complain the @@ -391,7 +364,6 @@ def make_resolver( force_reinstall=force_reinstall, upgrade_strategy=upgrade_strategy, py_version_info=py_version_info, - suppress_build_failures=suppress_build_failures, ) import pip._internal.resolution.legacy.resolver diff --git a/src/pip/_internal/resolution/resolvelib/factory.py b/src/pip/_internal/resolution/resolvelib/factory.py index 4569033db0a..a4c24b52a1b 100644 --- a/src/pip/_internal/resolution/resolvelib/factory.py +++ b/src/pip/_internal/resolution/resolvelib/factory.py @@ -27,7 +27,6 @@ from pip._internal.exceptions import ( DistributionNotFound, InstallationError, - InstallationSubprocessError, MetadataInconsistent, UnsupportedPythonVersion, UnsupportedWheel, @@ -97,7 +96,6 @@ def __init__( force_reinstall: bool, ignore_installed: bool, ignore_requires_python: bool, - suppress_build_failures: bool, py_version_info: Optional[Tuple[int, ...]] = None, ) -> None: self._finder = finder @@ -108,7 +106,6 @@ def __init__( self._use_user_site = use_user_site self._force_reinstall = force_reinstall self._ignore_requires_python = ignore_requires_python - self._suppress_build_failures = suppress_build_failures self._build_failures: Cache[InstallationError] = {} self._link_candidate_cache: Cache[LinkCandidate] = {} @@ -201,12 +198,6 @@ def _make_candidate_from_link( ) self._build_failures[link] = e return None - except InstallationSubprocessError as e: - if not self._suppress_build_failures: - raise - logger.warning("Discarding %s due to build failure: %s", link, e) - self._build_failures[link] = e - return None base: BaseCandidate = self._editable_candidate_cache[link] else: @@ -228,12 +219,6 @@ def _make_candidate_from_link( ) self._build_failures[link] = e return None - except InstallationSubprocessError as e: - if not self._suppress_build_failures: - raise - logger.warning("Discarding %s due to build failure: %s", link, e) - self._build_failures[link] = e - return None base = self._link_candidate_cache[link] if not extras: diff --git a/src/pip/_internal/resolution/resolvelib/resolver.py b/src/pip/_internal/resolution/resolvelib/resolver.py index 32ef7899ba6..a605d6c254f 100644 --- a/src/pip/_internal/resolution/resolvelib/resolver.py +++ b/src/pip/_internal/resolution/resolvelib/resolver.py @@ -47,7 +47,6 @@ def __init__( ignore_requires_python: bool, force_reinstall: bool, upgrade_strategy: str, - suppress_build_failures: bool, py_version_info: Optional[Tuple[int, ...]] = None, ): super().__init__() @@ -62,7 +61,6 @@ def __init__( force_reinstall=force_reinstall, ignore_installed=ignore_installed, ignore_requires_python=ignore_requires_python, - suppress_build_failures=suppress_build_failures, py_version_info=py_version_info, ) self.ignore_dependencies = ignore_dependencies diff --git a/tests/functional/test_new_resolver.py b/tests/functional/test_new_resolver.py index f3acdb9ca9f..efcae29289f 100644 --- a/tests/functional/test_new_resolver.py +++ b/tests/functional/test_new_resolver.py @@ -2326,26 +2326,6 @@ def test_new_resolver_do_not_backtrack_on_build_failure( assert "egg_info" in result.stderr -def test_new_resolver_flag_permits_backtracking_on_build_failure( - script: PipTestEnvironment, -) -> None: - create_basic_sdist_for_package(script, "pkg1", "2.0", fails_egg_info=True) - create_basic_wheel_for_package(script, "pkg1", "1.0") - - script.pip( - "install", - "--use-deprecated=backtrack-on-build-failures", - "--no-cache-dir", - "--no-index", - "--find-links", - script.scratch_path, - "pkg1", - allow_stderr_warning=True, - ) - - script.assert_installed(pkg1="1.0") - - def test_new_resolver_works_when_failing_package_builds_are_disallowed( script: PipTestEnvironment, ) -> None: diff --git a/tests/unit/resolution_resolvelib/conftest.py b/tests/unit/resolution_resolvelib/conftest.py index 6cef3c17cff..a8889293bc3 100644 --- a/tests/unit/resolution_resolvelib/conftest.py +++ b/tests/unit/resolution_resolvelib/conftest.py @@ -63,7 +63,6 @@ def factory(finder: PackageFinder, preparer: RequirementPreparer) -> Iterator[Fa force_reinstall=False, ignore_installed=False, ignore_requires_python=False, - suppress_build_failures=False, py_version_info=None, ) diff --git a/tests/unit/resolution_resolvelib/test_resolver.py b/tests/unit/resolution_resolvelib/test_resolver.py index db71f911acd..87c2b5f3533 100644 --- a/tests/unit/resolution_resolvelib/test_resolver.py +++ b/tests/unit/resolution_resolvelib/test_resolver.py @@ -29,7 +29,6 @@ def resolver(preparer: RequirementPreparer, finder: PackageFinder) -> Resolver: ignore_requires_python=False, force_reinstall=False, upgrade_strategy="to-satisfy-only", - suppress_build_failures=False, ) return resolver