diff --git a/README.rst b/README.rst index a540240b9..153e3ea73 100644 --- a/README.rst +++ b/README.rst @@ -571,6 +571,8 @@ This section lists ``pip-tools`` features that are currently deprecated. default. Use ``--no-allow-unsafe`` to keep the old behavior. It is recommended to pass the ``--allow-unsafe`` now to adapt to the upcoming change. +- Legacy resolver is deprecated and will be removed in future versions. + Use ``--resolver=backtracking`` instead. A Note on Resolvers =================== diff --git a/piptools/scripts/compile.py b/piptools/scripts/compile.py index c0d9fbf5b..1a01c5d05 100755 --- a/piptools/scripts/compile.py +++ b/piptools/scripts/compile.py @@ -378,6 +378,13 @@ def cli( if isinstance(output_file, LazyFile): # pragma: no cover ctx.call_on_close(safecall(output_file.close_intelligently)) + if resolver_name == "legacy": + log.warning( + "WARNING: using legacy resolver is deprecated and will be removed in " + "future versions. The default resolver will be change to 'backtracking' " + "in 7.0.0 version. Specify --resolver=backtracking to silence this warning." + ) + ### # Setup ### diff --git a/tests/test_cli_compile.py b/tests/test_cli_compile.py index 300f142f2..1b5016782 100644 --- a/tests/test_cli_compile.py +++ b/tests/test_cli_compile.py @@ -2546,3 +2546,17 @@ def test_failure_of_legacy_resolver_prompts_for_backtracking( assert out.exit_code == 0, out else: # pragma: no cover raise AssertionError("unreachable") + + +def test_print_deprecation_warning_if_using_legacy_resolver(runner, current_resolver): + with open("requirements.in", "w"): + pass + + out = runner.invoke(cli) + assert out.exit_code == 0, out + + expected_warning = "WARNING: using legacy resolver is deprecated" + if current_resolver == "legacy": + assert expected_warning in out.stderr + else: + assert expected_warning not in out.stderr