-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Dependencies could not be resolved. Regression? #875
Comments
It looks like This means that if in a next round, another packages requires a version not matching the current candidate, it will fail (like this) instead of trying to find another candidate. That's how the resolving algorithm works: Full-re-compute with the new constraints until it stabilises. I'm not sure of what is causing this. |
Allright, found the culprit:
@kennethreitz From what I understand, that was to do "deep extras resolving". I'm not sure I understand what's that supposed to mean exactly. I'm ready to keep stabbing at this, but I'd need some info to not go in the wrong direction. |
I believe I am seeing the same issue:
where I am unable to test dependency resolution in any older versions of pipenv due to https://github.com/kennethreitz/pipenv/issues/786. In my opinion, critical bug fixes should be applied to at least a few of the most recent major versions. |
Same issue - it's complaining about requests specifically. |
This is a bug I believe as related to @vphilippon's comment. I do not think it is related to #909 however. |
Exact, not related to #909. Or I could go ahead and open a PR with the fix and discuss there. I'll see with my free time. |
@vphilippon Since this isn't in an organization but rather a personal repo for Kenneth, we unfortunately don't have a handy @ tag to get all of us. I'd suggest just pinging @erinxocon and myself. The patch to pip here is unfortunately locked away somewhere in Kenneth's head. I don't think I understand, or have had time to look at, what's going on here. If you find some time to compile what you think may be going on, I can try to help verify assumptions. Until then though, this is something we'll have to tread lightly around before making changes. |
@nateprewitt Allright, I'll add as much as I can. Grab a chair. What's wrong?In https://github.com/kennethreitz/pipenv/issues/875#issuecomment-335570812, I noted the source of the error: selected candidates in a resolving round are added as pinned dependency of the candidate itself directly, which is wrong (more on that coming up) In https://github.com/kennethreitz/pipenv/issues/875#issuecomment-336609268, I found the source of that pin: the To help demonstrate why having the package itself, pinned, as its own dependency, is really wrong, here's how the dependency resolving algorithm works, in short:
Now, lets reproduce the issue With the above in mind. To reproduce the issue, you need this
And now
What should have happened (like it does in
What to do from here?Well, removing the Maybe Kenneth wanted to return an I think that's it. ☕️ |
@vphilippon, thank you so much for putting such a detailed breakdown! This definitely clears things up for me. Digging back through the commit log, this was added in ae4591b and as you've said it's pretty unclear why this was added. I think the next step is to put together a failing test case for this, and a working test case for installing "deep dependencies". There aren't any tickets bringing up this issue and the commit messages aren't helpful so we're just kind of guessing at this point. Looking at the code, I think this is trying to solve having a declaration like So! If anyone would like to work on putting these tests together, ensuring the first fails and the "deep dependency" works, we can look at removing the |
@nateprewitt Here's something that I think describe what you meant: But, the "foo[a] depends on bar[b]" deep resolution seems to be already ok in Anyway, we can still test the extra's resolving behavior of |
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches sanic-plugins-framework==0.5.0.dev20171225,>=0.5.0.dev20171225
Tried: 0.2.0.dev20171102, 0.2.0.dev20171102, 0.3.0.dev20171102, 0.3.0.dev20171102, 0.3.1.dev20171102, 0.3.1.dev20171102, 0.3.2.dev20171102, 0.3.2.dev20171102, 0.3.3.dev20171102, 0.3.3.dev20171102, 0.4.0.dev20171103, 0.4.0.dev20171103, 0.4.1.dev20171103, 0.4.1.dev20171103, 0.4.2.dev20171106, 0.4.2.dev20171106, 0.4.4.dev20171107, 0.4.4.dev20171107, 0.4.5.dev20171113, 0.4.5.dev20171113, 0.5.0.dev20171225, 0.5.0.dev20171225, 0.5.2.dev20180201, 0.5.2.dev20180201
|
|
Thank you @Jasonsey for sharing your bit and to @techalchemy for your answer. |
Was this ever fixed? I'm still getting the same erroneous behavior. |
Hey Kenneth, this used to work so I don't know what's happening.
So, Django CMS requires >=1.8,<1.11, but pipenv is trying to match <1.11,==1.11.6,>=1.8?
Install with --skip-lock did install 1.11.6, which is the latest Django.
I'd expect version 1.10 to be installed based on the CMS requirements.
The text was updated successfully, but these errors were encountered: