From 35362bba0e7f9fa20486883e5e7531c7732d701e Mon Sep 17 00:00:00 2001 From: eugene yokota Date: Mon, 25 May 2026 14:05:33 -0400 Subject: [PATCH] [1.x] fix: Make custom-scala-org scripted test hermetic (#9260) (#9266) The original fixture pinned scalaOrganization := "io.github.scala-wasm" scalaVersion := "3.8.3-RC1-wasm-bin-SNAPSHOT" and ran compile. The wasm fork never published a release of scala3-library_3 -- only a snapshot to Sonatype's central-snapshots repo, which has ~90-day retention. #8732 merged 2026-02-21; the snapshot was GC'd ~2026-05-22 and develop CI began failing deterministically. Fixes #9259. Co-authored-by: BrianHotopp Co-authored-by: Claude Opus 4.7 (1M context) --- .../custom-scala-org/A.scala | 1 - .../custom-scala-org/build.sbt | 45 +++++++++++++++++-- .../custom-scala-org/s213/.gitkeep | 0 .../custom-scala-org/test | 3 +- 4 files changed, 44 insertions(+), 5 deletions(-) delete mode 100644 sbt-app/src/sbt-test/dependency-management/custom-scala-org/A.scala create mode 100644 sbt-app/src/sbt-test/dependency-management/custom-scala-org/s213/.gitkeep diff --git a/sbt-app/src/sbt-test/dependency-management/custom-scala-org/A.scala b/sbt-app/src/sbt-test/dependency-management/custom-scala-org/A.scala deleted file mode 100644 index 69c493db2..000000000 --- a/sbt-app/src/sbt-test/dependency-management/custom-scala-org/A.scala +++ /dev/null @@ -1 +0,0 @@ -object A diff --git a/sbt-app/src/sbt-test/dependency-management/custom-scala-org/build.sbt b/sbt-app/src/sbt-test/dependency-management/custom-scala-org/build.sbt index 5c9111262..f55a0eb11 100644 --- a/sbt-app/src/sbt-test/dependency-management/custom-scala-org/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/custom-scala-org/build.sbt @@ -1,4 +1,43 @@ -ThisBuild / scalaOrganization := "io.github.scala-wasm" -ThisBuild / scalaVersion := "3.8.3-RC1-wasm-bin-SNAPSHOT" +// Regression test for sbt/sbt#8731: scalaOrganization must thread into the +// compiler-bridge ModuleID instead of being hardcoded to org.scala-lang. +// See sbt/sbt#9259 for why this is a settings-graph assertion rather than a +// real cross-org compile. -ThisBuild / resolvers += "Sonatype Central Snapshots" at "https://central.sonatype.com/repository/maven-snapshots/" +ThisBuild / scalaOrganization := "io.example.testorg" +ThisBuild / scalaVersion := "3.7.4" + +lazy val checkScala3 = + taskKey[Unit]("scalaOrganization threads into scala3-sbt-bridge for Scala 3") +lazy val checkScala2 = + taskKey[Unit]("scalaOrganization threads into scala2-sbt-bridge for Scala 2.13.12+") + +lazy val root = (project in file(".")) + .settings( + checkScala3 := { + val m = scalaCompilerBridgeSource.value + assert( + m.organization == "io.example.testorg", + s"expected organization io.example.testorg, got $m", + ) + assert( + m.name == "scala3-sbt-bridge", + s"expected name scala3-sbt-bridge, got $m", + ) + } + ) + +lazy val s213 = (project in file("s213")) + .settings( + scalaVersion := "2.13.12", + checkScala2 := { + val m = scalaCompilerBridgeSource.value + assert( + m.organization == "io.example.testorg", + s"expected organization io.example.testorg, got $m", + ) + assert( + m.name == "scala2-sbt-bridge", + s"expected name scala2-sbt-bridge, got $m", + ) + }, + ) diff --git a/sbt-app/src/sbt-test/dependency-management/custom-scala-org/s213/.gitkeep b/sbt-app/src/sbt-test/dependency-management/custom-scala-org/s213/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/sbt-app/src/sbt-test/dependency-management/custom-scala-org/test b/sbt-app/src/sbt-test/dependency-management/custom-scala-org/test index 5df2af1f3..3979cf846 100644 --- a/sbt-app/src/sbt-test/dependency-management/custom-scala-org/test +++ b/sbt-app/src/sbt-test/dependency-management/custom-scala-org/test @@ -1 +1,2 @@ -> compile +> checkScala3 +> s213/checkScala2