diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index e6fe3094a..1fa06a717 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1227,7 +1227,7 @@ object Classpaths { projectDependencies.value ++ libraryDependencies.value }, ivyScala <<= ivyScala or (scalaHome, scalaVersion in update, scalaBinaryVersion in update, scalaOrganization, sbtPlugin) { (sh, fv, bv, so, plugin) => - Some(new IvyScala(fv, bv, Nil, filterImplicit = false, checkExplicit = true, overrideScalaVersion = plugin, scalaOrganization = so)) + Some(new IvyScala(fv, bv, Nil, filterImplicit = false, checkExplicit = true, overrideScalaVersion = true, scalaOrganization = so)) }, artifactPath in makePom <<= artifactPathSetting(artifact in makePom), publishArtifact in makePom := publishMavenStyle.value && publishArtifact.value, diff --git a/project/Dependencies.scala b/project/Dependencies.scala index d7b5ccad0..817af7e28 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -11,7 +11,7 @@ object Dependencies { // sbt modules val ioVersion = "1.0.0-M6" val utilVersion = "0.1.0-M13" - val librarymanagementVersion = "0.1.0-M11" + val librarymanagementVersion = "0.1.0-M12" val zincVersion = "1.0.0-M3" lazy val sbtIO = "org.scala-sbt" %% "io" % ioVersion lazy val utilCollection = "org.scala-sbt" %% "util-collection" % utilVersion diff --git a/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt b/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt index ce9ed62b6..d5ffa1bec 100644 --- a/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt +++ b/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt @@ -6,6 +6,7 @@ lazy val root = (project in file(".")). settings( libraryDependencies <++= baseDirectory(dependencies), scalaVersion := "2.9.2", + ivyScala := { ivyScala.value map {_.copy(overrideScalaVersion = sbtPlugin.value)} }, autoScalaLibrary <<= baseDirectory(base => !(base / "noscala").exists ), scalaOverride <<= check("scala.App") ) diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/build.sbt b/sbt/src/sbt-test/dependency-management/scala-organization/build.sbt new file mode 100644 index 000000000..217b3f4d7 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/scala-organization/build.sbt @@ -0,0 +1,54 @@ +organization := "org.dummy" + +scalaOrganization := "org.other" + +scalaVersion := "2.11.8" + +resolvers += Resolver.file("buggy", (baseDirectory in LocalRootProject).value / "repo")( + Patterns( + ivyPatterns = Seq("[organization]/[module]/[revision]/ivy.xml"), + artifactPatterns = Seq("[organization]/[module]/[revision]/dummy.jar"), + isMavenCompatible = false, + descriptorOptional = true, + skipConsistencyCheck = true + ) +) + +libraryDependencies += "org.typelevel" %% "cats" % "0.6.0" + +val checkDependencies = taskKey[Unit]("Checks that dependcies are correct.") + +checkDependencies := { + val expected: Set[ModuleID] = Set( + "com.github.mpilquist" % "simulacrum_2.11" % "0.7.0", + "jline" % "jline" % "2.12.1", + "org.other" % "scala-compiler" % "2.11.8", + "org.other" % "scala-library" % "2.11.8", + "org.other" % "scala-reflect" % "2.11.8", + "org.scala-lang.modules" % "scala-parser-combinators_2.11" % "1.0.4", + "org.scala-lang.modules" % "scala-xml_2.11" % "1.0.5", + "org.scala-sbt" % "test-interface" % "1.0", + "org.scalacheck" % "scalacheck_2.11" % "1.12.5", + "org.typelevel" % "catalysts-macros_2.11" % "0.0.2", + "org.typelevel" % "catalysts-platform_2.11" % "0.0.2", + "org.typelevel" % "cats-core_2.11" % "0.6.0", + "org.typelevel" % "cats-free_2.11" % "0.6.0", + "org.typelevel" % "cats-kernel-laws_2.11" % "0.6.0", + "org.typelevel" % "cats-kernel_2.11" % "0.6.0", + "org.typelevel" % "cats-laws_2.11" % "0.6.0", + "org.typelevel" % "cats-macros_2.11" % "0.6.0", + "org.typelevel" % "cats_2.11" % "0.6.0", + "org.typelevel" % "discipline_2.11" % "0.4", + "org.typelevel" % "machinist_2.11" % "0.4.1", + "org.typelevel" % "macro-compat_2.11" % "1.1.0" + ) + + val resolved: Set[ModuleID] = + (for { + c <- update.value.configurations + m <- c.modules + if !m.evicted + } yield m.module.copy(extraAttributes = Map.empty)).toSet + + assert(resolved == expected) +} diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/dummy.jar b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/dummy.jar new file mode 100644 index 000000000..e69de29bb diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/ivy.xml b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/ivy.xml new file mode 100644 index 000000000..c0252721f --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-compiler/2.11.8/ivy.xml @@ -0,0 +1,37 @@ + + + + + + Scala Compiler + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/dummy.jar b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/dummy.jar new file mode 100644 index 000000000..e69de29bb diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/ivy.xml b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/ivy.xml new file mode 100644 index 000000000..fb4924a58 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-library/2.11.8/ivy.xml @@ -0,0 +1,28 @@ + + + + + + Scala Standard Library + + + + + + + + + + + + + + + + + + + + + + diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/dummy.jar b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/dummy.jar new file mode 100644 index 000000000..e69de29bb diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/ivy.xml b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/ivy.xml new file mode 100644 index 000000000..169793932 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/scala-organization/repo/org.other/scala-reflect/2.11.8/ivy.xml @@ -0,0 +1,29 @@ + + + + + + Scala Reflection Library + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sbt/src/sbt-test/dependency-management/scala-organization/test b/sbt/src/sbt-test/dependency-management/scala-organization/test new file mode 100644 index 000000000..9329a1c80 --- /dev/null +++ b/sbt/src/sbt-test/dependency-management/scala-organization/test @@ -0,0 +1 @@ +> checkDependencies diff --git a/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt b/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt index e5e0fd000..96aa4ea10 100644 --- a/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt +++ b/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt @@ -28,3 +28,5 @@ libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test" libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.3" % "test" scalaVersion := "2.11.0" + +ivyScala := ivyScala.value map {_.copy(overrideScalaVersion = sbtPlugin.value)}