Skip to content

Commit a8db59b

Browse files
authored
Add a deprecation warning for using Scala 2.12.4 with Bloop (#3470)
1 parent 8f91df4 commit a8db59b

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

modules/build/src/main/scala/scala/build/Build.scala

+13-5
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,9 @@ import scala.build.EitherCps.{either, value}
1414
import scala.build.Ops.*
1515
import scala.build.compiler.{ScalaCompiler, ScalaCompilerMaker}
1616
import scala.build.errors.*
17-
import scala.build.input.VirtualScript.VirtualScriptNameRegex
1817
import scala.build.input.*
1918
import scala.build.internal.resource.ResourceMapper
2019
import scala.build.internal.{Constants, MainClass, Name, Util}
21-
import scala.build.options.ScalaVersionUtil.asVersion
2220
import scala.build.options.*
2321
import scala.build.options.validation.ValidationException
2422
import scala.build.postprocessing.LineConversion.scalaLineToScLineShift
@@ -598,9 +596,19 @@ object Build {
598596
logger,
599597
keepDiagnostics = options.internal.keepDiagnostics
600598
)
601-
val classesDir0 = classesRootDir(inputs.workspace, inputs.projectName)
602-
val (crossSources, inputs0) = value(allInputs(inputs, options, logger))
603-
val buildOptions = crossSources.sharedOptions(options)
599+
val classesDir0 = classesRootDir(inputs.workspace, inputs.projectName)
600+
val (crossSources: CrossSources, inputs0) = value(allInputs(inputs, options, logger))
601+
val buildOptions = crossSources.sharedOptions(options)
602+
if !buildOptions.suppressWarningOptions.suppressDeprecatedFeatureWarning.getOrElse(false) &&
603+
buildOptions.scalaParams.exists(_.exists(_.scalaVersion == "2.12.4") &&
604+
!buildOptions.useBuildServer.contains(false))
605+
then
606+
logger.message(
607+
s"""[${Console.YELLOW}warn${Console.RESET}] Scala 2.12.4 has been deprecated for use with Bloop.
608+
|[${Console.YELLOW}warn${Console.RESET}] It may lead to infinite compilation.
609+
|[${Console.YELLOW}warn${Console.RESET}] To disable the build server, pass ${Console.BOLD}--server=false${Console.RESET}.
610+
|[${Console.YELLOW}warn${Console.RESET}] Refer to https://github.com/VirtusLab/scala-cli/issues/1382 and https://github.com/sbt/zinc/issues/1010""".stripMargin
611+
)
604612
value {
605613
compilerMaker.withCompiler(
606614
inputs0.workspace / Constants.workspaceDirName,

0 commit comments

Comments
 (0)