Support resolving the latest sub-revision of a module

Components of revisions are separated by dots or hyphens.

In case you "end the revision with a `+`" (see [1]), the latest sub-revision of the
dependency module should be selected when resolving dependencies.

Accept revisions such as "1.2+" or "1.2.+" and "1.2.3-+".

Fixes #424.

[1]: http://ant.apache.org/ivy/history/latest-milestone/ivyfile/dependency.html
This commit is contained in:
Claudio Bley
2017-06-08 18:00:06 +02:00
parent f6493a2d5a
commit 2851f7d364
2 changed files with 25 additions and 16 deletions
@@ -20,6 +20,10 @@ object VersionConstraintTests extends TestSuite {
val c0 = Parse.versionConstraint("(,1.2]")
assert(c0 == Some(VersionConstraint.interval(VersionInterval(None, Some(Version("1.2")), false, true))))
}
'latestSubRevision{
val c0 = Parse.versionConstraint("1.2.3-+")
assert(c0 == Some(VersionConstraint.interval(VersionInterval(Some(Version("1.2.3")), Some(Version("1.2.4-a1")), true, false))))
}
}
'repr{