From 4f1d0d53b2cd976adea18cb3262dd1b7588618a9 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Mon, 15 Jun 2026 15:06:18 +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 1589e5d4888fd38a487a29a0b12a408220c0a7dc Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Mon, 15 Jun 2026 16:21:53 -0400 Subject: [PATCH 2/4] Remove sbt-projectmatrix, update `baseProj`. --- build.sbt | 10 +++++----- project/plugins.sbt | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index b93adc4..5ff41fe 100644 --- a/build.sbt +++ b/build.sbt @@ -48,8 +48,8 @@ lazy val commonSettings = Seq( commonSettings -def baseProj(id: String, nme: String) = - sbt.internal.ProjectMatrix(id, file(id)) +def baseProj(matrix: ProjectMatrix, nme: String) = + matrix .jvmPlatform(scalaVersions = Seq(scala213, scala3)) .settings(commonSettings ++ Seq(name := nme)) @@ -68,7 +68,7 @@ lazy val publishSettings = Seq( mimaPreviousArtifacts := Set(organization.value %% name.value % "7.0.0"), ) -lazy val core = baseProj("core", "composefree") +lazy val core = baseProj(projectMatrix.in(file("core")), "composefree") .settings(publishSettings ++ Seq( libraryDependencies ++= Seq( catsCore, @@ -76,7 +76,7 @@ lazy val core = baseProj("core", "composefree") ) )) -lazy val future = baseProj("future", "composefree-future") +lazy val future = baseProj(projectMatrix.in(file("future")), "composefree-future") .settings(publishSettings ++ Seq( libraryDependencies ++= Seq( catsCore, @@ -89,7 +89,7 @@ lazy val future = baseProj("future", "composefree-future") ), )) -lazy val example = baseProj("example", "composefree-example") +lazy val example = baseProj(projectMatrix.in(file("example")), "composefree-example") .settings(libraryDependencies += "org.typelevel" %% "cats-effect" % "3.7.0") .dependsOn(core, future) .aggregate(core, future) diff --git a/project/plugins.sbt b/project/plugins.sbt index d444315..c78e9d4 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("org.scalameta" % "sbt-mdoc" % "2.9.0") addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.6") From 9463b2a9a7642ae220cf4b0c9ce0c7a6807885e4 Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Mon, 15 Jun 2026 16:35:46 -0400 Subject: [PATCH 3/4] 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 849bbe1..eeda415 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 5ff41fe..8bd5d99 100644 --- a/build.sbt +++ b/build.sbt @@ -6,7 +6,7 @@ lazy 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 6a574235f6e686ca9d1804ff2b8d672076eb6e27 Mon Sep 17 00:00:00 2001 From: Matt Dziuban Date: Tue, 16 Jun 2026 19:50: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 eeda415..312dfdf 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 8bd5d99..c00f3a5 100644 --- a/build.sbt +++ b/build.sbt @@ -13,6 +13,7 @@ ThisBuild / githubWorkflowArtifactUpload := false ThisBuild / githubWorkflowBuildMatrixFailFast := Some(false) ThisBuild / githubWorkflowTargetBranches := Seq("master") ThisBuild / githubWorkflowPublishTargetBranches := Seq() +ThisBuild / githubWorkflowUseSbtThinClient := true def isJava(v: Int) = s"matrix.java == '${javaVersions.find(_.version == v.toString).get.render}'"