Skip to content

NpmVeresionRange is giving incorrect version range sequence for prerelease caret range #117

Description

@keshav-space

NpmVeresionRange is giving incorrect version range sequence for prerelease caret range

>>> from univers.version_range import NpmVersionRange
>>> from univers.versions import SemverVersion
>>> range = NpmVersionRange.from_native("^1.2.3-beta.2")
>>> str(range)
'vers:npm/>=1.2.3-beta.2|>=1.2.3|<1.2.4|<2.0.0'
>>> SemverVersion("1.2.3-beta.3") in range
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "../univers/src/univers/version_range.py", line 224, in __contains__
    return contains_version(version, self.constraints)
  File "../univers/src/univers/version_constraint.py", line 542, in contains_version
    raise Exception(f"Invalid constraints sequence: {constraints }")
Exception: Invalid constraints sequence: [VersionConstraint(comparator='>=', version=SemverVersion(string='1.2.3-beta.2')), VersionConstraint(comparator='>=', version=SemverVersion(string='1.2.3')), VersionConstraint(comparator='<', version=SemverVersion(string='1.2.4')), VersionConstraint(comparator='<', version=SemverVersion(string='2.0.0'))]

The correct sequence of constraints should be

'vers:npm/>=1.2.3-beta.2|<2.0.0'

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions