From 81d7edb6c65bf6a907dfa894cf4d16d77cfaebfc Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 29 May 2019 23:48:05 -0400 Subject: [PATCH 1/3] lm-coursier-shaded 1.1.0-M14-3 Fixes #4738 --- .../librarymanagement/CoursierInputsTasks.scala | 12 +++++------- .../sbt/internal/librarymanagement/IvyXml.scala | 10 ++++------ project/Dependencies.scala | 2 +- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/main/src/main/scala/sbt/internal/librarymanagement/CoursierInputsTasks.scala b/main/src/main/scala/sbt/internal/librarymanagement/CoursierInputsTasks.scala index b8906840f..b837b737d 100644 --- a/main/src/main/scala/sbt/internal/librarymanagement/CoursierInputsTasks.scala +++ b/main/src/main/scala/sbt/internal/librarymanagement/CoursierInputsTasks.scala @@ -58,16 +58,14 @@ private[sbt] object CoursierInputsTasks { sv, sbv ) - val proj1 = proj0.copy( - dependencies = proj0.dependencies.map { - case (config, dep) => - (config, dep.copy(exclusions = dep.exclusions ++ exclusions0)) - } - ) + val proj1 = proj0.withDependencies(proj0.dependencies.map { + case (config, dep) => + (config, dep.withExclusions(dep.exclusions ++ exclusions0)) + }) auOpt match { case Some(au) => val props = proj1.properties :+ ("info.apiURL" -> au.toString) - proj1.copy(properties = props) + proj1.withProperties(props) case _ => proj1 } } diff --git a/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala b/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala index c76992aff..9934d485c 100644 --- a/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala +++ b/main/src/main/scala/sbt/internal/librarymanagement/IvyXml.scala @@ -85,11 +85,9 @@ object IvyXml { .collect { case (conf, dep) if conf.value == shadedConfig.value => dep } } - val project: Project = project0.copy( - dependencies = project0.dependencies.collect { - case p @ (_, dep) if !filterOutDependencies(dep) => p - } - ) + val project: Project = project0.withDependencies(project0.dependencies.collect { + case p @ (_, dep) if !filterOutDependencies(dep) => p + }) val infoAttrs = (project.module.attributes.toSeq ++ project.properties).foldLeft[xml.MetaData](xml.Null) { @@ -186,7 +184,7 @@ object IvyXml { val currentProject = { val proj = csrProject.value val publications = csrPublications.value - proj.copy(publications = publications) + proj.withPublications(publications) } IvyXml.writeFiles( currentProject, diff --git a/project/Dependencies.scala b/project/Dependencies.scala index ec8ed92b1..9c5f0a5fb 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -112,7 +112,7 @@ object Dependencies { def addSbtZincCompileCore(p: Project): Project = addSbtModule(p, sbtZincPath, "zincCompileCore", zincCompileCore) - val lmCoursierVersion = "1.1.0-M14-3" + val lmCoursierVersion = "1.1.0-M14-4" val lmCoursierShaded = "io.get-coursier" %% "lm-coursier-shaded" % lmCoursierVersion val sjsonNewScalaJson = Def.setting { From 5b96bcae067b10a4cfb482f07abd00e7b35dc86d Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 30 May 2019 00:01:00 -0400 Subject: [PATCH 2/3] Move to dependencyResolutionTask to Defaults --- main/src/main/scala/sbt/Defaults.scala | 22 +++++++++++++++---- .../sbt/internal/LibraryManagement.scala | 15 ------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index c3744be56..e00d863d0 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -12,6 +12,7 @@ import java.net.{ URI, URL, URLClassLoader } import java.util.Optional import java.util.concurrent.{ Callable, TimeUnit } +import lmcoursier.CoursierDependencyResolution import lmcoursier.definitions.{ Configuration => CConfiguration } import org.apache.ivy.core.module.descriptor.ModuleDescriptor import org.apache.ivy.core.module.id.ModuleRevisionId @@ -1910,6 +1911,19 @@ object Defaults extends BuildCommon { } ) ) + + def dependencyResolutionTask: Def.Initialize[Task[DependencyResolution]] = + Def.taskDyn { + if (useCoursier.value) { + Def.task { CoursierDependencyResolution(csrConfiguration.value) } + } else + Def.task { + IvyDependencyResolution( + ivyConfiguration.value, + CustomHttp.okhttpClient.value + ) + } + } } object Classpaths { import Defaults._ @@ -2232,7 +2246,7 @@ object Classpaths { ) else None }, - dependencyResolution := LibraryManagement.dependencyResolutionTask.value, + dependencyResolution := dependencyResolutionTask.value, publisher := IvyPublisher(ivyConfiguration.value, CustomHttp.okhttpClient.value), ivyConfiguration := mkIvyConfiguration.value, ivyConfigurations := { @@ -2399,7 +2413,7 @@ object Classpaths { transitiveClassifiers.value.toVector ) }, - dependencyResolution := LibraryManagement.dependencyResolutionTask.value, + dependencyResolution := dependencyResolutionTask.value, csrConfiguration := LMCoursier.updateClassifierConfigurationTask.value, updateClassifiers in TaskGlobal := (Def.task { val s = streams.value @@ -2602,7 +2616,7 @@ object Classpaths { ).withScalaOrganization(scalaOrganization.value) ) }, - dependencyResolution := LibraryManagement.dependencyResolutionTask.value, + dependencyResolution := dependencyResolutionTask.value, csrConfiguration := LMCoursier.updateSbtClassifierConfigurationTask.value, updateSbtClassifiers in TaskGlobal := (Def.task { val lm = dependencyResolution.value @@ -2645,7 +2659,7 @@ object Classpaths { ) ++ inTask(scalaCompilerBridgeScope)( Seq( - dependencyResolution := LibraryManagement.dependencyResolutionTask.value, + dependencyResolution := dependencyResolutionTask.value, csrConfiguration := LMCoursier.scalaCompilerBridgeConfigurationTask.value, csrResolvers := CoursierRepositoriesTasks.coursierResolversTask.value, externalResolvers := scalaCompilerBridgeResolvers.value, diff --git a/main/src/main/scala/sbt/internal/LibraryManagement.scala b/main/src/main/scala/sbt/internal/LibraryManagement.scala index 348f5c9fa..713e59402 100644 --- a/main/src/main/scala/sbt/internal/LibraryManagement.scala +++ b/main/src/main/scala/sbt/internal/LibraryManagement.scala @@ -8,12 +8,10 @@ package sbt package internal -import lmcoursier.CoursierDependencyResolution import java.io.File import sbt.internal.librarymanagement._ import sbt.internal.util.{ ConsoleAppender, LogOption } import sbt.librarymanagement._ -import sbt.librarymanagement.ivy.IvyDependencyResolution import sbt.librarymanagement.syntax._ import sbt.util.{ CacheStore, CacheStoreFactory, Logger, Tracked } import sbt.io.IO @@ -47,19 +45,6 @@ private[sbt] object LibraryManagement { coursierOpt.orElse(notIvyOpt).getOrElse(true) } - def dependencyResolutionTask: Def.Initialize[Task[DependencyResolution]] = - Def.taskDyn { - if (Keys.useCoursier.value) { - Def.task { CoursierDependencyResolution(Keys.csrConfiguration.value) } - } else - Def.task { - IvyDependencyResolution( - Keys.ivyConfiguration.value, - CustomHttp.okhttpClient.value - ) - } - } - def cachedUpdate( lm: DependencyResolution, module: ModuleDescriptor, From a5a8c6373257c2115238cd5d61a61bbf5a96133e Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 30 May 2019 00:24:55 -0400 Subject: [PATCH 3/3] Move Coursier related tasks into sbt.coursierint Ref #4713 --- main/src/main/scala/sbt/Defaults.scala | 1 + .../CoursierArtifactsTasks.scala | 3 +-- .../CoursierInputsTasks.scala | 7 +++---- .../CoursierRepositoriesTasks.scala | 5 ++--- .../scala/sbt/{internal => coursierint}/LMCoursier.scala | 5 ++--- 5 files changed, 9 insertions(+), 12 deletions(-) rename main/src/main/scala/sbt/{internal/librarymanagement => coursierint}/CoursierArtifactsTasks.scala (99%) rename main/src/main/scala/sbt/{internal/librarymanagement => coursierint}/CoursierInputsTasks.scala (97%) rename main/src/main/scala/sbt/{internal/librarymanagement => coursierint}/CoursierRepositoriesTasks.scala (98%) rename main/src/main/scala/sbt/{internal => coursierint}/LMCoursier.scala (98%) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index e00d863d0..839b6b120 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -16,6 +16,7 @@ import lmcoursier.CoursierDependencyResolution import lmcoursier.definitions.{ Configuration => CConfiguration } import org.apache.ivy.core.module.descriptor.ModuleDescriptor import org.apache.ivy.core.module.id.ModuleRevisionId +import sbt.coursierint._ import sbt.Def.{ Initialize, ScopedKey, Setting, SettingsDefinition } import sbt.Keys._ import sbt.Project.{ diff --git a/main/src/main/scala/sbt/internal/librarymanagement/CoursierArtifactsTasks.scala b/main/src/main/scala/sbt/coursierint/CoursierArtifactsTasks.scala similarity index 99% rename from main/src/main/scala/sbt/internal/librarymanagement/CoursierArtifactsTasks.scala rename to main/src/main/scala/sbt/coursierint/CoursierArtifactsTasks.scala index b3c6e3518..59db5d4f3 100644 --- a/main/src/main/scala/sbt/internal/librarymanagement/CoursierArtifactsTasks.scala +++ b/main/src/main/scala/sbt/coursierint/CoursierArtifactsTasks.scala @@ -6,8 +6,7 @@ */ package sbt -package internal -package librarymanagement +package coursierint import lmcoursier.definitions.{ Classifier => CClassifier, diff --git a/main/src/main/scala/sbt/internal/librarymanagement/CoursierInputsTasks.scala b/main/src/main/scala/sbt/coursierint/CoursierInputsTasks.scala similarity index 97% rename from main/src/main/scala/sbt/internal/librarymanagement/CoursierInputsTasks.scala rename to main/src/main/scala/sbt/coursierint/CoursierInputsTasks.scala index b837b737d..4836e1335 100644 --- a/main/src/main/scala/sbt/internal/librarymanagement/CoursierInputsTasks.scala +++ b/main/src/main/scala/sbt/coursierint/CoursierInputsTasks.scala @@ -6,8 +6,7 @@ */ package sbt -package internal -package librarymanagement +package coursierint import java.net.URL import sbt.librarymanagement._ @@ -35,7 +34,7 @@ import sbt.librarymanagement.ivy.{ import sbt.ScopeFilter.Make._ import scala.collection.JavaConverters._ -private[sbt] object CoursierInputsTasks { +object CoursierInputsTasks { private def coursierProject0( projId: ModuleID, dependencies: Seq[ModuleID], @@ -70,7 +69,7 @@ private[sbt] object CoursierInputsTasks { } } - private[sbt] def coursierProjectTask: Def.Initialize[sbt.Task[CProject]] = + def coursierProjectTask: Def.Initialize[sbt.Task[CProject]] = Def.task { coursierProject0( projectID.value, diff --git a/main/src/main/scala/sbt/internal/librarymanagement/CoursierRepositoriesTasks.scala b/main/src/main/scala/sbt/coursierint/CoursierRepositoriesTasks.scala similarity index 98% rename from main/src/main/scala/sbt/internal/librarymanagement/CoursierRepositoriesTasks.scala rename to main/src/main/scala/sbt/coursierint/CoursierRepositoriesTasks.scala index b0d4436f7..88b6c395a 100644 --- a/main/src/main/scala/sbt/internal/librarymanagement/CoursierRepositoriesTasks.scala +++ b/main/src/main/scala/sbt/coursierint/CoursierRepositoriesTasks.scala @@ -6,15 +6,14 @@ */ package sbt -package internal -package librarymanagement +package coursierint import sbt.librarymanagement._ import sbt.Keys._ import sbt.ScopeFilter.Make._ import sbt.io.IO -private[sbt] object CoursierRepositoriesTasks { +object CoursierRepositoriesTasks { private object CResolvers { private val slowReposBase = Seq( "https://repo.typesafe.com/", diff --git a/main/src/main/scala/sbt/internal/LMCoursier.scala b/main/src/main/scala/sbt/coursierint/LMCoursier.scala similarity index 98% rename from main/src/main/scala/sbt/internal/LMCoursier.scala rename to main/src/main/scala/sbt/coursierint/LMCoursier.scala index 6e3e78691..f84a19afa 100644 --- a/main/src/main/scala/sbt/internal/LMCoursier.scala +++ b/main/src/main/scala/sbt/coursierint/LMCoursier.scala @@ -6,7 +6,7 @@ */ package sbt -package internal +package coursierint import java.io.File import lmcoursier.definitions.{ @@ -16,10 +16,9 @@ import lmcoursier.definitions.{ Project => CProject } import lmcoursier._ -import sbt.librarymanagement._ import lmcoursier.credentials.Credentials import Keys._ -import sbt.internal.librarymanagement.{ CoursierArtifactsTasks, CoursierInputsTasks } +import sbt.librarymanagement._ import sbt.util.Logger import sbt.io.syntax._ import xsbti.AppConfiguration