Skip to content

Commit 534262d

Browse files
authored
Merge pull request #11241 from pradyunsg/drop-backtrack-on-build-failures
2 parents 1b7ea4d + 8bebea8 commit 534262d

File tree

8 files changed

+1
-68
lines changed

8 files changed

+1
-68
lines changed

news/11241.removal.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Remove ``--use-deprecated=backtrack-on-build-failures``.

src/pip/_internal/cli/cmdoptions.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1013,7 +1013,6 @@ def check_list_path_option(options: Values) -> None:
10131013
default=[],
10141014
choices=[
10151015
"legacy-resolver",
1016-
"backtrack-on-build-failures",
10171016
"html5lib",
10181017
],
10191018
help=("Enable deprecated functionality, that will be removed in the future."),

src/pip/_internal/cli/req_command.py

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
from pip._internal.req.req_install import InstallRequirement
3535
from pip._internal.resolution.base import BaseResolver
3636
from pip._internal.self_outdated_check import pip_self_version_check
37-
from pip._internal.utils.deprecation import deprecated
3837
from pip._internal.utils.temp_dir import (
3938
TempDirectory,
4039
TempDirectoryTypeRegistry,
@@ -270,31 +269,6 @@ def determine_resolver_variant(options: Values) -> str:
270269

271270
return "2020-resolver"
272271

273-
@staticmethod
274-
def determine_build_failure_suppression(options: Values) -> bool:
275-
"""Determines whether build failures should be suppressed and backtracked on."""
276-
if "backtrack-on-build-failures" not in options.deprecated_features_enabled:
277-
return False
278-
279-
if "legacy-resolver" in options.deprecated_features_enabled:
280-
raise CommandError("Cannot backtrack with legacy resolver.")
281-
282-
deprecated(
283-
reason=(
284-
"Backtracking on build failures can mask issues related to how "
285-
"a package generates metadata or builds a wheel. This flag will "
286-
"be removed in pip 22.2."
287-
),
288-
gone_in=None,
289-
replacement=(
290-
"avoiding known-bad versions by explicitly telling pip to ignore them "
291-
"(either directly as requirements, or via a constraints file)"
292-
),
293-
feature_flag=None,
294-
issue=10655,
295-
)
296-
return True
297-
298272
@classmethod
299273
def make_requirement_preparer(
300274
cls,
@@ -371,7 +345,6 @@ def make_resolver(
371345
use_pep517=use_pep517,
372346
config_settings=getattr(options, "config_settings", None),
373347
)
374-
suppress_build_failures = cls.determine_build_failure_suppression(options)
375348
resolver_variant = cls.determine_resolver_variant(options)
376349
# The long import name and duplicated invocation is needed to convince
377350
# Mypy into correctly typechecking. Otherwise it would complain the
@@ -391,7 +364,6 @@ def make_resolver(
391364
force_reinstall=force_reinstall,
392365
upgrade_strategy=upgrade_strategy,
393366
py_version_info=py_version_info,
394-
suppress_build_failures=suppress_build_failures,
395367
)
396368
import pip._internal.resolution.legacy.resolver
397369

src/pip/_internal/resolution/resolvelib/factory.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
from pip._internal.exceptions import (
2828
DistributionNotFound,
2929
InstallationError,
30-
InstallationSubprocessError,
3130
MetadataInconsistent,
3231
UnsupportedPythonVersion,
3332
UnsupportedWheel,
@@ -97,7 +96,6 @@ def __init__(
9796
force_reinstall: bool,
9897
ignore_installed: bool,
9998
ignore_requires_python: bool,
100-
suppress_build_failures: bool,
10199
py_version_info: Optional[Tuple[int, ...]] = None,
102100
) -> None:
103101
self._finder = finder
@@ -108,7 +106,6 @@ def __init__(
108106
self._use_user_site = use_user_site
109107
self._force_reinstall = force_reinstall
110108
self._ignore_requires_python = ignore_requires_python
111-
self._suppress_build_failures = suppress_build_failures
112109

113110
self._build_failures: Cache[InstallationError] = {}
114111
self._link_candidate_cache: Cache[LinkCandidate] = {}
@@ -201,12 +198,6 @@ def _make_candidate_from_link(
201198
)
202199
self._build_failures[link] = e
203200
return None
204-
except InstallationSubprocessError as e:
205-
if not self._suppress_build_failures:
206-
raise
207-
logger.warning("Discarding %s due to build failure: %s", link, e)
208-
self._build_failures[link] = e
209-
return None
210201

211202
base: BaseCandidate = self._editable_candidate_cache[link]
212203
else:
@@ -228,12 +219,6 @@ def _make_candidate_from_link(
228219
)
229220
self._build_failures[link] = e
230221
return None
231-
except InstallationSubprocessError as e:
232-
if not self._suppress_build_failures:
233-
raise
234-
logger.warning("Discarding %s due to build failure: %s", link, e)
235-
self._build_failures[link] = e
236-
return None
237222
base = self._link_candidate_cache[link]
238223

239224
if not extras:

src/pip/_internal/resolution/resolvelib/resolver.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ def __init__(
4747
ignore_requires_python: bool,
4848
force_reinstall: bool,
4949
upgrade_strategy: str,
50-
suppress_build_failures: bool,
5150
py_version_info: Optional[Tuple[int, ...]] = None,
5251
):
5352
super().__init__()
@@ -62,7 +61,6 @@ def __init__(
6261
force_reinstall=force_reinstall,
6362
ignore_installed=ignore_installed,
6463
ignore_requires_python=ignore_requires_python,
65-
suppress_build_failures=suppress_build_failures,
6664
py_version_info=py_version_info,
6765
)
6866
self.ignore_dependencies = ignore_dependencies

tests/functional/test_new_resolver.py

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2326,26 +2326,6 @@ def test_new_resolver_do_not_backtrack_on_build_failure(
23262326
assert "egg_info" in result.stderr
23272327

23282328

2329-
def test_new_resolver_flag_permits_backtracking_on_build_failure(
2330-
script: PipTestEnvironment,
2331-
) -> None:
2332-
create_basic_sdist_for_package(script, "pkg1", "2.0", fails_egg_info=True)
2333-
create_basic_wheel_for_package(script, "pkg1", "1.0")
2334-
2335-
script.pip(
2336-
"install",
2337-
"--use-deprecated=backtrack-on-build-failures",
2338-
"--no-cache-dir",
2339-
"--no-index",
2340-
"--find-links",
2341-
script.scratch_path,
2342-
"pkg1",
2343-
allow_stderr_warning=True,
2344-
)
2345-
2346-
script.assert_installed(pkg1="1.0")
2347-
2348-
23492329
def test_new_resolver_works_when_failing_package_builds_are_disallowed(
23502330
script: PipTestEnvironment,
23512331
) -> None:

tests/unit/resolution_resolvelib/conftest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ def factory(finder: PackageFinder, preparer: RequirementPreparer) -> Iterator[Fa
6363
force_reinstall=False,
6464
ignore_installed=False,
6565
ignore_requires_python=False,
66-
suppress_build_failures=False,
6766
py_version_info=None,
6867
)
6968

tests/unit/resolution_resolvelib/test_resolver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ def resolver(preparer: RequirementPreparer, finder: PackageFinder) -> Resolver:
2929
ignore_requires_python=False,
3030
force_reinstall=False,
3131
upgrade_strategy="to-satisfy-only",
32-
suppress_build_failures=False,
3332
)
3433
return resolver
3534

0 commit comments

Comments
 (0)