diff options
author | Raphaël Barrois <raphael.barrois@polyconseil.fr> | 2019-11-21 12:45:28 +0100 |
---|---|---|
committer | Raphaël Barrois <raphael.barrois@polyconseil.fr> | 2019-11-21 13:13:19 +0100 |
commit | da55cf15dd71a0d9a839e7507e4fc69396c8326d (patch) | |
tree | 9fa88a3fab1f631ab82f5329f4ec0ad71fd01023 /semantic_version | |
parent | 371faaf6453b07f5316e356e68d7f26ae44b0df9 (diff) | |
download | semantic-version-da55cf15dd71a0d9a839e7507e4fc69396c8326d.tar.gz |
Fix NpmSpec prerelease-handling.
Thanks to Nathan Walters for spotting this.
Npm ranges with a `<X.Y.Z-P` component were not properly expanded:
they were converted to:
<X.Y.0 || (>=X.Y.0 && <X.Y.Z-P && no-prerelease)
The correct expansion is:
<X.Y.0 || (>=X.Y.0-* && <X.Y.Z-P)
Closes #86.
Diffstat (limited to 'semantic_version')
-rw-r--r-- | semantic_version/base.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/semantic_version/base.py b/semantic_version/base.py index 4327fa1..1b0bac5 100644 --- a/semantic_version/base.py +++ b/semantic_version/base.py @@ -1273,7 +1273,7 @@ class NpmSpec(BaseSpec): prerelease_policy=Range.PRERELEASE_ALWAYS, )) elif clause.operator in (Range.OP_LT, Range.OP_LTE): - prerelease_clauses.append(cls.range( + prerelease_clauses.append(Range( operator=Range.OP_GTE, target=Version( major=clause.target.major, @@ -1281,6 +1281,7 @@ class NpmSpec(BaseSpec): patch=0, prerelease=(), ), + prerelease_policy=Range.PRERELEASE_ALWAYS, )) prerelease_clauses.append(clause) non_prerel_clauses.append(cls.range( |