From 15b725842a033f71f1dfd3f2c825c3ad8126ae3f Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Mon, 15 Jun 2026 15:13:06 +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 fd9b5de43852a6c3129b2503eeb9ccbcfbe54f9d Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 15:56:33 -0400 Subject: [PATCH 2/4] Update build. --- build.sbt | 37 +++++++++++++++++++------------------ project/plugins.sbt | 1 - 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/build.sbt b/build.sbt index 2a470c8..28af504 100644 --- a/build.sbt +++ b/build.sbt @@ -36,12 +36,13 @@ lazy val baseSettings = Seq( organization := "typify", version := "13.0.0", 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(), ), + libraryDependencySchemes += "org.scala-native" %% "test-interface_native0.5" % VersionScheme.EarlySemVer, scalacOptions ++= foldScalaV(scalaVersion.value)( Seq("-Vimplicits-verbose-tree"), - Seq("-no-indent"), + Seq(), ), scalacOptions --= Seq( "-language:existentials", @@ -59,57 +60,57 @@ lazy val publishSettings = Seq( publish / skip := false, s3PublishBucket := "bondlink-maven-repo", resolvers += "bondlink-maven-repo" at "https://maven.bondlink-cdn.com", - mimaPreviousArtifacts := Set(organization.value %%% name.value % "12.0.0"), + mimaPreviousArtifacts := Set(organization.value %% name.value % "12.0.0"), ) def baseProj( - id: String, + matrix: ProjectMatrix, nme: String, includeJVM: Boolean = true, includeJS: Boolean = true, includeNative: Boolean = true, ) = - sbt.internal.ProjectMatrix(id, file(id)) + matrix .pipe(p => if (includeJVM) p.jvmPlatform(scalaVersions = scalaVersions) else p) .pipe(p => if (includeJS) p.jsPlatform(scalaVersions = scalaVersions) else p) .pipe(p => if (includeNative) p.nativePlatform(scalaVersions = scalaVersions) else p) .settings(baseSettings ++ Seq(name := nme)) -lazy val cats = Def.setting("org.typelevel" %%% "cats-core" % "2.13.0") -lazy val circe = Def.setting("io.circe" %%% "circe-core" % "0.14.15") -lazy val formless = Def.setting("com.bondlink" %%% "formless" % "0.8.0") +lazy val cats = "org.typelevel" %% "cats-core" % "2.13.0" +lazy val circe = "io.circe" %% "circe-core" % "0.14.15" +lazy val formless = "com.bondlink" %% "formless" % "0.8.0" lazy val json4s = "io.github.json4s" %% "json4s-jackson" % "4.1.1" -lazy val playJson = Def.setting("org.playframework" %%% "play-json" % "3.0.6") -lazy val scalacheck = Def.setting("org.scalacheck" %%% "scalacheck" % "1.19.0" % Test) +lazy val playJson = "org.playframework" %% "play-json" % "3.0.6" +lazy val scalacheck = "org.scalacheck" %% "scalacheck" % "1.19.0" % Test -lazy val typify = baseProj("typify", "typify") +lazy val typify = baseProj(projectMatrix.in(file("typify")), "typify") .settings(publishSettings) .settings( - libraryDependencies ++= Seq(cats.value, formless.value, scalacheck.value), + libraryDependencies ++= Seq(cats, formless, scalacheck), ) -lazy val circeTypify = baseProj("circe-typify", "circe-typify", includeJS = false, includeNative = false) +lazy val circeTypify = baseProj(projectMatrix.in(file("circe-typify")), "circe-typify", includeJS = false, includeNative = false) .settings(publishSettings) .settings( - libraryDependencies += circe.value, + libraryDependencies += circe, ) .dependsOn(typify % "test->test;compile->compile") -lazy val json4sTypify = baseProj("json4s-typify", "json4s-typify", includeJS = false, includeNative = false) +lazy val json4sTypify = baseProj(projectMatrix.in(file("json4s-typify")), "json4s-typify", includeJS = false, includeNative = false) .settings(publishSettings) .settings( libraryDependencies += json4s ) .dependsOn(typify % "test->test;compile->compile") -lazy val playjsonTypify = baseProj("play-json-typify", "play-json-typify", includeJS = false, includeNative = false) +lazy val playjsonTypify = baseProj(projectMatrix.in(file("play-json-typify")), "play-json-typify", includeJS = false, includeNative = false) .settings(publishSettings) .settings( - libraryDependencies ++= Seq(cats.value, playJson.value) + libraryDependencies ++= Seq(cats, playJson) ) .dependsOn(typify % "test->test;compile->compile") -lazy val sjsTypify = baseProj("jsdynamic-typify", "jsdynamic-typify", includeJVM = false, includeNative = false) +lazy val sjsTypify = baseProj(projectMatrix.in(file("jsdynamic-typify")), "jsdynamic-typify", includeJVM = false, includeNative = false) .settings(publishSettings) .dependsOn(typify % "test->test;compile->compile") diff --git a/project/plugins.sbt b/project/plugins.sbt index 9bb65a1..9f793ec 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,6 @@ 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") From d9de986891ff9ee9f3a6793aa231e2d9ee3b6c1c Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 15:56:58 -0400 Subject: [PATCH 3/4] Drop java 11. --- .github/workflows/ci.yml | 14 +------------- build.sbt | 2 +- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b43741..3fe744b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,11 +24,7 @@ jobs: matrix: os: [ubuntu-latest] scala: [3.3.8] - java: - - 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) @@ -36,14 +32,6 @@ jobs: with: fetch-depth: 0 - - 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 28af504..97bad1e 100644 --- a/build.sbt +++ b/build.sbt @@ -9,7 +9,7 @@ lazy val scalaVersions = Seq(scala213, scala3) ThisBuild / scalaVersion := scala3 // GitHub Actions config -val javaVersions = Seq(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 ef5919d7bef9813c10c6a69df9d7dad1b4339a34 Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Wed, 17 Jun 2026 08:40:25 -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 3fe744b..b8e1022 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 97bad1e..e4adb25 100644 --- a/build.sbt +++ b/build.sbt @@ -15,6 +15,7 @@ ThisBuild / githubWorkflowJavaVersions := javaVersions ThisBuild / githubWorkflowArtifactUpload := false ThisBuild / githubWorkflowBuildMatrixFailFast := Some(false) ThisBuild / githubWorkflowTargetBranches := Seq("master") +ThisBuild / githubWorkflowUseSbtThinClient := true def isJava(v: Int) = s"matrix.java == '${javaVersions.find(_.version == v.toString).get.render}'"