-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Originally posted by @andrew in #538
I've also made a new version range library - the Vers Ruby gem (https://rubygems.org/gems/vers). It takes a mathematical approach by representing all version ranges as intervals internally (like [1.0.0, 2.0.0)), which makes set operations like union and intersection much cleaner than string parsing.
It implements the VERS specification for universal version ranges and supports the native syntax of npm, RubyGems, PyPI, Maven, NuGet, and others. The cool part is it converts everything to a standardized format while preserving the original semantics.
There's also a JSON test suite (https://github.com/andrew/vers/blob/main/test-suite-data.json) with 37 test cases that other language implementations can use to ensure they're all compatible with each other. Makes it much easier to build consistent tooling across different ecosystems.
Originally posted by @pombredanne in #538
This is great. Couple things to note:
- I am working on a schema for the VERS test suite similar to the new schema for PURL tests
- Eventually I want to port the test suite of https://github.com/andrew/vers/blob/main/test-suite-data.json ... over 8000 tests sourced from each of the upstream test suites... we can merge these in a single suite.