From bf34774e6104ee5291a677ff67f04624b3d4e6fc Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Wed, 3 May 2017 00:30:16 +0200 Subject: [PATCH 1/2] Take excludeDependencies into account in published things --- .../src/main/scala-2.10/coursier/Tasks.scala | 57 +++++++++++------- .../exclude-dependencies/build.sbt | 4 ++ .../exclude-dependencies/coursier | Bin 0 -> 11811 bytes .../src/main/scala/Main.scala | 15 ++++- .../sbt-coursier/exclude-dependencies/test | 2 + 5 files changed, 52 insertions(+), 26 deletions(-) create mode 100755 sbt-coursier/src/sbt-test/sbt-coursier/exclude-dependencies/coursier diff --git a/sbt-coursier/src/main/scala-2.10/coursier/Tasks.scala b/sbt-coursier/src/main/scala-2.10/coursier/Tasks.scala index a7624c3bb..a33b10774 100644 --- a/sbt-coursier/src/main/scala-2.10/coursier/Tasks.scala +++ b/sbt-coursier/src/main/scala-2.10/coursier/Tasks.scala @@ -117,6 +117,31 @@ object Tasks { lazy val sv = scalaVersion.in(projectRef).get(state) lazy val sbv = scalaBinaryVersion.in(projectRef).get(state) + lazy val exclusions = { + + var anyNonSupportedExclusionRule = false + + val res = excludeDependencies + .in(projectRef) + .get(state) + .flatMap { rule => + if (rule.artifact != "*" || rule.configurations.nonEmpty) { + state.log.warn(s"Unsupported exclusion rule $rule") + anyNonSupportedExclusionRule = true + Nil + } else + Seq( + (rule.organization, FromSbt.sbtCrossVersionName(rule.name, rule.crossVersion, sv, sbv)) + ) + } + .toSet + + if (anyNonSupportedExclusionRule) + state.log.warn("Only supported exclusion rule fields: organization, name") + + res + } + for { allDependencies <- allDependenciesTask } yield { @@ -125,13 +150,20 @@ object Tasks { .map { cfg => cfg.name -> cfg.extendsConfigs.map(_.name) } .toMap - FromSbt.project( + val proj = FromSbt.project( projId, allDependencies, configMap, sv, sbv ) + + proj.copy( + dependencies = proj.dependencies.map { + case (config, dep) => + (config, dep.copy(exclusions = dep.exclusions ++ exclusions)) + } + ) } } @@ -443,24 +475,6 @@ object Tasks { FromSbt.moduleVersion(_, sv, sbv) ).toMap - var anyNonSupportedExclusionRule = false - val exclusions = excludeDependencies.value.flatMap { - rule => - if ( - rule.artifact != "*" || - rule.configurations.nonEmpty - ) { - log.warn(s"Unsupported exclusion rule $rule") - anyNonSupportedExclusionRule = true - Nil - } else - Seq((rule.organization, - FromSbt.sbtCrossVersionName(rule.name, rule.crossVersion, sv, sbv))) - }.toSet - - if (anyNonSupportedExclusionRule) - log.warn("Only supported exclusion rule fields: organization, name") - val resolvers = if (sbtClassifiers) coursierSbtResolvers.value @@ -479,10 +493,7 @@ object Tasks { val userEnabledProfiles = mavenProfiles.value val startRes = Resolution( - currentProject.dependencies.map { - case (_, dep) => - dep.copy(exclusions = dep.exclusions ++ exclusions) - }.toSet, + currentProject.dependencies.map(_._2).toSet, filter = Some(dep => !dep.optional), userActivations = if (userEnabledProfiles.isEmpty) diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/exclude-dependencies/build.sbt b/sbt-coursier/src/sbt-test/sbt-coursier/exclude-dependencies/build.sbt index d3a9c89b9..471a4db63 100644 --- a/sbt-coursier/src/sbt-test/sbt-coursier/exclude-dependencies/build.sbt +++ b/sbt-coursier/src/sbt-test/sbt-coursier/exclude-dependencies/build.sbt @@ -1,5 +1,9 @@ scalaVersion := "2.11.8" +organization := "io.get-coursier.test" +name := "sbt-coursier-exclude-dependencies" +version := "0.1.0-SNAPSHOT" + coursierCachePolicies := { if (sys.props("os.name").startsWith("Windows")) coursierCachePolicies.value diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/exclude-dependencies/coursier b/sbt-coursier/src/sbt-test/sbt-coursier/exclude-dependencies/coursier new file mode 100755 index 0000000000000000000000000000000000000000..6cada6f8bfeee885fead8a7cbfbeab130ad6b10f GIT binary patch literal 11811 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 run $ exists output +> publishLocal +$ exec java -jar coursier launch io.get-coursier.test:sbt-coursier-exclude-dependencies_2.11:0.1.0-SNAPSHOT From e6a2d23524b0a863754acf7f86499d781c045000 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Wed, 3 May 2017 00:36:24 +0200 Subject: [PATCH 2/2] Add sbt-shading excludeDependencies test --- .../exclude-dependencies/build.sbt | 17 +++++++ .../sbt-shading/exclude-dependencies/coursier | Bin 0 -> 11832 bytes .../exclude-dependencies/project/plugins.sbt | 31 ++++++++++++ .../src/main/scala/Main.scala | 44 ++++++++++++++++++ .../sbt-shading/exclude-dependencies/test | 9 ++++ 5 files changed, 101 insertions(+) create mode 100644 sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/build.sbt create mode 100755 sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/coursier create mode 100644 sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/project/plugins.sbt create mode 100644 sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/src/main/scala/Main.scala create mode 100644 sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/test diff --git a/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/build.sbt b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/build.sbt new file mode 100644 index 000000000..091b971ab --- /dev/null +++ b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/build.sbt @@ -0,0 +1,17 @@ + +enablePlugins(coursier.ShadingPlugin) +shadingNamespace := "test.shaded" +shadeNamespaces += "argonaut" + +libraryDependencies ++= Seq( + "com.github.alexarchambault" %% "argonaut-shapeless_6.2" % "1.2.0-M5" % "shaded", + // directly depending on that one for it not to be shaded + "org.scala-lang" % "scala-reflect" % scalaVersion.value +) + +excludeDependencies += SbtExclusionRule("com.chuusai", "shapeless_2.11") + +scalaVersion := "2.11.8" +organization := "io.get-coursier.test" +name := "shading-exclude-dependencies" +version := "0.1.0-SNAPSHOT" diff --git a/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/coursier b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/coursier new file mode 100755 index 0000000000000000000000000000000000000000..13c8a2b55460c6b5eb639e6f89e5c32e9be629aa GIT binary patch literal 11832 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 literal 0 HcmV?d00001 diff --git a/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/project/plugins.sbt b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/project/plugins.sbt new file mode 100644 index 000000000..8f83e814d --- /dev/null +++ b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/project/plugins.sbt @@ -0,0 +1,31 @@ +{ + 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-shading" % pluginVersion) +} + +// for the locally publish jarjar +resolvers += Resolver.mavenLocal + +val coursierJarjarVersion = "1.0.1-coursier-SNAPSHOT" + +def coursierJarjarFoundInM2 = + (file(sys.props("user.home")) / s".m2/repository/org/anarres/jarjar/jarjar-core/$coursierJarjarVersion").exists() + +def jarjarVersion = + if (coursierJarjarFoundInM2) + coursierJarjarVersion + else + sys.error( + "Ad hoc jarjar version not found. Run\n" + + " git clone https://github.com/alexarchambault/jarjar.git && cd jarjar && git checkout 249c8dbb970f8 && ./gradlew install\n" + + "to run this test" + ) + +libraryDependencies += "org.anarres.jarjar" % "jarjar-core" % jarjarVersion diff --git a/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/src/main/scala/Main.scala b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/src/main/scala/Main.scala new file mode 100644 index 000000000..80584c442 --- /dev/null +++ b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/src/main/scala/Main.scala @@ -0,0 +1,44 @@ +import java.io.File +import java.nio.file.Files + +import argonaut._ + +object Main extends App { + + def excludeCheck(): Unit = { + val className = "shapeless.HList" + val loader = Thread.currentThread.getContextClassLoader + + val found = + try { + loader.loadClass(className) + true + } catch { + case _: java.lang.ClassNotFoundException => false + } + + assert(!found, s"Expected class $className not to be found") + } + + excludeCheck() + + val expectedClassName = + if (args.contains("--shaded")) + "test.shaded.argonaut.Json" + else + // Don't use the literal "argonaut.Json", that seems to get + // changed to "test.shaded.argonaut.Json" by shading + "argonaut" + '.' + "Json" + + val className = classOf[Json].getName + + Console.err.println(s"Expected class name: $expectedClassName") + Console.err.println(s"Class name: $className") + + if (className != expectedClassName) + sys.error(s"Expected class name $expectedClassName, got $className") + + val msg = Json.obj().nospaces + + Files.write(new File("output").toPath, msg.getBytes("UTF-8")) +} diff --git a/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/test b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/test new file mode 100644 index 000000000..8665a512d --- /dev/null +++ b/sbt-shading/src/sbt-test/sbt-shading/exclude-dependencies/test @@ -0,0 +1,9 @@ +$ delete output +> run +$ exists output +> publishLocal +$ exec java -jar coursier launch io.get-coursier.test:shading-exclude-dependencies_2.11:0.1.0-SNAPSHOT +-$ exec java -jar coursier launch io.get-coursier.test:shading-exclude-dependencies_2.11:0.1.0-SNAPSHOT -- --shaded +> shading:publishLocal +-$ exec java -jar coursier launch io.get-coursier.test:shading-exclude-dependencies_2.11:0.1.0-SNAPSHOT +$ exec java -jar coursier launch io.get-coursier.test:shading-exclude-dependencies_2.11:0.1.0-SNAPSHOT -- --shaded