From 96a67ce43e235c5090738978e0d3f8e87504840a Mon Sep 17 00:00:00 2001 From: Philippus Date: Thu, 3 Sep 2026 15:41:38 +0200 Subject: [PATCH 1/2] Enable -Yfuture-lazy-vals for Scala 3.3.x --- .github/workflows/ci.yml | 5 +++++ .github/workflows/release.yml | 15 +++++++++++++-- build.sbt | 7 +++++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa2c54ee..461a038c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,11 @@ jobs: matrix: java: [8, 11, 17, 21, 25] scala: [2.12.x, 2.13.x, 3.x] + exclude: + - java: 8 + scala: 3.x + - java: 11 + scala: 3.x runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cdef358d..d8c022d5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,15 @@ on: tags: ["*"] jobs: publish: + strategy: + matrix: + include: + - scala: 2.12.x + java: 8 + - scala: 2.13.x + java: 8 + - scala: 3.x + java: 17 runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 @@ -12,10 +21,12 @@ jobs: - uses: actions/setup-java@v5 with: distribution: temurin - java-version: 8 + java-version: ${{matrix.java}} - uses: sbt/setup-sbt@v1 - - run: sbt versionCheck ci-release + - run: sbt "++${{matrix.scala}} versionCheck" ci-release env: + # ci-release runs `+publishSigned` by default, this restricts it to one Scala version + CI_RELEASE: ++${{matrix.scala}} publishSigned PGP_PASSPHRASE: ${{secrets.PGP_PASSPHRASE}} PGP_SECRET: ${{secrets.PGP_SECRET}} SONATYPE_PASSWORD: ${{secrets.SONATYPE_PASSWORD}} diff --git a/build.sbt b/build.sbt index 628a2652..ae1a1b7b 100644 --- a/build.sbt +++ b/build.sbt @@ -81,10 +81,17 @@ lazy val parserCombinators = crossProject(JVMPlatform, JSPlatform, NativePlatfor Seq( // scala/scala-parser-combinators#605 ProblemFilters.exclude[IncompatibleSignatureProblem]("scala.util.parsing.input.PagedSeq.sliding"), + // -Yfuture-lazy-vals turns the module's from public to private, which is not an + // incompatibility. Drop once the fix for scala-garden/mima#794 is released. + ProblemFilters.exclude[DirectMissingMethodProblem]("scala.util.parsing.input.OffsetPosition."), ) }, ) .jvmSettings( + Compile / compile / scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match { + case Some((3, _)) => Seq("-release:17", "-Yfuture-lazy-vals") + case _ => Seq("-target:jvm-1.8") + }), ScalaModulePlugin.scalaModuleOsgiSettings, OsgiKeys.exportPackage := Seq(s"scala.util.parsing.*;version=${version.value}"), ) From e107e21ca281ebba0f397b8e8185169d5a6f2f38 Mon Sep 17 00:00:00 2001 From: Lukas Rytz Date: Fri, 4 Sep 2026 14:45:23 +0200 Subject: [PATCH 2/2] Update sbt-scala-module to 3.4.1, bump GitHub Actions --- .github/workflows/ci.yml | 6 +++--- .github/workflows/release.yml | 4 ++-- project/plugins.sbt | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 461a038c..f78afdd9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,11 +18,11 @@ jobs: scala: 3.x runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - uses: coursier/cache-action@v7 - - uses: actions/setup-java@v5 + - uses: coursier/cache-action@v8 + - uses: actions/setup-java@v6 with: distribution: temurin java-version: ${{matrix.java}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d8c022d5..74d46e0f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,10 +15,10 @@ jobs: java: 17 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - uses: actions/setup-java@v5 + - uses: actions/setup-java@v6 with: distribution: temurin java-version: ${{matrix.java}} diff --git a/project/plugins.sbt b/project/plugins.sbt index b7230271..0ea48d3e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "3.4.0") +addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "3.4.1") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.4.0") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.22.0")