From aed2c6125be284e402675a2c740fa68fe0eaff3a Mon Sep 17 00:00:00 2001 From: Anatolii Kmetiuk Date: Sat, 30 May 2026 00:10:05 +0900 Subject: [PATCH 1/2] [2.x] Opt bspBuildTargetOutputPathsItem out of caching (#9272) Opt bspBuildTargetOutputPathsItem out of caching --- main/src/main/scala/sbt/Keys.scala | 1 + .../server/bsp-output-paths-cache/build.sbt | 30 +++++++++++++++++++ .../server/bsp-output-paths-cache/test | 3 ++ 3 files changed, 34 insertions(+) create mode 100644 sbt-app/src/sbt-test/server/bsp-output-paths-cache/build.sbt create mode 100644 sbt-app/src/sbt-test/server/bsp-output-paths-cache/test diff --git a/main/src/main/scala/sbt/Keys.scala b/main/src/main/scala/sbt/Keys.scala index 410dbe961..9aab4706a 100644 --- a/main/src/main/scala/sbt/Keys.scala +++ b/main/src/main/scala/sbt/Keys.scala @@ -483,6 +483,7 @@ object Keys { val bspBuildTargetDependencySources = inputKey[Unit]("").withRank(DTask) val bspBuildTargetDependencySourcesItem = taskKey[DependencySourcesItem]("").withRank(DTask) val bspBuildTargetOutputPaths = inputKey[Unit]("").withRank(DTask) + @transient val bspBuildTargetOutputPathsItem = taskKey[OutputPathsItem]("").withRank(DTask) val bspBuildTargetCompile = inputKey[Unit]("").withRank(DTask) val bspBuildTargetCompileItem = taskKey[Int]("").withRank(DTask) diff --git a/sbt-app/src/sbt-test/server/bsp-output-paths-cache/build.sbt b/sbt-app/src/sbt-test/server/bsp-output-paths-cache/build.sbt new file mode 100644 index 000000000..670303fad --- /dev/null +++ b/sbt-app/src/sbt-test/server/bsp-output-paths-cache/build.sbt @@ -0,0 +1,30 @@ +import sbt.internal.bsp.OutputPathsItem + +ThisBuild / scalaVersion := "3.8.2" + +name := "bsp-output-paths-cache" + +Compile / target := baseDirectory.value / "target-a" + +@transient +lazy val checkProjectA = taskKey[Unit]("") + +@transient +lazy val checkProjectB = taskKey[Unit]("") + +def checkOutputPath(item: OutputPathsItem, expectedSegment: String): Unit = { + val actual = item.outputPaths.map(_.uri.toString).mkString("\n") + if (!actual.contains(expectedSegment)) { + sys.error( + s"stale bspBuildTargetOutputPathsItem: expected segment $expectedSegment in output paths, got: $actual" + ) + } +} + +checkProjectA := Def.uncached { + checkOutputPath((Compile / bspBuildTargetOutputPathsItem).value, "target-a") +} + +checkProjectB := Def.uncached { + checkOutputPath((Compile / bspBuildTargetOutputPathsItem).value, "target-b") +} diff --git a/sbt-app/src/sbt-test/server/bsp-output-paths-cache/test b/sbt-app/src/sbt-test/server/bsp-output-paths-cache/test new file mode 100644 index 000000000..e82347dd6 --- /dev/null +++ b/sbt-app/src/sbt-test/server/bsp-output-paths-cache/test @@ -0,0 +1,3 @@ +> checkProjectA +> set Compile / target := baseDirectory.value / "target-b" +> checkProjectB From 6df13e3ede893ff06bbae9361d9683b085ef9e7c Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Mon, 1 Jun 2026 04:23:37 -0400 Subject: [PATCH 2/2] Zinc 2.0.0-M19 --- .../integration-test/src/test/scala/RunnerScriptTest.scala | 3 +-- project/Dependencies.scala | 2 +- .../dependency-management/update-sbt-classifiers/build.sbt | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/launcher-package/integration-test/src/test/scala/RunnerScriptTest.scala b/launcher-package/integration-test/src/test/scala/RunnerScriptTest.scala index 3abe411df..25f3fe657 100644 --- a/launcher-package/integration-test/src/test/scala/RunnerScriptTest.scala +++ b/launcher-package/integration-test/src/test/scala/RunnerScriptTest.scala @@ -331,7 +331,6 @@ object RunnerScriptTest extends verify.BasicTestSuite with ShellScriptUtil: ) testOutput("sbt --experimental_execution_log=true")("--experimental_execution_log=true", "-v"): - (out: List[String]) => - assert(out.contains[String]("-Dsbt.experimental_execution_log=true")) + (out: List[String]) => assert(out.contains[String]("-Dsbt.experimental_execution_log=true")) end RunnerScriptTest diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 487307cb2..2805bdf64 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -13,7 +13,7 @@ object Dependencies { // sbt modules val ioVersion = nightlyVersion.getOrElse("1.12.0") - val zincVersion = nightlyVersion.getOrElse("2.0.0-M18") + val zincVersion = nightlyVersion.getOrElse("2.0.0-M19") private val sbtIO = "org.scala-sbt" %% "io" % ioVersion diff --git a/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt b/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt index 3f075ed58..758774606 100644 --- a/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/update-sbt-classifiers/build.sbt @@ -41,7 +41,6 @@ lazy val root = (project in file(".")) "junit:junit", "net.java.dev.jna:jna", "net.java.dev.jna:jna-platform", - "net.openhft:zero-allocation-hashing", "org.checkerframework:checker-qual", "org.fusesource.jansi:jansi", "org.hamcrest:hamcrest-core",