Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate legacy resolver #1659

Closed
atugushev opened this issue Jul 28, 2022 · 7 comments · Fixed by #1724
Closed

Deprecate legacy resolver #1659

atugushev opened this issue Jul 28, 2022 · 7 comments · Fixed by #1724
Labels
deprecation Related to deprecations or removals resolver Related to dependency resolver
Milestone

Comments

@atugushev
Copy link
Member

What's the problem this feature will solve?

Pip's legacy resolver is going to be removed any time soon, let's prepare for it.

Describe the solution you'd like

Deprecate the legacy resolver and remove it as soon as pip removes its own legacy resolver.

Alternative Solutions

Vendoring?. We've gone that path before but that didn't help.

Additional context

@atugushev atugushev added deprecation Related to deprecations or removals resolver Related to dependency resolver backwards incompatible Backwards incompatible change labels Jul 28, 2022
@Yamakaky
Copy link

In the mean time, maybe activate backtracking by default?

@AndydeCleyre
Copy link
Contributor

In the mean time, maybe activate backtracking by default?

I just want to note here that we should at least close #1647 before or at the same time as making that change.

@atugushev
Copy link
Member Author

In the mean time, maybe activate backtracking by default?

We'll do it in 7.0.0 because it's a breaking change.

@atugushev
Copy link
Member Author

Pinning the issue to bring more attention.

@atugushev atugushev modified the milestones: 7.0.0, 6.10.0 Nov 12, 2022
ssbarnea pushed a commit that referenced this issue Nov 13, 2022
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sorin Sbarnea <sorin.sbarnea@gmail.com>
Resolves #1659
@atugushev atugushev removed the backwards incompatible Backwards incompatible change label Nov 13, 2022
@jikuja
Copy link

jikuja commented Dec 13, 2022

#1752 mentions following:

--strip-extras, because otherwise using --resolver=backtracking failed with Constraints cannot have extras

This should be documented.


In my use case:

pyjwt[crypto]==2.4.0
    # via msal

is generated into requirements.txt file and then compiling dev-requirements.in

-c requirements.txt
debugpy==1.6.2

with pip-compile --resolver=backtracking dev-requirements.in

throws pip._internal.exceptions.InstallationError: Constraints cannot have extras

@ssbarnea
Copy link
Member

To be honest, I would make strip extras implicit because I never has a need to use pip-tools for something else than updating constraint files, so adding this parameter is annoying at best. There are lots of problems with extras other than not being allowed for constraints.

PS. To be clear, I use extras in all my projects, just I never need the in the output.

@ThiefMaster
Copy link

I'm the maintainer of an end application, it is meant to be installed in a clean env, so we pin everything for fully reproducible installs: the pip-compile output goes straight into the package's install_requires.

But we also have a set of dev dependencies which are constrained by the main runtime dependencies since developers install them in the same environment - so we have -c requirements.txt in our requirements.dev.in.

However, one of the dependencies we have is bleach[css]. That extra is not optional, we need the functionality this pulls in.

Or is this not necessary because extras are only used to pull in additional dependencies and thus omitting them at install time is not a problem as long as those other dependencies are installed anyway (which is the case here)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deprecation Related to deprecations or removals resolver Related to dependency resolver
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants