From 688e5342f1d8b94db76cc323462eca67e8744dd6 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Thu, 11 May 2017 23:54:53 +0200 Subject: [PATCH] Add more refined typelevel test Fixes https://github.com/coursier/coursier/issues/536 --- sbt-coursier/src/main/scala/coursier/Tasks.scala | 6 +++++- .../typelevel-with-dependencies/build.sbt | 9 +++++++++ .../typelevel-with-dependencies/project/plugins.sbt | 11 +++++++++++ .../src/main/scala/Foo.scala | 5 +++++ .../sbt-coursier/typelevel-with-dependencies/test | 1 + 5 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/build.sbt create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/project/plugins.sbt create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/src/main/scala/Foo.scala create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/test diff --git a/sbt-coursier/src/main/scala/coursier/Tasks.scala b/sbt-coursier/src/main/scala/coursier/Tasks.scala index d6db4d8c2..2b80cb095 100644 --- a/sbt-coursier/src/main/scala/coursier/Tasks.scala +++ b/sbt-coursier/src/main/scala/coursier/Tasks.scala @@ -5,6 +5,7 @@ import java.net.URL import java.util.concurrent.{ExecutorService, Executors} import coursier.core.{Authentication, Publication} +import coursier.extra.Typelevel import coursier.ivy.{IvyRepository, PropertiesPattern} import coursier.Keys._ import coursier.Structure._ @@ -504,6 +505,8 @@ object Tasks { val userEnabledProfiles = mavenProfiles.value + val typelevel = scalaOrganization.value == Typelevel.typelevelOrg + val startRes = Resolution( currentProject.dependencies.map(_._2).toSet, filter = Some(dep => !dep.optional), @@ -517,7 +520,8 @@ object Tasks { userForceVersions ++ forcedScalaModules(so, sv) ++ interProjectDependencies.map(_.moduleVersion), - projectCache = parentProjectCache + projectCache = parentProjectCache, + mapDependencies = if (typelevel) Some(Typelevel.swap(_)) else None ) if (verbosityLevel >= 2) { diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/build.sbt b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/build.sbt new file mode 100644 index 000000000..f61164147 --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/build.sbt @@ -0,0 +1,9 @@ +scalaVersion := "2.12.2-bin-typelevel-4" +scalaOrganization := "org.typelevel" +scalacOptions += "-Yinduction-heuristics" + +libraryDependencies ++= Seq( + "com.47deg" %% "freestyle" % "0.1.0", + // CrossVersion.patch not available in sbt 0.13.8 + compilerPlugin("org.scalamacros" % "paradise_2.12.2" % "2.1.0") +) diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/project/plugins.sbt b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/project/plugins.sbt new file mode 100644 index 000000000..152225a9e --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/project/plugins.sbt @@ -0,0 +1,11 @@ +{ + val pluginVersion = sys.props.getOrElse( + "plugin.version", + throw new RuntimeException( + """|The system property 'plugin.version' is not defined. + |Specify this property using the scriptedLaunchOpts -D.""".stripMargin + ) + ) + + addSbtPlugin("io.get-coursier" % "sbt-coursier" % pluginVersion) +} diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/src/main/scala/Foo.scala b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/src/main/scala/Foo.scala new file mode 100644 index 000000000..cf64974eb --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/src/main/scala/Foo.scala @@ -0,0 +1,5 @@ +import freestyle._ + +@free trait Foo { + def bzz: FS[java.lang.String] +} diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/test b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/test new file mode 100644 index 000000000..5df2af1f3 --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/typelevel-with-dependencies/test @@ -0,0 +1 @@ +> compile