From 3ec8bd22695a99437abb9b44dae6ece7c1aa7051 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Thu, 6 Jun 2024 17:41:20 +0200 Subject: [PATCH] Fix fetching Scala 2.13.12 bridges --- main/src/main/scala/sbt/Defaults.scala | 3 ++- main/src/main/scala/sbt/coursierint/LMCoursier.scala | 12 +++--------- .../sbt/internal/inc/ZincComponentCompiler.scala | 4 +--- .../src/main/scala/sbt/internal/inc/ZincLmUtil.scala | 10 +++++----- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 6e44ba080..28fcacfab 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -735,7 +735,8 @@ object Defaults extends BuildCommon { scalaCompilerBridgeBinaryJar := Def.settingDyn { val sv = scalaVersion.value val managed = managedScalaInstance.value - if (ScalaArtifacts.isScala3(sv) && managed) fetchBridgeBinaryJarTask(sv) + val hasSbtBridge = ScalaArtifacts.isScala3(sv) || ZincLmUtil.hasScala2SbtBridge(sv) + if (hasSbtBridge && managed) fetchBridgeBinaryJarTask(sv) else Def.task[Option[File]](None) }.value, scalaCompilerBridgeSource := ZincLmUtil.getDefaultBridgeSourceModule(scalaVersion.value), diff --git a/main/src/main/scala/sbt/coursierint/LMCoursier.scala b/main/src/main/scala/sbt/coursierint/LMCoursier.scala index c940f3c7f..dd577c880 100644 --- a/main/src/main/scala/sbt/coursierint/LMCoursier.scala +++ b/main/src/main/scala/sbt/coursierint/LMCoursier.scala @@ -79,7 +79,6 @@ object LMCoursier { extraProjects: Seq[CProject], fallbackDeps: Seq[FallbackDependency], appConfig: AppConfiguration, - classifiers: Option[Seq[Classifier]], profiles: Set[String], scalaOrg: String, scalaVer: String, @@ -134,8 +133,6 @@ object LMCoursier { .withSbtScalaJars(sbtBootJars.toVector) .withSbtScalaVersion(sbtScalaVersion) .withSbtScalaOrganization(sbtScalaOrganization) - .withClassifiers(classifiers.toVector.flatten.map(_.value)) - .withHasClassifiers(classifiers.nonEmpty) .withMavenProfiles(profiles.toVector.sorted) .withScalaOrganization(scalaOrg) .withScalaVersion(scalaVer) @@ -159,7 +156,6 @@ object LMCoursier { csrExtraProjects.value.toVector, csrFallbackDependencies.value, appConfiguration.value, - None, csrMavenProfiles.value, scalaOrganization.value, sv, @@ -181,10 +177,10 @@ object LMCoursier { } def updateClassifierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task { - val classifiers = Some(transitiveClassifiers.value.map(Classifier(_))) + val classifiers = transitiveClassifiers.value.map(Classifier(_)) coursierConfigurationTask.value - .withClassifiers(classifiers.toVector.flatten.map(_.value)) - .withHasClassifiers(classifiers.nonEmpty) + .withClassifiers(classifiers.toVector.map(_.value)) + .withHasClassifiers(true) } def updateSbtClassifierConfigurationTask: Def.Initialize[Task[CoursierConfiguration]] = Def.task { @@ -195,7 +191,6 @@ object LMCoursier { Vector(), csrFallbackDependencies.value, appConfiguration.value, - None, csrMavenProfiles.value, scalaOrganization.value, sv, @@ -224,7 +219,6 @@ object LMCoursier { Vector(), csrFallbackDependencies.value, appConfiguration.value, - None, csrMavenProfiles.value, scalaOrganization.value, sv, diff --git a/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincComponentCompiler.scala b/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincComponentCompiler.scala index 65669e26f..05a9ea6f1 100644 --- a/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincComponentCompiler.scala +++ b/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincComponentCompiler.scala @@ -59,9 +59,7 @@ private[sbt] object ZincComponentCompiler { ): File = lock.synchronized { val raw = new RawCompiler( scalaInstance, - // TODO: - // ClasspathOptionsUtil.autoNoboot(scalaInstance.version), - ClasspathOptionsUtil.auto, + ClasspathOptionsUtil.autoNoboot(scalaInstance.version), logger ) val zinc = diff --git a/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala b/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala index dc75c6dfb..1c8979f84 100644 --- a/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala +++ b/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala @@ -28,6 +28,10 @@ import xsbti.compile.{ ClasspathOptions, ScalaInstance => XScalaInstance } object ZincLmUtil { final val scala2SbtBridgeStart = "2.13.12" + def hasScala2SbtBridge(sv: String): Boolean = + VersionNumber(sv).matchesSemVer( + SemanticSelector(s"=2.13 >=$scala2SbtBridgeStart") + ) /** * Instantiate a Scala compiler that is instrumented to analyze dependencies. @@ -90,11 +94,7 @@ object ZincLmUtil { if (ScalaArtifacts.isScala3(scalaVersion)) { ModuleID(ScalaArtifacts.Organization, "scala3-sbt-bridge", scalaVersion) .withConfigurations(Some(Compile.name)) - } else if ( - VersionNumber(scalaVersion).matchesSemVer( - SemanticSelector(s"=2.13 >=$scala2SbtBridgeStart") - ) - ) { + } else if (hasScala2SbtBridge(scalaVersion)) { ModuleID(ScalaArtifacts.Organization, "scala2-sbt-bridge", scalaVersion) .withConfigurations(Some(Compile.name)) } else {