Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ object Configurations {

lazy val ScalaTool = Configuration.of("ScalaTool", "scala-tool").hide
lazy val ScalaDocTool = Configuration.of("ScalaDocTool", "scala-doc-tool").hide
lazy val ScalaReplTool = Configuration.of("ScalaReplTool", "scala-repl-tool").hide
lazy val CompilerPlugin = Configuration.of("CompilerPlugin", "plugin").hide
lazy val Component = Configuration.of("Component", "component").hide

Expand Down
26 changes: 25 additions & 1 deletion core/src/main/scala/sbt/librarymanagement/ScalaArtifacts.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ object ScalaArtifacts {
final val ScaladocID = "scaladoc"
final val Scala3DocID = "scala3doc"
final val Scala3TastyInspectorID = "scala3-tasty-inspector"
final val Scala3ReplID = "scala3-repl"
final val Scala3_8Artifacts = Vector(LibraryID, Scala3LibraryID)

private[sbt] final val Scala3LibraryPrefix = Scala3LibraryID + "_"
Expand All @@ -23,6 +24,7 @@ object ScalaArtifacts {
private[sbt] final val ScaladocPrefix = ScaladocID + "_"
private[sbt] final val Scala3DocPrefix = Scala3DocID + "_"
private[sbt] final val Scala3TastyInspectorPrefix = Scala3TastyInspectorID + "_"
private[sbt] final val Scala3ReplPrefix = Scala3ReplID + "_"

def isScala2Artifact(name: String): Boolean = {
name == LibraryID || name == CompilerID || name == ReflectID || name == ActorsID || name == ScalapID
Expand All @@ -34,11 +36,21 @@ object ScalaArtifacts {
name == Scala3InterfacesID ||
name.startsWith(ScaladocPrefix) ||
name.startsWith(Scala3DocPrefix) ||
name.startsWith(Scala3TastyInspectorPrefix)
name.startsWith(Scala3TastyInspectorPrefix) ||
name.startsWith(Scala3ReplPrefix)
}

def isScala3(scalaVersion: String): Boolean = scalaVersion.startsWith("3.")

/**
* Returns true for pre-release nightlies intentionally.
*/
def isScala3_8Plus(scalaVersion: String): Boolean =
isScala3(scalaVersion) && (scalaVersion match {
case VersionNumber(numbers, _, _) if numbers.size > 2 && numbers(1) >= 8 => true
case _ => false
})

private[sbt] def isScala3M123(scalaVersion: String): Boolean =
(scalaVersion == "3.0.0-M1") ||
(scalaVersion == "3.0.0-M2") ||
Expand All @@ -64,6 +76,18 @@ object ScalaArtifacts {
ModuleID(org, LibraryID, version)
}

private[sbt] def replToolDependencies(
org: String,
version: String
): Seq[ModuleID] =
if (isScala3_8Plus(version))
Seq(
ModuleID(org, Scala3ReplID, version)
.withConfigurations(Some(Configurations.ScalaReplTool.name + "->default(compile)"))
.withCrossVersion(CrossVersion.binary)
)
else Seq.empty

private[sbt] def docToolDependencies(
org: String,
version: String
Expand Down
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ object Dependencies {
val jsch = "com.github.mwiede" % "jsch" % "0.2.23" intransitive ()
val scalaReflect = Def.setting { "org.scala-lang" % "scala-reflect" % scalaVersion.value }
val scalaCompiler = Def.setting { "org.scala-lang" % "scala-compiler" % scalaVersion.value }
val scalaXml = "org.scala-lang.modules" %% "scala-xml" % "2.3.0"
val scalaXml = "org.scala-lang.modules" %% "scala-xml" % "2.4.0"
val scalaTest = "org.scalatest" %% "scalatest" % "3.2.19"
val scalaVerify = "com.eed3si9n.verify" %% "verify" % "1.0.0"
val scalaCheck = "org.scalacheck" %% "scalacheck" % "1.19.0"
Expand Down