diff --git a/.scalafmt.conf b/.scalafmt.conf index 4e09453eac..394e615b25 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.7.11" +version = "3.7.14" align.preset = more maxColumn = 100 diff --git a/backend/src/main/scala/bloop/ScalaInstance.scala b/backend/src/main/scala/bloop/ScalaInstance.scala index f7771d3464..b88e202274 100644 --- a/backend/src/main/scala/bloop/ScalaInstance.scala +++ b/backend/src/main/scala/bloop/ScalaInstance.scala @@ -17,6 +17,8 @@ import bloop.internal.build.BloopScalaInfo import bloop.logging.DebugFilter import bloop.logging.Logger +import coursierapi.Repository + final class ScalaInstance private ( val organization: String, val name: String, @@ -195,12 +197,14 @@ object ScalaInstance { scalaOrg: String, scalaName: String, scalaVersion: String, - logger: Logger + logger: Logger, + additionalRepositories: List[Repository] = Nil ): ScalaInstance = { def resolveInstance: ScalaInstance = { val allPaths = DependencyResolution.resolve( List(DependencyResolution.Artifact(scalaOrg, scalaName, scalaVersion)), - logger + logger, + additionalRepos = additionalRepositories ) val allJars = allPaths.collect { case path if path.underlying.toString.endsWith(".jar") => path.underlying.toFile diff --git a/backend/src/main/scala/sbt/internal/inc/BloopComponentCompiler.scala b/backend/src/main/scala/sbt/internal/inc/BloopComponentCompiler.scala index 113636b399..32d84a8405 100644 --- a/backend/src/main/scala/sbt/internal/inc/BloopComponentCompiler.scala +++ b/backend/src/main/scala/sbt/internal/inc/BloopComponentCompiler.scala @@ -27,6 +27,7 @@ import xsbti.ComponentProvider import xsbti.Logger import xsbti.compile.ClasspathOptionsUtil import xsbti.compile.CompilerBridgeProvider +import scala.util.control.NonFatal object BloopComponentCompiler { import xsbti.compile.ScalaInstance @@ -44,11 +45,22 @@ object BloopComponentCompiler { private val CompileConf = Some(Configurations.Compile.name) def getModuleForBridgeSources(scalaInstance: ScalaInstance): ModuleID = { + val isAfter2_13_11 = + try { + val Array(_, _, patch) = scalaInstance.version().split("\\.") + val patchTrimmed = patch.takeWhile(_.isDigit).toInt + scalaInstance.version().startsWith("2.13.") && patchTrimmed >= 12 + } catch { + case NonFatal(_) => false + } + def compilerBridgeId(scalaVersion: String) = { + // Defaults to bridge for 2.13 for Scala versions bigger than 2.13.x scalaVersion match { case sc if (sc startsWith "0.") => "dotty-sbt-bridge" case sc if (sc startsWith "3.") => "scala3-sbt-bridge" + case _ if isAfter2_13_11 => "scala2-sbt-bridge" case sc if (sc startsWith "2.10.") => "compiler-bridge_2.10" case sc if (sc startsWith "2.11.") => "compiler-bridge_2.11" case sc if (sc startsWith "2.12.") => "compiler-bridge_2.12" @@ -57,7 +69,7 @@ object BloopComponentCompiler { } val (isDotty, organization, version) = scalaInstance match { - case instance: BloopScalaInstance if instance.isDotty => + case instance: BloopScalaInstance if instance.isDotty || isAfter2_13_11 => (true, instance.organization, instance.version) case _ => (false, "org.scala-sbt", latestVersion) } @@ -250,7 +262,12 @@ private[inc] class BloopComponentCompiler( .Artifact(bridgeSources.organization, bridgeSources.name, bridgeSources.revision) ), logger, - resolveSources = shouldResolveSources + resolveSources = shouldResolveSources, + List( + coursierapi.MavenRepository.of( + "https://scala-ci.typesafe.com/artifactory/scala-integration/" + ) + ) ) match { case Right(paths) => paths.map(_.underlying).toVector case Left(t) => diff --git a/build.sc b/build.sc index 5c4796470e..71f72cafcc 100644 --- a/build.sc +++ b/build.sc @@ -48,7 +48,7 @@ object Dependencies { ivy"com.github.plokhotnyuk.jsoniter-scala::jsoniter-scala-macros:$jsoniterVersion" def junit = ivy"com.github.sbt:junit-interface:0.13.3" def libdaemonjvm = ivy"io.github.alexarchambault.libdaemon::libdaemon:0.0.11" - def libraryManagement = ivy"org.scala-sbt::librarymanagement-ivy:1.9.1" + def libraryManagement = ivy"org.scala-sbt::librarymanagement-ivy:1.9.2" def log4j = ivy"org.apache.logging.log4j:log4j-core:2.20.0" def logback = ivy"ch.qos.logback:logback-classic:1.4.6" def macroParadise = ivy"org.scalamacros:::paradise:2.1.1" @@ -57,9 +57,9 @@ object Dependencies { def nailgun = ivy"io.github.alexarchambault.bleep:nailgun-server:1.0.7" def osLib = ivy"com.lihaoyi::os-lib:0.9.0" def pprint = ivy"com.lihaoyi::pprint:0.8.1" - def sbtTestAgent = ivy"org.scala-sbt:test-agent:1.9.3" + def sbtTestAgent = ivy"org.scala-sbt:test-agent:1.9.4" def sbtTestInterface = ivy"org.scala-sbt:test-interface:1.0" - def scalaDebugAdapter = ivy"ch.epfl.scala::scala-debug-adapter:3.1.3" + def scalaDebugAdapter = ivy"ch.epfl.scala::scala-debug-adapter:3.1.4" def scalaJsLinker1 = ivy"org.scala-js::scalajs-linker:$scalaJs1Version" def scalaJsEnvs1 = ivy"org.scala-js::scalajs-js-envs:$scalaJsEnvsVersion" def scalaJsEnvNode1 = ivy"org.scala-js::scalajs-env-nodejs:$scalaJsEnvsVersion" @@ -75,7 +75,7 @@ object Dependencies { def xxHashLibrary = ivy"net.jpountz.lz4:lz4:1.3.0" def zinc = ivy"org.scala-sbt::zinc:1.9.3" def zipkinSender = ivy"io.zipkin.reporter2:zipkin-sender-urlconnection:2.16.4" - def zt = ivy"org.zeroturnaround:zt-zip:1.15" + def zt = ivy"org.zeroturnaround:zt-zip:1.16" def graalVmId = s"graalvm-java17:$graalvmVersion" } diff --git a/frontend/src/test/resources/compiler-plugin-allowlist/project/build.properties b/frontend/src/test/resources/compiler-plugin-allowlist/project/build.properties index 91550e8201..0425ccf895 100644 --- a/frontend/src/test/resources/compiler-plugin-allowlist/project/build.properties +++ b/frontend/src/test/resources/compiler-plugin-allowlist/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/build.properties b/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/build.properties index 91550e8201..0425ccf895 100644 --- a/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/build.properties +++ b/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/build.properties b/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/build.properties index 52413ab79a..3040987151 100644 --- a/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/build.properties +++ b/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/build.properties b/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/build.properties index 52413ab79a..3040987151 100644 --- a/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/build.properties +++ b/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/build.properties b/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/build.properties index 52413ab79a..3040987151 100644 --- a/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/build.properties +++ b/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/custom-test-framework/project/build.properties b/frontend/src/test/resources/custom-test-framework/project/build.properties index 52413ab79a..3040987151 100644 --- a/frontend/src/test/resources/custom-test-framework/project/build.properties +++ b/frontend/src/test/resources/custom-test-framework/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/no-test-frameworks/project/project/build.properties b/frontend/src/test/resources/no-test-frameworks/project/project/build.properties index 52413ab79a..3040987151 100644 --- a/frontend/src/test/resources/no-test-frameworks/project/project/build.properties +++ b/frontend/src/test/resources/no-test-frameworks/project/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/scala-seed-project/project/build.properties b/frontend/src/test/resources/scala-seed-project/project/build.properties index 52413ab79a..3040987151 100644 --- a/frontend/src/test/resources/scala-seed-project/project/build.properties +++ b/frontend/src/test/resources/scala-seed-project/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/resources/simple-build/project/build.properties b/frontend/src/test/resources/simple-build/project/build.properties index 52413ab79a..3040987151 100644 --- a/frontend/src/test/resources/simple-build/project/build.properties +++ b/frontend/src/test/resources/simple-build/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.3 +sbt.version=1.9.4 diff --git a/frontend/src/test/scala/bloop/ScalaVersionsSpec.scala b/frontend/src/test/scala/bloop/ScalaVersionsSpec.scala index 77460ef874..0afdc2b209 100644 --- a/frontend/src/test/scala/bloop/ScalaVersionsSpec.scala +++ b/frontend/src/test/scala/bloop/ScalaVersionsSpec.scala @@ -10,6 +10,8 @@ import bloop.task.Task import bloop.util.TestProject import bloop.util.TestUtil +import coursierapi.MavenRepository + object ScalaVersionsSpec extends bloop.testing.BaseSuite { var loggers: List[RecordingLogger] = Nil @@ -22,7 +24,15 @@ object ScalaVersionsSpec extends bloop.testing.BaseSuite { def jarsForScalaVersion(version: String, logger: RecordingLogger) = { ScalaInstance - .resolve(compilerOrg, compilerArtifact, version, logger) + .resolve( + compilerOrg, + compilerArtifact, + version, + logger, + List( + MavenRepository.of("https://scala-ci.typesafe.com/artifactory/scala-integration/") + ) + ) .allJars .map(AbsolutePath(_)) } @@ -66,7 +76,8 @@ object ScalaVersionsSpec extends bloop.testing.BaseSuite { "2.12.17", "2.13.10", "3.1.3", - "3.2.1" + "3.2.1", + "2.13.12-bin-86f40c2" ) val allVersions = scalaVersions