From 54c12819df693408402b480f7de3bc4e93201e87 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Tue, 27 Sep 2022 01:18:24 -0400 Subject: [PATCH] Adjust to the code changes --- .../sbt/internal/util/complete/Parsers.scala | 6 +- main/src/main/scala/sbt/Cross.scala | 85 +++++++++---------- main/src/main/scala/sbt/Opts.scala | 7 +- .../internal/server/BuildServerProtocol.scala | 35 ++++---- .../JvmRunEnvironmentResultFormats.scala | 2 +- .../JvmTestEnvironmentResultFormats.scala | 2 +- .../bsp/codec/OutputPathsItemFormats.scala | 2 +- .../bsp/codec/OutputPathsResultFormats.scala | 2 +- .../sbt/internal/bsp/OutputPathItemKind.scala | 2 +- sbt-app/src/main/scala/sbt/Import.scala | 5 +- 10 files changed, 78 insertions(+), 70 deletions(-) diff --git a/internal/util-complete/src/main/scala/sbt/internal/util/complete/Parsers.scala b/internal/util-complete/src/main/scala/sbt/internal/util/complete/Parsers.scala index 3c4e81fee..228de5996 100644 --- a/internal/util-complete/src/main/scala/sbt/internal/util/complete/Parsers.scala +++ b/internal/util-complete/src/main/scala/sbt/internal/util/complete/Parsers.scala @@ -312,9 +312,9 @@ trait Parsers { */ lazy val NotQuoted = (NotDQuoteSpaceClass ~ OptNotSpace) map { case (c, s) => c.toString + s } - /** Parses a non-empty String value that cannot start with a double quote, but includes double quotes.*/ - lazy val NotQuotedThenQuoted = (NotQuoted ~ StringEscapable) map { - case (s1, s2) => s"""$s1\"$s2\"""" + /** Parses a non-empty String value that cannot start with a double quote, but includes double quotes. */ + lazy val NotQuotedThenQuoted = (NotQuoted ~ StringEscapable) map { case (s1, s2) => + s"""$s1\"$s2\"""" } /** diff --git a/main/src/main/scala/sbt/Cross.scala b/main/src/main/scala/sbt/Cross.scala index 7fb9a5ed0..9772dd6dc 100644 --- a/main/src/main/scala/sbt/Cross.scala +++ b/main/src/main/scala/sbt/Cross.scala @@ -296,11 +296,10 @@ object Cross { } else { included .groupBy(_._2) - .foreach { - case (selectedVersion, projects) => - state.log.info( - s"Setting Scala version to $selectedVersion on ${projects.size} projects." - ) + .foreach { case (selectedVersion, projects) => + state.log.info( + s"Setting Scala version to $selectedVersion on ${projects.size} projects." + ) } } if (excluded.nonEmpty && !switch.verbose) { @@ -328,32 +327,31 @@ object Cross { val projectScalaVersions = structure.allProjectRefs.map(proj => proj -> crossVersions(extracted, proj)) if (switch.version.force) { - projectScalaVersions.map { - case (ref, options) => (ref, Some(version), options) + projectScalaVersions.map { case (ref, options) => + (ref, Some(version), options) } ++ structure.units.keys .map(BuildRef.apply) .map(proj => (proj, Some(version), crossVersions(extracted, proj))) } else { - projectScalaVersions.map { - case (project, scalaVersions) => - val selector = SemanticSelector(version) - scalaVersions.filter(v => selector.matches(VersionNumber(v))) match { - case Nil => (project, None, scalaVersions) - case Seq(version) => (project, Some(version), scalaVersions) - case multiple => - sys.error( - s"Multiple crossScalaVersions matched query '$version': ${multiple.mkString(", ")}" - ) - } + projectScalaVersions.map { case (project, scalaVersions) => + val selector = SemanticSelector(version) + scalaVersions.filter(v => selector.matches(VersionNumber(v))) match { + case Nil => (project, None, scalaVersions) + case Seq(version) => (project, Some(version), scalaVersions) + case multiple => + sys.error( + s"Multiple crossScalaVersions matched query '$version': ${multiple.mkString(", ")}" + ) + } } } } - val included = projects.collect { - case (project, Some(version), scalaVersions) => (project, version, scalaVersions) + val included = projects.collect { case (project, Some(version), scalaVersions) => + (project, version, scalaVersions) } - val excluded = projects.collect { - case (project, None, scalaVersions) => (project, scalaVersions) + val excluded = projects.collect { case (project, None, scalaVersions) => + (project, scalaVersions) } if (included.isEmpty) { @@ -376,10 +374,12 @@ object Cross { // determine whether this is a 'specific' version or a selector // to be passed to SemanticSelector private def isSelector(version: String): Boolean = - version.contains('*') || version.contains('x') || version.contains('X') || version.contains(' ') || + version.contains('*') || version.contains('x') || version.contains('X') || version.contains( + ' ' + ) || version.contains('<') || version.contains('>') || version.contains('|') || version.contains( - '=' - ) + '=' + ) private def setScalaVersionsForProjects( instance: Option[(File, ScalaInstance)], @@ -389,25 +389,24 @@ object Cross { ): State = { import extracted._ - val newSettings = projects.flatMap { - case (project, version, scalaVersions) => - val scope = Scope(Select(project), Zero, Zero, Zero) + val newSettings = projects.flatMap { case (project, version, scalaVersions) => + val scope = Scope(Select(project), Zero, Zero, Zero) - instance match { - case Some((home, inst)) => - Seq( - scope / scalaVersion := version, - scope / crossScalaVersions := scalaVersions, - scope / scalaHome := Some(home), - scope / scalaInstance := inst - ) - case None => - Seq( - scope / scalaVersion := version, - scope / crossScalaVersions := scalaVersions, - scope / scalaHome := None - ) - } + instance match { + case Some((home, inst)) => + Seq( + scope / scalaVersion := version, + scope / crossScalaVersions := scalaVersions, + scope / scalaHome := Some(home), + scope / scalaInstance := inst + ) + case None => + Seq( + scope / scalaVersion := version, + scope / crossScalaVersions := scalaVersions, + scope / scalaHome := None + ) + } } val filterKeys: Set[AttributeKey[_]] = Set(scalaVersion, scalaHome, scalaInstance).map(_.key) diff --git a/main/src/main/scala/sbt/Opts.scala b/main/src/main/scala/sbt/Opts.scala index 69200d29e..86ebf1f20 100644 --- a/main/src/main/scala/sbt/Opts.scala +++ b/main/src/main/scala/sbt/Opts.scala @@ -43,11 +43,14 @@ object Opts { import sbt.io.syntax._ @deprecated("Use sonatypeOssReleases instead", "1.7.0") val sonatypeReleases = Resolver.sonatypeRepo("releases") - val sonatypeOssReleases = Resolver.sonatypeOssRepos("releases") + // todo: fix + // val sonatypeOssReleases = Resolver.sonatypeOssRepos("releases") @deprecated("Use sonatypeOssSnapshots instead", "1.7.0") val sonatypeSnapshots = Resolver.sonatypeRepo("snapshots") - val sonatypeOssSnapshots = Resolver.sonatypeOssRepos("snapshots") + + // todo: fix + // val sonatypeOssSnapshots = Resolver.sonatypeOssRepos("snapshots") val sonatypeStaging = MavenRepository( "sonatype-staging", diff --git a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala index de4cd5ed7..b8848f2bf 100644 --- a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala +++ b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala @@ -275,8 +275,11 @@ object BuildServerProtocol { val filter = ScopeFilter.in(workspace.scopes.values.toList) Def.task { val items = bspScalaTestClassesItem.result.all(filter).value - val successfulItems = anyOrThrow(items) - val result = ScalaTestClassesResult(successfulItems.toVector, None) + val successfulItems = anyOrThrow[Seq[ScalaTestClassesItem]](items).flatten + val result = ScalaTestClassesResult( + items = successfulItems.toVector, + originId = None: Option[String] + ) s.respondEvent(result) } }) @@ -753,13 +756,14 @@ object BuildServerProtocol { ScopeFilter ) => Def.Initialize[Task[T]] ): Def.Initialize[InputTask[T]] = - Def.inputTaskDyn { - val s = state.value - val targets = spaceDelimited().parsed.map(uri => BuildTargetIdentifier(URI.create(uri))) - val workspace: BspFullWorkspace = bspFullWorkspace.value.filter(targets) - val filter = ScopeFilter.in(workspace.scopes.values.toList) - taskImpl(s, targets, workspace, filter) - } + Def + .input((s: State) => targetIdentifierParser) + .flatMapTask { targets => + val s = state.value + val workspace: BspFullWorkspace = bspFullWorkspace.value.filter(targets) + val filter = ScopeFilter.in(workspace.scopes.values.toList) + taskImpl(s, targets, workspace, filter) + } private def jvmEnvironmentItem(): Initialize[Task[JvmEnvironmentItem]] = Def.task { val target = Keys.bspTargetIdentifier.value @@ -1009,13 +1013,12 @@ object BuildServerProtocol { val grouped = TestFramework.testMap(frameworks, definitions) - grouped.map { - case (framework, definitions) => - ScalaTestClassesItem( - bspTargetIdentifier.value, - definitions.map(_.name).toVector, - framework.name() - ) + grouped.map { case (framework, definitions) => + ScalaTestClassesItem( + bspTargetIdentifier.value, + definitions.map(_.name).toVector, + framework.name() + ) }.toSeq } } diff --git a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmRunEnvironmentResultFormats.scala b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmRunEnvironmentResultFormats.scala index 6a9d40a5e..36f1cb72c 100644 --- a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmRunEnvironmentResultFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmRunEnvironmentResultFormats.scala @@ -5,7 +5,7 @@ // DO NOT EDIT MANUALLY package sbt.internal.bsp.codec import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError } -trait JvmRunEnvironmentResultFormats { self: sbt.internal.bsp.codec.JvmEnvironmentItemFormats with sjsonnew.BasicJsonProtocol => +trait JvmRunEnvironmentResultFormats { self: sbt.internal.bsp.codec.JvmEnvironmentItemFormats with sbt.internal.bsp.codec.BuildTargetIdentifierFormats with sjsonnew.BasicJsonProtocol => implicit lazy val JvmRunEnvironmentResultFormat: JsonFormat[sbt.internal.bsp.JvmRunEnvironmentResult] = new JsonFormat[sbt.internal.bsp.JvmRunEnvironmentResult] { override def read[J](__jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.internal.bsp.JvmRunEnvironmentResult = { __jsOpt match { diff --git a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmTestEnvironmentResultFormats.scala b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmTestEnvironmentResultFormats.scala index cd9c9d297..60598fa65 100644 --- a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmTestEnvironmentResultFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/JvmTestEnvironmentResultFormats.scala @@ -5,7 +5,7 @@ // DO NOT EDIT MANUALLY package sbt.internal.bsp.codec import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError } -trait JvmTestEnvironmentResultFormats { self: sbt.internal.bsp.codec.JvmEnvironmentItemFormats with sjsonnew.BasicJsonProtocol => +trait JvmTestEnvironmentResultFormats { self: sbt.internal.bsp.codec.JvmEnvironmentItemFormats with sbt.internal.bsp.codec.BuildTargetIdentifierFormats with sjsonnew.BasicJsonProtocol => implicit lazy val JvmTestEnvironmentResultFormat: JsonFormat[sbt.internal.bsp.JvmTestEnvironmentResult] = new JsonFormat[sbt.internal.bsp.JvmTestEnvironmentResult] { override def read[J](__jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.internal.bsp.JvmTestEnvironmentResult = { __jsOpt match { diff --git a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsItemFormats.scala b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsItemFormats.scala index f3c0795ee..602b0e51f 100644 --- a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsItemFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsItemFormats.scala @@ -5,7 +5,7 @@ // DO NOT EDIT MANUALLY package sbt.internal.bsp.codec import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError } -trait OutputPathsItemFormats { self: sbt.internal.bsp.codec.BuildTargetIdentifierFormats with sbt.internal.bsp.codec.OutputPathItemFormats with sjsonnew.BasicJsonProtocol => +trait OutputPathsItemFormats { self: sbt.internal.bsp.codec.BuildTargetIdentifierFormats with sjsonnew.BasicJsonProtocol with sbt.internal.bsp.codec.OutputPathItemFormats => implicit lazy val OutputPathsItemFormat: JsonFormat[sbt.internal.bsp.OutputPathsItem] = new JsonFormat[sbt.internal.bsp.OutputPathsItem] { override def read[J](__jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.internal.bsp.OutputPathsItem = { __jsOpt match { diff --git a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsResultFormats.scala b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsResultFormats.scala index 0aa475097..c2c785110 100644 --- a/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsResultFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/internal/bsp/codec/OutputPathsResultFormats.scala @@ -5,7 +5,7 @@ // DO NOT EDIT MANUALLY package sbt.internal.bsp.codec import _root_.sjsonnew.{ Unbuilder, Builder, JsonFormat, deserializationError } -trait OutputPathsResultFormats { self: sbt.internal.bsp.codec.OutputPathsItemFormats with sjsonnew.BasicJsonProtocol => +trait OutputPathsResultFormats { self: sbt.internal.bsp.codec.OutputPathsItemFormats with sbt.internal.bsp.codec.BuildTargetIdentifierFormats with sjsonnew.BasicJsonProtocol with sbt.internal.bsp.codec.OutputPathItemFormats => implicit lazy val OutputPathsResultFormat: JsonFormat[sbt.internal.bsp.OutputPathsResult] = new JsonFormat[sbt.internal.bsp.OutputPathsResult] { override def read[J](__jsOpt: Option[J], unbuilder: Unbuilder[J]): sbt.internal.bsp.OutputPathsResult = { __jsOpt match { diff --git a/protocol/src/main/scala/sbt/internal/bsp/OutputPathItemKind.scala b/protocol/src/main/scala/sbt/internal/bsp/OutputPathItemKind.scala index aaee48e65..009cd036c 100644 --- a/protocol/src/main/scala/sbt/internal/bsp/OutputPathItemKind.scala +++ b/protocol/src/main/scala/sbt/internal/bsp/OutputPathItemKind.scala @@ -9,7 +9,7 @@ package sbt.internal.bsp object OutputPathItemKind { - /** The output path item references a normal file. */ + /** The output path item references a normal file. */ val File: Int = 1 /** The output path item references a directory. */ diff --git a/sbt-app/src/main/scala/sbt/Import.scala b/sbt-app/src/main/scala/sbt/Import.scala index 40da34c16..b98fae723 100644 --- a/sbt-app/src/main/scala/sbt/Import.scala +++ b/sbt-app/src/main/scala/sbt/Import.scala @@ -297,7 +297,10 @@ trait Import { type IvyScala = sbt.librarymanagement.ScalaModuleInfo val JCenterRepository = sbt.librarymanagement.Resolver.JCenterRepository val JavaNet2Repository = sbt.librarymanagement.Resolver.JavaNet2Repository - val License = sbt.librarymanagement.License + + // todo: fix + // val License = sbt.librarymanagement.License + type LogicalClock = sbt.librarymanagement.LogicalClock val LogicalClock = sbt.librarymanagement.LogicalClock type MakePomConfiguration = sbt.librarymanagement.MakePomConfiguration