Partially handle extra version for versions constraint #409
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves: python-poetry/poetry#3186
Poetry seems to assume that all packages follow SemVer specification for versioning. However, some packages do not, as python-poetry/poetry#3186 highlights with anchor-exp.
Per PEP 440 specification, when packages define more than 3 parts for the versioning, using
~= 1.4.5.0
is equivalent to>= 1.4.5.0, == 1.4.5.*
.Poetry doesn't handle that correctly today, since defining
~= 1.4.5.0
means that we accept>= 1.4.5.0, == 1.4.*.*
.This PR is an attempt at solving this case for both
~=
and wildcard operator. It is in draft for multiple reasons:~=
and wildcard operators, but what about other ones? Per the documentation,^
is only for SemVer, but this is less clear for~
, though given how it works, it also doesn't seem to be a good fit with something else than SemVer.Side note: python-poetry/poetry#3186 also highlights the fact that
~=
is undocumented in Poetry. Is there a particular reason to not document it, or would a PR documenting it would be accepted?