You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Question - do we want to retain this check with the new resolver, or is it unnecessary? Certainly the new resolver will be capable of handling double requirements (in ghe above case, giving an error because they conflict, in other cases where they don't, finding a solution that satisfies both).
I haven't yet checked, but I assume this check is only done on "top level" requirements, and multiple dependencies on the same project are fine.
To add some additional context (since the above example does fail, and might give an impression the check is a good thing). The problem is that the current implementation is extremely limiting. One common frustration is when you need different versions of a package in different environments:
# base.txt
Django>=3
# prod.txt
-r base.txt
# I want to try upgrading the code base to 3.1, but let’s be safe in production.
Django==3.0
So I would say this check should go eventually. The new resolver already eliminates most of the usages (it’s in RequirementSet.add_requirement()), but it is still called right now during the initial RequirementSet construction (before it reaches the resolver). See #7571.
Pip currently checks for multiple requirements for the same project:
That happens even with the new resolver.
Question - do we want to retain this check with the new resolver, or is it unnecessary? Certainly the new resolver will be capable of handling double requirements (in ghe above case, giving an error because they conflict, in other cases where they don't, finding a solution that satisfies both).
I haven't yet checked, but I assume this check is only done on "top level" requirements, and multiple dependencies on the same project are fine.
@pradyunsg @uranusjr @ei8fdb
The text was updated successfully, but these errors were encountered: