sbt / sbt-dynver

An sbt plugin to dynamically set your version from git
Apache License 2.0
300 stars 47 forks source link

DynVer Breaks on SemVer Tags with Metadata #94

Open apeschel opened 5 years ago

apeschel commented 5 years ago

DynVer doesn't respect tags with build metadata in them. SemVer tags with a + in them completely break DynVer.

Metadata SemVer tags

Input: v1.2.3+foo Expected Result: Ignore tag or Valid SemVer version (maybe use v1.2.3-13dcda87+foo.0 instead?) Actual Result: Invalid SemVer version v1.2.3+foo+0-13dcda87 sbt crash/stacktrace

[error] scala.MatchError: v1.2.3+foo+0-13dcda87 (of class java.lang.String)
[error]         at sbtdynver.GitDescribeOutput$.parse(DynVerPlugin.scala:116)
[error]         at sbtdynver.DynVer.$anonfun$getGitDescribeOutput$3(DynVerPlugin.scala:167)
[error]         at scala.Option.map(Option.scala:146)
[error]         at sbtdynver.DynVer.getGitDescribeOutput(DynVerPlugin.scala:167)
[error]         at sbtdynver.DynVerPlugin$.$anonfun$buildSettings$7(DynVerPlugin.scala:44)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error]         at sbt.internal.util.EvaluateSettings$MixedNode.evaluate0(INode.scala:221)
[error]         at sbt.internal.util.EvaluateSettings$INode.evaluate(INode.scala:164)
[error]         at sbt.internal.util.EvaluateSettings.$anonfun$submitEvaluate$1(INode.scala:87)
[error]         at sbt.internal.util.EvaluateSettings.sbt$internal$util$EvaluateSettings$$run0(INode.scala:98)
[error]         at sbt.internal.util.EvaluateSettings$$anon$3.run(INode.scala:94)
[error]         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
[error]         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[error]         at java.base/java.lang.Thread.run(Thread.java:844)
[error] scala.MatchError: v1.2.3+foo+0-13dcda87 (of class java.lang.String)
[error] Use 'last' for the full log.
dwijnand commented 5 years ago

Ouch! Sorry about that. Is this something you'd like to send a fix for? I don't know if I'll have time to get to it in the immediate future.

apeschel commented 5 years ago

I'll try to come up with a patch if I have time in the next week or so.