Skip to content

Add Basic Support for Semantic Versioning#56

Merged
johannesduesing merged 4 commits into
developfrom
feature/semver
Mar 30, 2026
Merged

Add Basic Support for Semantic Versioning#56
johannesduesing merged 4 commits into
developfrom
feature/semver

Conversation

@johannesduesing

Copy link
Copy Markdown
Member

As discussed in #45, we want built-in support for handling semantic version numbers within MARIN. Some major use-cases in large-scale analyses are:

  • Determining whether a given version number follows the Semantic Versioning standard
  • Parsing Semantic Versioning numbers and comparing them to each other / sorting them
  • Parsing version range specifications and deciding whether a given version number falls within a given range

This PR adds semver-compliant parsing of version numbers and (Maven-Specific) version ranges. Every Artifact Identifier now provides an accessor for (lazily) testing whether its version is semver-compliant, and for obtaining the parsed version representation. Maven version ranges can now also be parsed and checked for version containment. Version objects can be compared using the SemVer standard. All functionality is implemented from scratch without depending on external libraries.

This PR does not use the new version range parsing within the PomResolver to compute effective dependency targets for ranges yet. This is left for the next release, as it requires an extensive redesign and exhaustive testing.

Closes #45.

@johannesduesing johannesduesing self-assigned this Mar 30, 2026
@johannesduesing johannesduesing added the enhancement New feature or request label Mar 30, 2026
@johannesduesing johannesduesing merged commit e8a99ab into develop Mar 30, 2026
1 check passed
@johannesduesing johannesduesing deleted the feature/semver branch March 30, 2026 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Support for Semantic Versioning

1 participant