From 6138862797f91bb11b6ec92846c3a20aec1305d1 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Mon, 4 May 2026 01:31:44 +0200 Subject: [PATCH 01/30] Update sbt, scripted-plugin to 1.12.11 (#972) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index b1b10405..b844dc5c 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.11.7 +sbt.version=1.12.11 From eeee7d9d0373a8a729e3e93da7088fbddf36c8f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 16:31:47 -0700 Subject: [PATCH 02/30] Bump dorny/paths-filter from 3 to 4 (#963) Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3 to 4. - [Release notes](https://github.com/dorny/paths-filter/releases) - [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md) - [Commits](https://github.com/dorny/paths-filter/compare/v3...v4) --- updated-dependencies: - dependency-name: dorny/paths-filter dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a427ec6f..26c11bfb 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@v6 - - uses: dorny/paths-filter@v3 + - uses: dorny/paths-filter@v4 id: changes with: filters: | From 61fbea21a5580fb45138b7723bdbb82a2492cf0a Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Mon, 4 May 2026 01:31:57 +0200 Subject: [PATCH 03/30] Update scalafmt-core to 3.10.7 (#954) * Update scalafmt-core to 3.10.7 * Reformat with scalafmt 3.10.7 Executed command: scalafmt --non-interactive * Add 'Reformat with scalafmt 3.10.7' to .git-blame-ignore-revs --- .git-blame-ignore-revs | 3 +++ .scalafmt.conf | 2 +- build.sbt | 6 ++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index aead1172..b548702e 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -3,3 +3,6 @@ # Scala Steward: Reformat with scalafmt 3.10.3 d8af028d2cd271ab7f3adec9842f07cce86a2ac3 + +# Scala Steward: Reformat with scalafmt 3.10.7 +83b819003b44835b1792e3ef8263da91a5b6d4ba diff --git a/.scalafmt.conf b/.scalafmt.conf index d30b0537..0b12ac62 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = 3.10.3 +version = 3.10.7 project.layout = StandardConvention runner.dialect = scala3 maxColumn = 100 diff --git a/build.sbt b/build.sbt index 4d72279e..fabc5a9e 100644 --- a/build.sbt +++ b/build.sbt @@ -92,10 +92,8 @@ val buildSettings = Seq[Setting[?]]( // Style check config: (sbt-jchekcstyle) jcheckStyleConfig := "facebook", // Run jcheckstyle both for main and test codes - Compile / compile := - ((Compile / compile) dependsOn (Compile / jcheckStyle)).value, - Test / compile := - ((Test / compile) dependsOn (Test / jcheckStyle)).value + Compile / compile := ((Compile / compile) dependsOn (Compile / jcheckStyle)).value, + Test / compile := ((Test / compile) dependsOn (Test / jcheckStyle)).value ) val junitJupiter = "org.junit.jupiter" % "junit-jupiter" % "5.14.1" % "test" From a6d222032ea93cee06e8306a79abc84208c7b53a Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Mon, 4 May 2026 01:32:18 +0200 Subject: [PATCH 04/30] Update jackson-databind to 2.20.0 (#915) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index fabc5a9e..8cf0d967 100644 --- a/build.sbt +++ b/build.sbt @@ -161,7 +161,7 @@ lazy val msgpackJackson = Project(id = "msgpack-jackson", base = file("msgpack-j OsgiKeys.exportPackage := Seq("org.msgpack.jackson", "org.msgpack.jackson.dataformat"), libraryDependencies ++= Seq( - "com.fasterxml.jackson.core" % "jackson-databind" % "2.18.4", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.20.0", junitJupiter, junitVintage, "org.apache.commons" % "commons-math3" % "3.6.1" % "test" From b2fbe5c96e474b13f8419a6575d6651a458990c5 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Mon, 4 May 2026 01:32:30 +0200 Subject: [PATCH 05/30] Update airframe-json, airspec to 2025.1.27 (#948) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 8cf0d967..701998cc 100644 --- a/build.sbt +++ b/build.sbt @@ -3,7 +3,7 @@ Global / onChangedBuildSource := ReloadOnSourceChanges // For performance testing, ensure each test run one-by-one Global / concurrentRestrictions := Seq(Tags.limit(Tags.Test, 1)) -val AIRFRAME_VERSION = "2025.1.22" +val AIRFRAME_VERSION = "2025.1.27" // Use dynamic snapshot version strings for non tagged versions ThisBuild / dynverSonatypeSnapshots := true From 14b428ab18d58e24f162e42079e8d7f8a3a9ef5e Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Mon, 4 May 2026 01:32:41 +0200 Subject: [PATCH 06/30] Update junit-jupiter to 5.14.4 (#969) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 701998cc..e2c52ce1 100644 --- a/build.sbt +++ b/build.sbt @@ -96,7 +96,7 @@ val buildSettings = Seq[Setting[?]]( Test / compile := ((Test / compile) dependsOn (Test / jcheckStyle)).value ) -val junitJupiter = "org.junit.jupiter" % "junit-jupiter" % "5.14.1" % "test" +val junitJupiter = "org.junit.jupiter" % "junit-jupiter" % "5.14.4" % "test" val junitVintage = "org.junit.vintage" % "junit-vintage-engine" % "5.14.1" % "test" // Project settings From 2a134c3ff9ca46c4bd0aac79dd87614569768779 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Mon, 4 May 2026 01:36:42 +0200 Subject: [PATCH 07/30] Update sbt-scalafmt to 2.6.0 (#967) Co-authored-by: Taro L. Saito --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index a7594c7a..34c78da8 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,7 +4,7 @@ addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1") //addSbtPlugin("com.github.sbt" % "sbt-jacoco" % "3.3.0") addSbtPlugin("org.xerial.sbt" % "sbt-jcheckstyle" % "0.2.1") addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.10.0") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.6") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.0") addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.1") scalacOptions ++= Seq("-deprecation", "-feature") From 0b0ee35065a808ff7b28d8bc28a6755ff429861d Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Sun, 3 May 2026 16:36:44 -0700 Subject: [PATCH 08/30] Update junit-vintage-engine to 5.14.4 (#973) Aligns junit-vintage with the junit-jupiter 5.14.4 update merged in #969. Supersedes #970 (had merge conflict against main). --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index e2c52ce1..5072dccf 100644 --- a/build.sbt +++ b/build.sbt @@ -97,7 +97,7 @@ val buildSettings = Seq[Setting[?]]( ) val junitJupiter = "org.junit.jupiter" % "junit-jupiter" % "5.14.4" % "test" -val junitVintage = "org.junit.vintage" % "junit-vintage-engine" % "5.14.1" % "test" +val junitVintage = "org.junit.vintage" % "junit-vintage-engine" % "5.14.4" % "test" // Project settings lazy val root = Project(id = "msgpack-java", base = file(".")) From ca3fa54c8dc3a020ab554a7289af0927bbbf1f62 Mon Sep 17 00:00:00 2001 From: spp4keba <33248411+spp4keba@users.noreply.github.com> Date: Mon, 4 May 2026 01:51:34 +0200 Subject: [PATCH 09/30] =?UTF-8?q?Fix:=20Remove=20sun=20and=20android.os=20?= =?UTF-8?q?packages=20from=20Import-Package=20header=20of=E2=80=A6=20(#958?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix: Remove sun and android.os packages from Import-Package header of MANIFEST.MF --- build.sbt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.sbt b/build.sbt index 5072dccf..d87a7eab 100644 --- a/build.sbt +++ b/build.sbt @@ -125,6 +125,11 @@ lazy val msgpackCore = Project(id = "msgpack-core", base = file("msgpack-core")) "org.msgpack.value", "org.msgpack.value.impl" ), + OsgiKeys.importPackage := + Seq( + "!android.os", + "!sun.*" + ), testFrameworks += new TestFramework("wvlet.airspec.Framework"), Test / javaOptions ++= Seq( From 73d59ee6eac02b60e19507177c8d91e3663ce39f Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 5 May 2026 13:13:30 -0700 Subject: [PATCH 10/30] Add auto-merge workflow for Dependabot and Scala Steward PRs (#979) * Add: auto-merge workflow for Dependabot and Scala Steward PRs Mirrors the wvlet/uni auto-merge pattern, adapted for this repo: - Uses pull_request_target so GITHUB_TOKEN gets the declared write permissions on Dependabot-authored PRs (avoids needing a GitHub App). - Skips Dependabot major-version bumps via dependabot/fetch-metadata. - Skips Scala Steward PRs labeled semver-major. - Squash-merges via --auto, so GitHub waits for required checks and reviews before merging. Co-Authored-By: Claude Opus 4.7 (1M context) * Drop Scala Steward auto-merge job The semver-major label guard was a no-op: this repo's Scala Steward PRs only carry library-update (and sometimes internal), so the guard would have auto-merged every Scala Steward PR including major bumps. Defer Scala Steward auto-merge until the repo has proper semver labeling configured. Co-Authored-By: Claude Opus 4.7 (1M context) * Add Scala Steward auto-merge job Restore the Scala Steward auto-merge job dropped in the previous commit. Guards on both `semver-major` and `early-semver-major` labels for forward compatibility with future label setup. Until those labels are configured, the guard is effectively a no-op (matching wvlet/uni's behavior); a follow-up can tighten this by adding the labels to the repo and configuring Scala Steward to apply them. Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: Claude Opus 4.7 (1M context) --- .github/workflows/auto-merge.yml | 41 ++++++++++++++++ plans/2026-05-05-auto-merge.md | 84 ++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 .github/workflows/auto-merge.yml create mode 100644 plans/2026-05-05-auto-merge.md diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 00000000..c223994b --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,41 @@ +name: auto-merge +# pull_request_target runs in the base-branch context, which is required so +# that GITHUB_TOKEN gets the write permissions declared below even for PRs +# opened by Dependabot (which would otherwise receive a read-only token on +# regular pull_request events). This workflow never checks out PR head code, +# so the usual pull_request_target injection risk does not apply. +on: pull_request_target + +permissions: + contents: write + pull-requests: write + +jobs: + auto-merge-dependabot: + name: Auto-Merge Dependabot PRs + runs-on: ubuntu-latest + if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }} + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v2 + - name: Enable auto-merge for non-major updates + if: ${{ steps.metadata.outputs.update-type != 'version-update:semver-major' }} + run: gh pr merge --squash --auto "${{ github.event.pull_request.html_url }}" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + auto-merge-scala-steward: + name: Auto-Merge Scala Steward PRs + runs-on: ubuntu-latest + if: ${{ github.event.pull_request.user.login == 'scala-steward' }} + steps: + # Skip auto-merge if the PR carries a semver-major label. Note: this repo + # does not yet apply semver labels to Scala Steward PRs, so this guard is + # a no-op until early-semver-* labels are added to the repo and Scala + # Steward is configured to apply them. + - name: Enable auto-merge for non-major updates + if: ${{ !contains(github.event.pull_request.labels.*.name, 'semver-major') && !contains(github.event.pull_request.labels.*.name, 'early-semver-major') }} + run: gh pr merge --squash --auto "${{ github.event.pull_request.html_url }}" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/plans/2026-05-05-auto-merge.md b/plans/2026-05-05-auto-merge.md new file mode 100644 index 00000000..0b43e132 --- /dev/null +++ b/plans/2026-05-05-auto-merge.md @@ -0,0 +1,84 @@ +# Add auto-merge GitHub Actions workflow + +## Goal + +Add a workflow that automatically enables auto-merge on PRs from trusted bots +(Dependabot and Scala Steward) for non-major version bumps, mirroring the +pattern used in `wvlet/uni/.github/workflows/auto-merge.yml`. + +## Context + +- Recent PR history shows the repo regularly receives many bot PRs: + - `dependabot[bot]` — for GitHub Actions version bumps + - `scala-steward` — for Scala/sbt/Java library updates +- These currently require manual merge from the maintainer. +- Repo settings already allow auto-merge (`allow_auto_merge: true`) and squash + is the default merge method. +- CI passes branch-protection checks on PRs; once a PR is approved and CI is + green, GitHub will merge it automatically. + +## Differences from wvlet/uni + +- **No GitHub App token.** wvlet/uni uses a GitHub App (`APP_ID` + + `APP_PRIVATE_KEY`) to bypass the read-only `GITHUB_TOKEN` that GitHub + hands to `pull_request` workflows triggered by Dependabot. msgpack/msgpack-java + doesn't have that App configured, so this workflow uses + `on: pull_request_target` instead — that event runs in the base-branch + context where the workflow's declared `permissions:` block actually grants + write access to `GITHUB_TOKEN`. We never check out PR head code, so the + usual `pull_request_target` injection risk does not apply. +- **Scala Steward actor is `scala-steward`**, not wvlet/uni's + `scala-steward-wvlet[bot]` or `xerial-bot` (visible in `gh pr list`). +- **Filter on `github.event.pull_request.user.login`**, not `github.actor`, + because under `pull_request_target` the latter can resolve to the merger + rather than the PR author. + +## Plan + +1. Add `.github/workflows/auto-merge.yml` with two jobs: + - **auto-merge-dependabot**: triggers when + `github.event.pull_request.user.login == 'dependabot[bot]'`, uses + `dependabot/fetch-metadata@v2` to read the update type, and runs + `gh pr merge --squash --auto` only when the update is **not** + `version-update:semver-major`. + - **auto-merge-scala-steward**: triggers when + `github.event.pull_request.user.login == 'scala-steward'` and + auto-merges unless the PR carries a `semver-major` or + `early-semver-major` label. +2. Set workflow-level `permissions` to the minimum required: + `contents: write` and `pull-requests: write`. +3. Use `GITHUB_TOKEN` directly via `env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}`. + +### Scala Steward label caveat + +This repo's current Scala Steward PRs only carry `library-update` (and +sometimes `internal`) — no semver labels are configured upstream, so the +`semver-major` / `early-semver-major` guard is effectively a no-op until: +- The labels are added to the repo (Scala Steward only applies labels that + already exist), and +- Scala Steward is configured (e.g. via `.scala-steward.conf`) to attach + them. + +This matches the same caveat in the wvlet/uni reference implementation, +which uses `semver-spec-major` against `github.event.issue.labels` (not even +the right field on a PR event) — so its guard is also effectively a no-op +in practice. We accept the same trade-off here: most Scala Steward PRs are +patch/minor library updates, CI runs across JDK 8/11/17/21/24 and will fail +the merge-readiness checks if anything regresses, and a major bump that +slips through can be reverted. A follow-up could tighten this by setting up +proper semver labels. + +## Out of scope + +- Setting up a GitHub App for elevated bot identity. +- Auto-approving PRs (a human approval may still be required by branch + protection — auto-merge will simply wait for it). +- Changing branch protection rules. +- Configuring Scala Steward to apply semver labels (see caveat above). + +## Validation + +- Lint the YAML by checking the file parses (visual review + actionlint if + available). +- After merge, watch the next dependabot/scala-steward PR to confirm + auto-merge gets enabled. From 5ce2d79da6cc1d4f61676c67f336286a5cd16678 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Tue, 12 May 2026 00:17:19 +0200 Subject: [PATCH 11/30] Update sbt-scalafmt to 2.6.1 (#980) --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 34c78da8..2d12cde5 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,7 +4,7 @@ addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1") //addSbtPlugin("com.github.sbt" % "sbt-jacoco" % "3.3.0") addSbtPlugin("org.xerial.sbt" % "sbt-jcheckstyle" % "0.2.1") addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.10.0") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.0") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.1") addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.1") scalacOptions ++= Seq("-deprecation", "-feature") From 76aeb33143cc9669ea5a49a8a7eb840c7a523916 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Tue, 12 May 2026 00:17:54 +0200 Subject: [PATCH 12/30] Update scalafmt-core to 3.11.1 (#981) * Update scalafmt-core to 3.11.1 * Reformat with scalafmt 3.11.1 Executed command: scalafmt --non-interactive * Add 'Reformat with scalafmt 3.11.1' to .git-blame-ignore-revs --- .git-blame-ignore-revs | 3 +++ .scalafmt.conf | 2 +- build.sbt | 6 +----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index b548702e..58f44dd3 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -6,3 +6,6 @@ d8af028d2cd271ab7f3adec9842f07cce86a2ac3 # Scala Steward: Reformat with scalafmt 3.10.7 83b819003b44835b1792e3ef8263da91a5b6d4ba + +# Scala Steward: Reformat with scalafmt 3.11.1 +5a8f52d4aeff3380e4e38e5cd8e63626711b2f86 diff --git a/.scalafmt.conf b/.scalafmt.conf index 0b12ac62..5190ffa6 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = 3.10.7 +version = 3.11.1 project.layout = StandardConvention runner.dialect = scala3 maxColumn = 100 diff --git a/build.sbt b/build.sbt index d87a7eab..36d6f05e 100644 --- a/build.sbt +++ b/build.sbt @@ -125,11 +125,7 @@ lazy val msgpackCore = Project(id = "msgpack-core", base = file("msgpack-core")) "org.msgpack.value", "org.msgpack.value.impl" ), - OsgiKeys.importPackage := - Seq( - "!android.os", - "!sun.*" - ), + OsgiKeys.importPackage := Seq("!android.os", "!sun.*"), testFrameworks += new TestFramework("wvlet.airspec.Framework"), Test / javaOptions ++= Seq( From ec0cececa5161e4a8d7df93b53b9b2edb21a745e Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Sun, 14 Jun 2026 21:20:12 +0200 Subject: [PATCH 13/30] Update sbt, scripted-plugin to 1.12.12 (#988) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index b844dc5c..12583871 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.12.11 +sbt.version=1.12.12 From f74047d977e2f154bb24b2f11c8b7a71aca1d657 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Thu, 18 Jun 2026 20:36:26 +0200 Subject: [PATCH 14/30] Update airframe-json, airspec to 2026.1.7 (#990) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 36d6f05e..233abf0c 100644 --- a/build.sbt +++ b/build.sbt @@ -3,7 +3,7 @@ Global / onChangedBuildSource := ReloadOnSourceChanges // For performance testing, ensure each test run one-by-one Global / concurrentRestrictions := Seq(Tags.limit(Tags.Test, 1)) -val AIRFRAME_VERSION = "2025.1.27" +val AIRFRAME_VERSION = "2026.1.7" // Use dynamic snapshot version strings for non tagged versions ThisBuild / dynverSonatypeSnapshots := true From ed9dd9cf52c8ced606559c205603cbcfb2a7be08 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Mon, 22 Jun 2026 20:57:13 +0200 Subject: [PATCH 15/30] Update sbt, scripted-plugin to 1.12.13 (#991) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 12583871..2af813ac 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.12.12 +sbt.version=1.12.13 From feb87efc792ecab8230066312942b779dd904ea3 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 30 Jun 2026 13:05:22 -0700 Subject: [PATCH 16/30] Migrate to sbt 2 (#998) - Bump sbt 1.12.13 -> 2.0.1, sbt-jcheckstyle 0.2.1 -> 0.3.0 (now sbt2 cross-built, the previous blocker), sbt-osgi 0.10.0 -> 0.11.0-RC1 (only version with an sbt2 cross-build so far) - Fix build.sbt for sbt 2's new task engine (Def.uncached for the checkstyle-dependsOn override, Scala 3.8 strictness warnings) - sbt 2 requires JDK 17+ to run, so decouple "JDK running sbt" from "JDK under test/compile": fork both compilation and tests onto a target JDK via javaHome/TEST_JAVA_HOME, with -release 8 added to scalacOptions since scalac compiles in-process and doesn't fork like javac - Update CI.yml/release.yml/snapshot.yml accordingly so the JDK 8/11/17/21/24 test matrix and publish workflows keep working - Fix an unrelated flaky MessageBufferInputTest (mkdirs() ordering) surfaced while validating the migration --- .github/workflows/CI.yml | 20 +++++++++++++- .github/workflows/release.yml | 12 +++++++-- .github/workflows/snapshot.yml | 8 ++++++ build.sbt | 26 ++++++++++++++++--- .../core/buffer/MessageBufferInputTest.scala | 5 ++-- project/build.properties | 2 +- project/plugins.sbt | 4 +-- 7 files changed, 65 insertions(+), 12 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 26c11bfb..9b10fa35 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -40,11 +40,16 @@ jobs: if: ${{ needs.changes.outputs.code == 'true' }} steps: - uses: actions/checkout@v6 + # sbt 2 requires JDK 17+ to run + - uses: actions/setup-java@v5 + with: + distribution: 'zulu' + java-version: '21' - name: jcheckstyle run: ./sbt jcheckStyle - name: scalafmtCheckAll run: ./sbt scalafmtCheckAll - + test: name: Test JDK${{ matrix.java }} runs-on: ubuntu-latest @@ -55,16 +60,29 @@ jobs: java: ['8', '11', '17', '21', '24'] steps: - uses: actions/checkout@v6 + # The JDK under test: msgpack-core forks its tests onto this JDK (via + # TEST_JAVA_HOME) so we still verify runtime behavior on each target JDK. - uses: actions/setup-java@v5 + id: target-jdk with: distribution: 'zulu' java-version: ${{ matrix.java }} + # sbt 2 itself requires JDK 17+ to run, so install a fixed, newer JDK to + # actually launch sbt. This becomes the default JDK on PATH/JAVA_HOME. + - uses: actions/setup-java@v5 + with: + distribution: 'zulu' + java-version: '21' - uses: actions/cache@v5 with: path: ~/.cache key: ${{ runner.os }}-jdk${{ matrix.java }}-${{ hashFiles('**/*.sbt') }} restore-keys: ${{ runner.os }}-jdk${{ matrix.java }}- - name: Test + env: + TEST_JAVA_HOME: ${{ steps.target-jdk.outputs.path }} run: ./sbt test - name: Universal Buffer Test + env: + TEST_JAVA_HOME: ${{ steps.target-jdk.outputs.path }} run: ./sbt test -J-Dmsgpack.universal-buffer=true \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0cec5029..84b7d9de 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,12 +16,19 @@ jobs: fetch-depth: 10000 # Fetch all tags so that sbt-dynver can find the previous release version - run: git fetch --tags -f - # Install OpenJDK 8 + # We need to compile with JDK8 for Android compatibility + # https://github.com/msgpack/msgpack-java/issues/516 - uses: actions/setup-java@v5 + id: jdk8 with: - # We need to use JDK8 for Android compatibility https://github.com/msgpack/msgpack-java/issues/516 java-version: 8 distribution: adopt + # sbt 2 itself requires JDK 17+ to run; build.sbt forks the compiler (and tests) + # onto JDK8 via TEST_JAVA_HOME, so this becomes the default JDK on PATH/JAVA_HOME. + - uses: actions/setup-java@v5 + with: + java-version: 21 + distribution: adopt - name: Setup GPG env: PGP_SECRET: ${{ secrets.PGP_SECRET }} @@ -29,6 +36,7 @@ jobs: - name: Build bundle env: PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} + TEST_JAVA_HOME: ${{ steps.jdk8.outputs.path }} run: | ./sbt publishSigned - name: Release to Sonatype diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index dc0fac1d..02594583 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -22,11 +22,19 @@ jobs: # Fetch all tags so that sbt-dynver can find the previous release version - run: git fetch --tags - uses: actions/setup-java@v5 + id: jdk11 with: java-version: 11 distribution: adopt + # sbt 2 itself requires JDK 17+ to run; build.sbt forks the compiler onto JDK11 + # via TEST_JAVA_HOME, so this becomes the default JDK on PATH/JAVA_HOME. + - uses: actions/setup-java@v5 + with: + java-version: 21 + distribution: adopt - name: Publish snapshots env: SONATYPE_USERNAME: '${{ secrets.SONATYPE_USERNAME }}' SONATYPE_PASSWORD: '${{ secrets.SONATYPE_PASSWORD }}' + TEST_JAVA_HOME: ${{ steps.jdk11.outputs.path }} run: ./sbt publish diff --git a/build.sbt b/build.sbt index 233abf0c..87315d0f 100644 --- a/build.sbt +++ b/build.sbt @@ -1,3 +1,5 @@ +import scala.language.implicitConversions + Global / onChangedBuildSource := ReloadOnSourceChanges // For performance testing, ensure each test run one-by-one @@ -67,8 +69,25 @@ val buildSettings = Seq[Setting[?]]( crossPaths := false, publishMavenStyle := true, // JVM options for building - scalacOptions ++= Seq("-encoding", "UTF-8", "-deprecation", "-unchecked", "-feature"), + // -release 8 pins scalac's resolution of JDK API calls to the JDK8 surface (e.g. + // test code calling ByteBuffer.flip() resolves to the inherited Buffer.flip():Buffer + // rather than JDK9's covariant ByteBuffer.flip():ByteBuffer override, which doesn't + // exist on a real JDK8 at runtime -> NoSuchMethodError). Unlike javac's --release, + // this doesn't need an ignore-symbol-file escape hatch since test code never touches + // JDK-internal APIs the way the main sources' Unsafe usage does. + scalacOptions ++= + Seq("-encoding", "UTF-8", "-deprecation", "-unchecked", "-feature", "-release", "8"), Test / javaOptions ++= Seq("-ea"), + // sbt 2 itself requires JDK 17+ to run, but each CI lane still needs to compile and + // test against its own target JDK (e.g. 8) to faithfully reproduce runtime behavior: + // javac resolves API calls against whichever JDK actually runs it (-source/-target + // only constrain language level and bytecode version, not API resolution), so e.g. + // compiling on JDK9+ can bind to covariant overloads like ByteBuffer.flip(): + // ByteBuffer that don't exist on a real JDK8 at runtime. When TEST_JAVA_HOME is set, + // fork both compilation and test execution onto that JDK; otherwise use the JDK + // running sbt, as before. + javaHome := sys.env.get("TEST_JAVA_HOME").map(file), + Test / fork := true, javacOptions ++= Seq("-source", "1.8", "-target", "1.8"), Compile / compile / javacOptions ++= Seq("-encoding", "UTF-8", "-Xlint:unchecked", "-Xlint:deprecation"), @@ -92,8 +111,8 @@ val buildSettings = Seq[Setting[?]]( // Style check config: (sbt-jchekcstyle) jcheckStyleConfig := "facebook", // Run jcheckstyle both for main and test codes - Compile / compile := ((Compile / compile) dependsOn (Compile / jcheckStyle)).value, - Test / compile := ((Test / compile) dependsOn (Test / jcheckStyle)).value + Compile / compile := Def.uncached((Compile / compile).dependsOn(Compile / jcheckStyle).value), + Test / compile := Def.uncached((Test / compile).dependsOn(Test / jcheckStyle).value) ) val junitJupiter = "org.junit.jupiter" % "junit-jupiter" % "5.14.4" % "test" @@ -134,7 +153,6 @@ lazy val msgpackCore = Project(id = "msgpack-core", base = file("msgpack-core")) "--add-opens=java.base/java.nio=ALL-UNNAMED", "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED" ), - Test / fork := true, libraryDependencies ++= Seq( // msgpack-core should have no external dependencies diff --git a/msgpack-core/src/test/scala/org/msgpack/core/buffer/MessageBufferInputTest.scala b/msgpack-core/src/test/scala/org/msgpack/core/buffer/MessageBufferInputTest.scala index 0465aa69..5d3c3d9f 100644 --- a/msgpack-core/src/test/scala/org/msgpack/core/buffer/MessageBufferInputTest.scala +++ b/msgpack-core/src/test/scala/org/msgpack/core/buffer/MessageBufferInputTest.scala @@ -58,8 +58,9 @@ class MessageBufferInputTest extends AirSpec: def toByteBuffer = ByteBuffer.wrap(b) def saveToTmpFile: File = - val tmp = File.createTempFile("testbuf", ".dat", new File("target")) - tmp.getParentFile.mkdirs() + val dir = new File("target") + dir.mkdirs() + val tmp = File.createTempFile("testbuf", ".dat", dir) tmp.deleteOnExit() withResource(new FileOutputStream(tmp)) { out => out.write(b) diff --git a/project/build.properties b/project/build.properties index 2af813ac..4bf10378 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=1.12.13 +sbt.version=2.0.1 diff --git a/project/plugins.sbt b/project/plugins.sbt index 2d12cde5..e0c7486a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,8 +2,8 @@ addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1") // TODO: Fixes jacoco error: // java.lang.NoClassDefFoundError: Could not initialize class org.jacoco.core.internal.flow.ClassProbesAdapter //addSbtPlugin("com.github.sbt" % "sbt-jacoco" % "3.3.0") -addSbtPlugin("org.xerial.sbt" % "sbt-jcheckstyle" % "0.2.1") -addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.10.0") +addSbtPlugin("org.xerial.sbt" % "sbt-jcheckstyle" % "0.3.0") +addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.11.0-RC1") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.1") addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.1") From d07254751ed908a548054c3660b5b44d5315b713 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 13:08:07 -0700 Subject: [PATCH 17/30] Bump dependabot/fetch-metadata from 2 to 3 (#982) Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2 to 3. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v2...v3) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index c223994b..fa651d47 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v2 + uses: dependabot/fetch-metadata@v3 - name: Enable auto-merge for non-major updates if: ${{ steps.metadata.outputs.update-type != 'version-update:semver-major' }} run: gh pr merge --squash --auto "${{ github.event.pull_request.html_url }}" From f6236428ce5840cebc673780a58411ee3b6e4d76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 20:08:40 +0000 Subject: [PATCH 18/30] Bump actions/checkout from 6 to 7 (#992) Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/CI.yml | 6 +++--- .github/workflows/release.yml | 2 +- .github/workflows/snapshot.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9b10fa35..e4617c6a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -15,7 +15,7 @@ jobs: docs: ${{ steps.changes.outputs.docs }} steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - uses: dorny/paths-filter@v4 id: changes with: @@ -39,7 +39,7 @@ jobs: needs: changes if: ${{ needs.changes.outputs.code == 'true' }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 # sbt 2 requires JDK 17+ to run - uses: actions/setup-java@v5 with: @@ -59,7 +59,7 @@ jobs: matrix: java: ['8', '11', '17', '21', '24'] steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 # The JDK under test: msgpack-core forks its tests onto this JDK (via # TEST_JAVA_HOME) so we still verify runtime behavior on each target JDK. - uses: actions/setup-java@v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84b7d9de..210b7c21 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ jobs: name: Release runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: fetch-depth: 10000 # Fetch all tags so that sbt-dynver can find the previous release version diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index 02594583..ec9edbfe 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -16,7 +16,7 @@ jobs: name: Publish snapshots runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: fetch-depth: 10000 # Fetch all tags so that sbt-dynver can find the previous release version From e54b6cc5103eebd8c596b032806bacbcde5db494 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 20:08:56 +0000 Subject: [PATCH 19/30] Bump actions/cache from 5 to 6 (#996) Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e4617c6a..88301aec 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -73,7 +73,7 @@ jobs: with: distribution: 'zulu' java-version: '21' - - uses: actions/cache@v5 + - uses: actions/cache@v6 with: path: ~/.cache key: ${{ runner.os }}-jdk${{ matrix.java }}-${{ hashFiles('**/*.sbt') }} From 09de0e1cb6ad356d1cd24a7ca5f0cd054fff1411 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Tue, 30 Jun 2026 22:11:24 +0200 Subject: [PATCH 20/30] Update jackson-databind to 2.20.2 (#974) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 87315d0f..3e708f71 100644 --- a/build.sbt +++ b/build.sbt @@ -180,7 +180,7 @@ lazy val msgpackJackson = Project(id = "msgpack-jackson", base = file("msgpack-j OsgiKeys.exportPackage := Seq("org.msgpack.jackson", "org.msgpack.jackson.dataformat"), libraryDependencies ++= Seq( - "com.fasterxml.jackson.core" % "jackson-databind" % "2.20.0", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.20.2", junitJupiter, junitVintage, "org.apache.commons" % "commons-math3" % "3.6.1" % "test" From 39ddefd2e96647cd3f4ee08d4512ea53801f31c0 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Tue, 30 Jun 2026 13:30:20 -0700 Subject: [PATCH 21/30] Pin JUnit to 5.x for Scala Steward (#999) JUnit 6.x requires Java 17 at runtime, but this project still targets Java 8 bytecode and CI tests against JDK 8. Pin junit-jupiter and junit-vintage-engine to the 5.x line so Scala Steward stops proposing 6.x bumps until JDK 8 support is dropped. Co-authored-by: Claude Opus 4.7 --- .scala-steward.conf | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .scala-steward.conf diff --git a/.scala-steward.conf b/.scala-steward.conf new file mode 100644 index 00000000..7f143b54 --- /dev/null +++ b/.scala-steward.conf @@ -0,0 +1,8 @@ +# JUnit 6.x requires Java 17 at runtime, but this project still targets and +# tests on JDK 8 (see javacOptions in build.sbt and the test matrix in +# .github/workflows/CI.yml). Pin JUnit to the 5.x line until JDK 8 support is +# dropped. +updates.pin = [ + { groupId = "org.junit.jupiter", artifactId = "junit-jupiter", version = "5." }, + { groupId = "org.junit.vintage", artifactId = "junit-vintage-engine", version = "5." } +] From 925e89a2cddf20c814af6ba08d044c619260347d Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Thu, 2 Jul 2026 20:50:34 +0200 Subject: [PATCH 22/30] Update jackson-databind to 2.22.0 (#1000) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 3e708f71..82ba4903 100644 --- a/build.sbt +++ b/build.sbt @@ -180,7 +180,7 @@ lazy val msgpackJackson = Project(id = "msgpack-jackson", base = file("msgpack-j OsgiKeys.exportPackage := Seq("org.msgpack.jackson", "org.msgpack.jackson.dataformat"), libraryDependencies ++= Seq( - "com.fasterxml.jackson.core" % "jackson-databind" % "2.20.2", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.22.0", junitJupiter, junitVintage, "org.apache.commons" % "commons-math3" % "3.6.1" % "test" From 6d26864835f66fa34160c19ccf90924856091eb9 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Thu, 2 Jul 2026 20:50:54 +0200 Subject: [PATCH 23/30] Update airframe-json, airspec to 2026.2.2 (#1001) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 82ba4903..68a453ad 100644 --- a/build.sbt +++ b/build.sbt @@ -5,7 +5,7 @@ Global / onChangedBuildSource := ReloadOnSourceChanges // For performance testing, ensure each test run one-by-one Global / concurrentRestrictions := Seq(Tags.limit(Tags.Test, 1)) -val AIRFRAME_VERSION = "2026.1.7" +val AIRFRAME_VERSION = "2026.2.2" // Use dynamic snapshot version strings for non tagged versions ThisBuild / dynverSonatypeSnapshots := true From 46113b025836cd33c4053385750cc4999f0d3cb5 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Wed, 8 Jul 2026 19:47:54 +0200 Subject: [PATCH 24/30] Update jackson-databind to 2.22.1 (#1002) --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 68a453ad..301cc3bb 100644 --- a/build.sbt +++ b/build.sbt @@ -180,7 +180,7 @@ lazy val msgpackJackson = Project(id = "msgpack-jackson", base = file("msgpack-j OsgiKeys.exportPackage := Seq("org.msgpack.jackson", "org.msgpack.jackson.dataformat"), libraryDependencies ++= Seq( - "com.fasterxml.jackson.core" % "jackson-databind" % "2.22.0", + "com.fasterxml.jackson.core" % "jackson-databind" % "2.22.1", junitJupiter, junitVintage, "org.apache.commons" % "commons-math3" % "3.6.1" % "test" From f48f74649c0baa7666d1deee6a25d93e4f4082b0 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Tue, 14 Jul 2026 20:40:35 +0200 Subject: [PATCH 25/30] Update sbt to 2.0.2 (#1005) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 4bf10378..e0c6f492 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=2.0.1 +sbt.version=2.0.2 From d16d48483c260b1379c97e6444f00725a026c0a9 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:48:58 +0200 Subject: [PATCH 26/30] Update sbt-scalafmt to 2.6.2 (#1008) --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index e0c7486a..34eae69c 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -4,7 +4,7 @@ addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1") //addSbtPlugin("com.github.sbt" % "sbt-jacoco" % "3.3.0") addSbtPlugin("org.xerial.sbt" % "sbt-jcheckstyle" % "0.3.0") addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.11.0-RC1") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.1") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.2") addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.1") scalacOptions ++= Seq("-deprecation", "-feature") From deb6712348746d5dea2fb385f3ce108add3fb347 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:49:13 +0200 Subject: [PATCH 27/30] Update sbt to 2.0.3 (#1007) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index e0c6f492..92c4f672 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=2.0.2 +sbt.version=2.0.3 From b45f5ade2e78ce3ac8a654d65f8d07cfd66997e2 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Tue, 28 Jul 2026 20:38:56 +0200 Subject: [PATCH 28/30] Update sbt to 2.0.4 (#1010) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 92c4f672..8636d1bf 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=2.0.3 +sbt.version=2.0.4 From d049a0b25a6d5ca605439504c1e651269ec99db2 Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Wed, 5 Aug 2026 19:15:49 +0200 Subject: [PATCH 29/30] Update sbt to 2.0.5 (#1013) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 8636d1bf..438bd0fd 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=2.0.4 +sbt.version=2.0.5 From 2a5efd46b1ebe83bf03b54a60f5eb50bf9ab503d Mon Sep 17 00:00:00 2001 From: Scala Steward <43047562+scala-steward@users.noreply.github.com> Date: Fri, 7 Aug 2026 22:16:58 +0200 Subject: [PATCH 30/30] Update sbt to 2.0.6 (#1016) --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 438bd0fd..e0f81fa6 100755 --- a/project/build.properties +++ b/project/build.properties @@ -1,2 +1,2 @@ -sbt.version=2.0.5 +sbt.version=2.0.6