diff --git a/core/src/main/scala/sbt/internal/librarymanagement/cross/CrossVersionUtil.scala b/core/src/main/scala/sbt/internal/librarymanagement/cross/CrossVersionUtil.scala index 8cd43fe55..15e7bb9bb 100644 --- a/core/src/main/scala/sbt/internal/librarymanagement/cross/CrossVersionUtil.scala +++ b/core/src/main/scala/sbt/internal/librarymanagement/cross/CrossVersionUtil.scala @@ -75,11 +75,11 @@ object CrossVersionUtil { } private[sbt] def binaryScala3Version(full: String): String = full match { - case ReleaseV(maj, _, _, _) => maj - case CandidateV(maj, min, _, _) if min.toLong > 0 => maj - case MilestonV(maj, min, _, _) if min.toLong > 0 => maj - case BinCompatV(maj, min, patch, stage, _) => binaryScala3Version(s"$maj.$min.$patch$stage") - case _ => full + case ReleaseV(maj, _, _, _) => maj + case CandidateV(maj, min, patch, _) if min.toLong > 0 || patch.toLong > 0 => maj + case MilestonV(maj, min, patch, _) if min.toLong > 0 || patch.toLong > 0 => maj + case BinCompatV(maj, min, patch, stage, _) => binaryScala3Version(s"$maj.$min.$patch$stage") + case _ => full } def binaryScalaVersion(full: String): String = { diff --git a/core/src/test/scala/sbt/librarymanagement/CrossVersionTest.scala b/core/src/test/scala/sbt/librarymanagement/CrossVersionTest.scala index 8f8f0e5b1..05e849520 100644 --- a/core/src/test/scala/sbt/librarymanagement/CrossVersionTest.scala +++ b/core/src/test/scala/sbt/librarymanagement/CrossVersionTest.scala @@ -237,6 +237,15 @@ class CrossVersionTest extends UnitSpec { it should "for 3.1.0 return 3" in { binaryScalaVersion("3.1.0") shouldBe "3" } + it should "for 3.0.1-RC1 return 3" in { + binaryScalaVersion("3.0.1-RC1") shouldBe "3" + } + it should "for 3.0.1-M1 return 3" in { + binaryScalaVersion("3.0.1-M1") shouldBe "3" + } + it should "for 3.0.1-RC1-bin-SNAPSHOT return 3" in { + binaryScalaVersion("3.0.1-RC1") shouldBe "3" + } private def patchVersion(fullVersion: String) = CrossVersion(CrossVersion.patch, fullVersion, "dummy") map (fn => fn("artefact"))