diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Reconciliation.scala b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Reconciliation.scala index b44d8335b..d095ba6e0 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Reconciliation.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/Reconciliation.scala @@ -4,12 +4,14 @@ object Reconciliation { case object Default extends Reconciliation case object Relaxed extends Reconciliation case object Strict extends Reconciliation + case object SemVer extends Reconciliation def apply(input: String): Option[Reconciliation] = input match { case "default" => Some(Default) case "relaxed" => Some(Relaxed) case "strict" => Some(Strict) + case "semver" => Some(SemVer) case _ => None } } diff --git a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala index abae8f2d8..5567d4f0e 100644 --- a/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala +++ b/modules/lm-coursier/src/main/scala/lmcoursier/definitions/ToCoursier.scala @@ -50,6 +50,7 @@ object ToCoursier { case Reconciliation.Default => coursier.core.Reconciliation.Default case Reconciliation.Relaxed => coursier.core.Reconciliation.Relaxed case Reconciliation.Strict => coursier.core.Reconciliation.Strict + case Reconciliation.SemVer => coursier.core.Reconciliation.SemVer } def reconciliation(rs: Vector[(ModuleMatchers, Reconciliation)]): diff --git a/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/build.sbt b/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/build.sbt new file mode 100644 index 000000000..ae187d91a --- /dev/null +++ b/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/build.sbt @@ -0,0 +1,31 @@ + +lazy val semver61 = project + .settings( + scalaVersion := "2.11.12", + libraryDependencies ++= Seq( + "com.github.alexarchambault" %% "argonaut-shapeless_6.2" % "1.2.0-M11", + "io.argonaut" %% "argonaut" % "6.1" + ), + versionReconciliation += "*" % "*" % "semver" + ) + +lazy val semver62 = project + .settings( + scalaVersion := "2.11.12", + libraryDependencies ++= Seq( + "com.github.alexarchambault" %% "argonaut-shapeless_6.2" % "1.2.0-M11", + "io.argonaut" %% "argonaut" % "6.2" + ), + versionReconciliation += "*" % "*" % "semver" + ) + +lazy val strict62 = project + .settings( + scalaVersion := "2.11.12", + libraryDependencies ++= Seq( + "com.github.alexarchambault" %% "argonaut-shapeless_6.2" % "1.2.0-M11", + "io.argonaut" %% "argonaut" % "6.2" + ), + versionReconciliation += "*" % "*" % "strict" + ) + diff --git a/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/project/plugins.sbt b/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/project/plugins.sbt new file mode 100644 index 000000000..71a44ffd3 --- /dev/null +++ b/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/project/plugins.sbt @@ -0,0 +1,13 @@ +addSbtPlugin { + + val name = sys.props.getOrElse( + "plugin.name", + sys.error("plugin.name Java property not set") + ) + val version = sys.props.getOrElse( + "plugin.version", + sys.error("plugin.version Java property not set") + ) + + "io.get-coursier" % name % version +} \ No newline at end of file diff --git a/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/test b/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/test new file mode 100644 index 000000000..68500bae5 --- /dev/null +++ b/modules/sbt-coursier/src/sbt-test/shared-2/semver-reconciliation/test @@ -0,0 +1,3 @@ +-> semver61/update +> semver62/update +-> strict62/update