Support for '^' is not working
Hi, I ran into this issue .. are you planning to support caret ?
Semver.create("^1.2.3")
java.lang.IllegalArgumentException: found: '^', expected: '0-9+, =, <, <=, >, >= or ~'
at com.github.jknack.semver.SemverParser.error(SemverParser.java:189)
at com.github.jknack.semver.SemverParser.error(SemverParser.java:184)
at com.github.jknack.semver.SemverParser.digits(SemverParser.java:202)
at com.github.jknack.semver.SemverParser.versionNumber(SemverParser.java:172)
at com.github.jknack.semver.SemverParser.version(SemverParser.java:137)
at com.github.jknack.semver.SemverParser.rangeOrVersion(SemverParser.java:105)
at com.github.jknack.semver.SemverParser.expression(SemverParser.java:88)
at com.github.jknack.semver.SemverParser.parse(SemverParser.java:55)
at com.github.jknack.semver.Semver.create(Semver.java:176)
workaround (slowish ;) )
if ( spec.startsWith("^") ) {
String oldspec = spec;
String rawversion = oldspec.substring(1);
String[] split = rawversion.split("\\.");
int major = Integer.parseInt(split[0]);
spec = ">="+ rawversion +" < "+(major+1)+".0.0";
System.out.println("oldspec: "+oldspec+" => "+spec);
}
Does not work for complex queries (caret can occur inside expressions)
another one:
System.out.println(Semver.create(">=15.0.0 <16.0.0").matches("16.0.0-beta.5")+" should be false");
Try this library, it seems to be more full featured: https://github.com/vdurmont/semver4j