From 0183a38e772262bd15f1d8901eba16f7050307a4 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Mon, 15 Jun 2026 15:07:07 +0000 Subject: [PATCH 1/5] Update sbt to 2.0.0 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 7c1916d..666624a 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.12.12 +sbt.version=2.0.0 From c6d635d020fc35f274cc7ad0bd1823d030af646d Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 10:51:34 -0400 Subject: [PATCH 2/5] Remove sbt-projectmatrix, update `baseProj`. --- build.sbt | 12 ++++++------ project/plugins.sbt | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/build.sbt b/build.sbt index b5f2b89..384534a 100644 --- a/build.sbt +++ b/build.sbt @@ -37,12 +37,12 @@ val publishSettings = Seq( s3PublishBucket := "bondlink-maven-repo", ) -def baseProj(id: String, nme: String) = - sbt.internal.ProjectMatrix(id, file(id)) +def baseProj(matrix: ProjectMatrix, nme: String) = + matrix .jvmPlatform(scalaVersions = Seq(scala2, scala3)) .settings(baseSettings ++ Seq(name := nme)) -lazy val disableToStringPlugin = baseProj("plugin", "disable-to-string-plugin") +lazy val disableToStringPlugin = baseProj(projectMatrix.in(file("plugin")), "disable-to-string-plugin") .settings(publishSettings ++ Seq( libraryDependencies += foldScalaV(scalaVersion.value)( "org.scala-lang" % "scala-compiler", @@ -69,14 +69,14 @@ val testSettings = baseSettings ++ Seq( Compile / unmanagedSourceDirectories += (ThisBuild / baseDirectory).value / "tests" / "src" / "main" / "scala", ) -lazy val testAllOption = baseProj("test-all-option", "test-all-option") +lazy val testAllOption = baseProj(projectMatrix.in(file("test-all-option")), "test-all-option") .settings(testSettings) .settings( scalacOptions += "-P:disableToString:all", ) .aggregate(disableToStringPlugin) -lazy val testLiteralOption = baseProj("test-literal-option", "test-literal-option") +lazy val testLiteralOption = baseProj(projectMatrix.in(file("test-literal-option")), "test-literal-option") .settings(testSettings) .settings( scalacOptions ++= Seq( @@ -89,7 +89,7 @@ lazy val testLiteralOption = baseProj("test-literal-option", "test-literal-optio ) .aggregate(disableToStringPlugin) -lazy val testRegexOption = baseProj("test-regex-option", "test-regex-option") +lazy val testRegexOption = baseProj(projectMatrix.in(file("test-regex-option")), "test-regex-option") .settings(testSettings) .settings( scalacOptions += "-P:disableToString:regex=^(scala\\.Boolean|scala\\.Int|bl\\.(Foo|Bar|testObj\\.Baz))$", diff --git a/project/plugins.sbt b/project/plugins.sbt index ee5d15f..2928be7 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,5 @@ resolvers += "bondlink-maven-repo" at "https://maven.bondlink-cdn.com" addSbtPlugin("bondlink" % "sbt-s3-publish" % "0.0.1") -addSbtPlugin("com.eed3si9n" % "sbt-projectmatrix" % "0.11.0") addSbtPlugin("com.github.sbt" % "sbt-github-actions" % "0.30.0") addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.6") From c488ef25f71466c58fbfd732d25cd2bccf6fe39d Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 11:34:03 -0400 Subject: [PATCH 3/5] Convert virtual file. --- build.sbt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 384534a..f6eb875 100644 --- a/build.sbt +++ b/build.sbt @@ -52,9 +52,10 @@ lazy val disableToStringPlugin = baseProj(projectMatrix.in(file("plugin")), "dis val testSettings = baseSettings ++ Seq( scalacOptions ++= Def.taskDyn { + val conv = fileConverter.value val scalaV = scalaVersion.value Def.task { - val jar = (disableToStringPlugin.jvm(scalaV) / Compile / Keys.`package`).value + val jar = conv.toPath((disableToStringPlugin.jvm(scalaV) / Compile / Keys.`package`).value).toFile Seq( s"-Xplugin:${jar.getAbsolutePath}", s"-Jdummy$name=${jar.lastModified}", From d18410215b2cfa9a733c66daa8a26a200bf93b8f Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 11:34:08 -0400 Subject: [PATCH 4/5] Drop java 8 and 11. --- .github/workflows/ci.yml | 23 +---------------------- build.sbt | 2 +- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c331db7..84f8b71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,12 +24,7 @@ jobs: matrix: os: [ubuntu-latest] scala: [3.3.8] - java: - - temurin@8 - - temurin@11 - - temurin@17 - - temurin@21 - - temurin@25 + java: [temurin@17, temurin@21, temurin@25] runs-on: ${{ matrix.os }} steps: - name: Checkout current branch (full) @@ -37,22 +32,6 @@ jobs: with: fetch-depth: 0 - - name: Setup Java (temurin@8) - if: matrix.java == 'temurin@8' - uses: actions/setup-java@v5 - with: - distribution: temurin - java-version: 8 - cache: sbt - - - name: Setup Java (temurin@11) - if: matrix.java == 'temurin@11' - uses: actions/setup-java@v5 - with: - distribution: temurin - java-version: 11 - cache: sbt - - name: Setup Java (temurin@17) if: matrix.java == 'temurin@17' uses: actions/setup-java@v5 diff --git a/build.sbt b/build.sbt index f6eb875..0a7df3e 100644 --- a/build.sbt +++ b/build.sbt @@ -6,7 +6,7 @@ val scala3 = "3.3.8" ThisBuild / scalaVersion := scala3 // GitHub Actions config -val javaVersions = Seq(8, 11, 17, 21, 25).map(v => JavaSpec.temurin(v.toString)) +val javaVersions = Seq(17, 21, 25).map(v => JavaSpec.temurin(v.toString)) ThisBuild / githubWorkflowJavaVersions := javaVersions ThisBuild / githubWorkflowArtifactUpload := false From d29a3e13091e35d8153b37dd8a0425f8f591cfc8 Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 19:53:17 -0400 Subject: [PATCH 5/5] Use `githubWorkflowUseSbtThinClient` to fix `githubWorkflowCheck` step. --- .github/workflows/ci.yml | 2 +- build.sbt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84f8b71..354af7a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,7 +60,7 @@ jobs: uses: sbt/setup-sbt@v1 - name: Check that workflows are up to date - run: sbt '++ ${{ matrix.scala }}' githubWorkflowCheck + run: sbt --client '++ ${{ matrix.scala }}; githubWorkflowCheck' - name: test run: sbt Test/compile diff --git a/build.sbt b/build.sbt index 0a7df3e..dbb41bd 100644 --- a/build.sbt +++ b/build.sbt @@ -13,6 +13,7 @@ ThisBuild / githubWorkflowArtifactUpload := false ThisBuild / githubWorkflowBuildMatrixFailFast := Some(false) ThisBuild / githubWorkflowTargetBranches := Seq("main") ThisBuild / githubWorkflowPublishTargetBranches := Seq() +ThisBuild / githubWorkflowUseSbtThinClient := true ThisBuild / githubWorkflowBuild := Seq( WorkflowStep.Run(List("sbt Test/compile"), name = Some("test")),