From dd527f2d2e3523e22b407e6ea351f2521797de04 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Mon, 15 Jun 2026 15:09:00 +0000 Subject: [PATCH 1/4] 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 8a84c2da0cebefe1db22d47a89a8f0e1407789bc Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 12:25:40 -0400 Subject: [PATCH 2/4] Update build. --- build.sbt | 16 ++++++++-------- project/plugins.sbt | 3 --- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/build.sbt b/build.sbt index 89ad998..08d2552 100644 --- a/build.sbt +++ b/build.sbt @@ -43,7 +43,7 @@ lazy val mavenRepoUrl = "https://maven.bondlink-cdn.com" lazy val baseSettings = Seq( organization := "com.bondlink", libraryDependencies ++= foldScalaV(scalaVersion.value)( - Seq(compilerPlugin("org.typelevel" %% "kind-projector" % "0.13.4" cross CrossVersion.patch)), + Seq(compilerPlugin(("org.typelevel" %% "kind-projector" % "0.13.4").cross(CrossVersion.patch))), Seq(), ), scalacOptions ++= foldScalaV(scalaVersion.value)( @@ -68,15 +68,15 @@ lazy val publishSettings = Seq( publish / skip := false, s3PublishBucket := "bondlink-maven-repo", resolvers += "bondlink-maven-repo" at mavenRepoUrl, - mimaPreviousArtifacts := Set("com.bondlink" %%% name.value % "0.6.0"), + mimaPreviousArtifacts := Set("com.bondlink" %% name.value % "0.6.0"), ) -lazy val munit = Def.setting("org.scalameta" %%% "munit" % "1.3.3" % Test) -lazy val shapeless = Def.setting("com.chuusai" %%% "shapeless" % "2.3.13") -lazy val scalacheck = Def.setting("org.scalacheck" %%% "scalacheck" % "1.19.0" % Test) +lazy val munit = "org.scalameta" %% "munit" % "1.3.3" % Test +lazy val shapeless = "com.chuusai" %% "shapeless" % "2.3.13" +lazy val scalacheck = "org.scalacheck" %% "scalacheck" % "1.19.0" % Test // Newer versions of Scala 3 require Java 17 so we can't use Java 8 or 11 with them -def maybeAddScala3Next(matrix: sbt.internal.ProjectMatrix) = { +def maybeAddScala3Next(matrix: ProjectMatrix) = { val jv = sys.props.getOrElse("java.specification.version", "") if (jv == "1.8" || jv == "8" || jv == "11") matrix else matrix.jvmPlatform( @@ -97,10 +97,10 @@ lazy val core = maybeAddScala3Next(projectMatrix.in(file("core"))) .settings(publishSettings) .settings( name := "formless", - libraryDependencies ++= Seq(munit.value, scalacheck.value), + libraryDependencies ++= Seq(munit, scalacheck), libraryDependencies ++= foldScalaV(scalaVersion.value)( Seq( - shapeless.value, + shapeless, scalaOrganization.value % "scala-compiler" % scalaVersion.value % "provided", ), Seq(), diff --git a/project/plugins.sbt b/project/plugins.sbt index eb597f7..9f793ec 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,12 +1,9 @@ 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("com.typesafe" % "sbt-mima-plugin" % "1.1.6") addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.6") -addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") -addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.21.0") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.12") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.9.0") From c774d4452e62f6b35590560c57fbdf42962c83f8 Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 12:29:11 -0400 Subject: [PATCH 3/4] Drop java 8 and 11. --- .github/workflows/ci.yml | 23 +---------------------- build.sbt | 14 ++++---------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b36561c..3863b69 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 08d2552..a51a9c8 100644 --- a/build.sbt +++ b/build.sbt @@ -15,7 +15,7 @@ ThisBuild / scalaVersion := scala3 ThisBuild / version := "0.8.0" // 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 @@ -75,11 +75,9 @@ lazy val munit = "org.scalameta" %% "munit" % "1.3.3" % Test lazy val shapeless = "com.chuusai" %% "shapeless" % "2.3.13" lazy val scalacheck = "org.scalacheck" %% "scalacheck" % "1.19.0" % Test -// Newer versions of Scala 3 require Java 17 so we can't use Java 8 or 11 with them -def maybeAddScala3Next(matrix: ProjectMatrix) = { - val jv = sys.props.getOrElse("java.specification.version", "") - if (jv == "1.8" || jv == "8" || jv == "11") matrix - else matrix.jvmPlatform( +lazy val core = projectMatrix.in(file("core")) + .jvmPlatform(scalaVersions = scalaVersions) + .jvmPlatform( scalaVersions = Seq(scala3Next), axisValues = Seq(scala3NextAxis), settings = Seq( @@ -87,10 +85,6 @@ def maybeAddScala3Next(matrix: ProjectMatrix) = { mimaPreviousArtifacts := Set(), ), ) -} - -lazy val core = maybeAddScala3Next(projectMatrix.in(file("core"))) - .jvmPlatform(scalaVersions = scalaVersions) .jsPlatform(scalaVersions = scalaVersions) .nativePlatform(scalaVersions = scalaVersions) .settings(baseSettings) From b7655faec6216ea3abcf1e6b4465806d9e9dad1f Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Wed, 17 Jun 2026 07:53:59 -0400 Subject: [PATCH 4/4] 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 3863b69..898633d 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: Build project run: sbt test diff --git a/build.sbt b/build.sbt index a51a9c8..da822ca 100644 --- a/build.sbt +++ b/build.sbt @@ -21,6 +21,7 @@ ThisBuild / githubWorkflowJavaVersions := javaVersions ThisBuild / githubWorkflowArtifactUpload := false ThisBuild / githubWorkflowBuildMatrixFailFast := Some(false) ThisBuild / githubWorkflowTargetBranches := Seq("main") +ThisBuild / githubWorkflowUseSbtThinClient := true val isJava25 = s"matrix.java == '${javaVersions.find(_.version == "25").get.render}'"