-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Improve dependency resolution and markers handling #2361
Conversation
ac5c590
to
92398ce
Compare
92398ce
to
f7f7570
Compare
I just want to let you know that your work is much appreciated and I'm looking forward to poetry 1.1 |
I love this change, however, this is wrong
It is a backwards-incompatible change unfortunately, at least from the user's perspective - which is the context it usually refers to. Looks like this will have to go out as This probably could have been released as an extra (unless it's very much related to the rest of the changes). |
@snejus This is the definition of backwards compatibility, though: new versions of Poetry will understand the old lock files and it won't break any current project. Also, the lock file, as it is, is an implementation detail and is not part of the public API so the versioning of Poetry is not impacted by the changes in the lock file format, even though we try to make these changes backwards compatible which is the case here. |
Thanks for clarifying this! I agree with this. So, if I have I assumed the latter and therefore raised the question - if that's not the case please excuse me :) |
Poetry 1.1.0 changed the marker format in python-poetry/poetry#2361
Poetry 1.1.0 changed the marker format in python-poetry/poetry#2361
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Pull Request Check List
Resolves: #2187
Resolves: #2138
Resolves: #1728
Resolves: #1457
Resolves: #907
Resolves: #1772
And possibly more
This PR improves the overall dependency resolution logic and the way we handle environment markers during resolution.
Since managing environment markers was proving to be a headache, the best course of action was to just no longer try to dump and reconcile them in the lock file at the package level.
The environment markers of each dependencies (and transitive dependencies) are now dumped in the lock file. That way we can do a full resolution using the lock file for the current environment before installing.
This was made possible by the previous work in #2342
This introduces changes to the lock file which are backwards compatible (new versions of Poetry won't break with the older lock files) but not forward compatible (older versions of Poetry might break with this new lock file format).
Unfortunately, there is no way around it and this is the best way to fix a lot of issues with the dependency resolution aspect of Poetry.
Hopefully, the 1.1 release will be good enough for people not to want to downgrade to a previous version 😅