This is an automated email from the ASF dual-hosted git repository.

mdedetrich pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-projection.git


The following commit(s) were added to refs/heads/main by this push:
     new b4110d5  Update Scala versions and add 2.12 to CI
b4110d5 is described below

commit b4110d58e601fd9932cf3843ea6c4d65906b65fd
Author: Matthew de Detrich <[email protected]>
AuthorDate: Fri Mar 24 14:09:26 2023 +0100

    Update Scala versions and add 2.12 to CI
---
 .github/workflows/integration-tests-cassandra.yml            |  6 ++++--
 .github/workflows/integration-tests-jdbc.yml                 |  6 ++++--
 .github/workflows/integration-tests-kafka.yml                |  6 ++++--
 .github/workflows/integration-tests-slick.yml                |  6 ++++--
 .github/workflows/release.yml                                |  2 +-
 .github/workflows/unit-tests.yml                             |  6 ++++--
 core/src/main/scala/akka/projection/ProjectionBehavior.scala | 10 +++++-----
 .../akka/projection/internal/InternalProjectionState.scala   | 12 ++++++------
 project/AkkaDisciplinePlugin.scala                           |  4 +++-
 project/Dependencies.scala                                   |  4 ++--
 .../scala/akka/projection/slick/SlickProjectionSpec.scala    |  2 +-
 11 files changed, 38 insertions(+), 26 deletions(-)

diff --git a/.github/workflows/integration-tests-cassandra.yml 
b/.github/workflows/integration-tests-cassandra.yml
index 83793de..9c918dc 100644
--- a/.github/workflows/integration-tests-cassandra.yml
+++ b/.github/workflows/integration-tests-cassandra.yml
@@ -15,8 +15,10 @@ jobs:
       fail-fast: false
       matrix:
         include:
-          - { java-version: [email protected],      scala-version: 2.13.3,  sbt-opts: 
'' }
-          - { java-version: [email protected], scala-version: 2.13.3,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.13.10,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.13.10,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.12.17,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.12.17,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
     steps:
       - name: Checkout
         uses: actions/checkout@v3
diff --git a/.github/workflows/integration-tests-jdbc.yml 
b/.github/workflows/integration-tests-jdbc.yml
index ff7bec5..6ca3e28 100644
--- a/.github/workflows/integration-tests-jdbc.yml
+++ b/.github/workflows/integration-tests-jdbc.yml
@@ -15,8 +15,10 @@ jobs:
       fail-fast: false
       matrix:
         include:
-          - { java-version: [email protected],      scala-version: 2.13.3,  sbt-opts: 
'' }
-          - { java-version: [email protected], scala-version: 2.13.3,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.13.10,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.13.10,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.12.17,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.12.17,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
     steps:
       - name: Checkout
         uses: actions/checkout@v3
diff --git a/.github/workflows/integration-tests-kafka.yml 
b/.github/workflows/integration-tests-kafka.yml
index b3a65f7..76fb531 100644
--- a/.github/workflows/integration-tests-kafka.yml
+++ b/.github/workflows/integration-tests-kafka.yml
@@ -15,8 +15,10 @@ jobs:
       fail-fast: false
       matrix:
         include:
-          - { java-version: [email protected],      scala-version: 2.13.3,  sbt-opts: 
'' }
-          - { java-version: [email protected], scala-version: 2.13.3,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.13.10,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.13.10,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.12.17,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.12.17,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
     steps:
       - name: Checkout
         uses: actions/checkout@v3
diff --git a/.github/workflows/integration-tests-slick.yml 
b/.github/workflows/integration-tests-slick.yml
index 09ec9b7..187ea4e 100644
--- a/.github/workflows/integration-tests-slick.yml
+++ b/.github/workflows/integration-tests-slick.yml
@@ -15,8 +15,10 @@ jobs:
       fail-fast: false
       matrix:
         include:
-          - { java-version: [email protected],      scala-version: 2.13.3,  sbt-opts: 
'' }
-          - { java-version: [email protected], scala-version: 2.13.3,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.13.10,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.13.10,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.12.17,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.12.17,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
     steps:
       - name: Checkout
         uses: actions/checkout@v3
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0238b89..1162182 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -50,4 +50,4 @@ jobs:
           echo $GUSTAV_KEY | base64 -di > .github/id_rsa
           chmod 600 .github/id_rsa
           ssh-add .github/id_rsa
-          sbt "++2.13.3 docs/publishRsync"
+          sbt "++2.13.10 docs/publishRsync"
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index 35ed7ec..276df56 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -15,8 +15,10 @@ jobs:
       fail-fast: false
       matrix:
         include:
-          - { java-version: [email protected],      scala-version: 2.13.3,  sbt-opts: 
'' }
-          - { java-version: [email protected], scala-version: 2.13.3,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.13.10,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.13.10,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
+          - { java-version: [email protected],      scala-version: 2.12.17,  sbt-opts: 
'' }
+          - { java-version: [email protected], scala-version: 2.12.17,  sbt-opts: 
'-J-XX:+UnlockExperimentalVMOptions -J-XX:+UseJVMCICompiler' }
     steps:
       - name: Checkout
         uses: actions/checkout@v3
diff --git a/core/src/main/scala/akka/projection/ProjectionBehavior.scala 
b/core/src/main/scala/akka/projection/ProjectionBehavior.scala
index 42ca69c..8c6759f 100644
--- a/core/src/main/scala/akka/projection/ProjectionBehavior.scala
+++ b/core/src/main/scala/akka/projection/ProjectionBehavior.scala
@@ -115,9 +115,9 @@ object ProjectionBehavior {
           context.pipeToSelf(stoppedFut)(_ => Stopped)
           stopping()
 
-        case getOffset: GetOffset[Offset] =>
+        case getOffset: GetOffset[Offset @unchecked] =>
           running match {
-            case mgmt: RunningProjectionManagement[Offset] =>
+            case mgmt: RunningProjectionManagement[Offset @unchecked] =>
               if (getOffset.projectionId == projectionId) {
                 context.pipeToSelf(mgmt.getOffset()) {
                   case Success(offset) => GetOffsetResult(offset, 
getOffset.replyTo)
@@ -128,12 +128,12 @@ object ProjectionBehavior {
             case _ => Behaviors.unhandled
           }
 
-        case result: GetOffsetResult[Offset] =>
+        case result: GetOffsetResult[Offset @unchecked] =>
           receiveGetOffsetResult(result)
 
-        case setOffset: SetOffset[Offset] =>
+        case setOffset: SetOffset[Offset @unchecked] =>
           running match {
-            case mgmt: RunningProjectionManagement[Offset] =>
+            case mgmt: RunningProjectionManagement[Offset @unchecked] =>
               if (setOffset.projectionId == projectionId) {
                 context.log.info2(
                   "Offset will be changed to [{}] for projection [{}]. The 
Projection will be restarted.",
diff --git 
a/core/src/main/scala/akka/projection/internal/InternalProjectionState.scala 
b/core/src/main/scala/akka/projection/internal/InternalProjectionState.scala
index e283f23..1a8c8fb 100644
--- a/core/src/main/scala/akka/projection/internal/InternalProjectionState.scala
+++ b/core/src/main/scala/akka/projection/internal/InternalProjectionState.scala
@@ -136,7 +136,7 @@ private[projection] abstract class 
InternalProjectionState[Offset, Envelope](
     val atLeastOnceHandlerFlow
         : Flow[ProjectionContextImpl[Offset, Envelope], 
ProjectionContextImpl[Offset, Envelope], NotUsed] =
       handlerStrategy match {
-        case single: SingleHandlerStrategy[Envelope] =>
+        case single: SingleHandlerStrategy[Envelope @unchecked] =>
           val handler = single.handler()
           val handlerRecovery =
             HandlerRecoveryImpl[Offset, Envelope](projectionId, 
recoveryStrategy, logger, statusObserver, telemetry)
@@ -158,7 +158,7 @@ private[projection] abstract class 
InternalProjectionState[Offset, Envelope](
 
           }
 
-        case grouped: GroupedHandlerStrategy[Envelope] =>
+        case grouped: GroupedHandlerStrategy[Envelope @unchecked] =>
           val groupAfterEnvelopes = 
grouped.afterEnvelopes.getOrElse(settings.groupAfterEnvelopes)
           val groupAfterDuration = 
grouped.orAfterDuration.getOrElse(settings.groupAfterDuration)
           val handler = grouped.handler()
@@ -188,7 +188,7 @@ private[projection] abstract class 
InternalProjectionState[Offset, Envelope](
                 }
             }
 
-        case f: FlowHandlerStrategy[Envelope] =>
+        case f: FlowHandlerStrategy[Envelope @unchecked] =>
           val flow =
             f.flowCtx.asFlow.watchTermination() {
               case (_, futDone) =>
@@ -293,7 +293,7 @@ private[projection] abstract class 
InternalProjectionState[Offset, Envelope](
     }
 
     handlerStrategy match {
-      case single: SingleHandlerStrategy[Envelope] =>
+      case single: SingleHandlerStrategy[Envelope @unchecked] =>
         val handler: Handler[Envelope] = single.handler()
         source
           .mapAsync(1) { context =>
@@ -325,7 +325,7 @@ private[projection] abstract class 
InternalProjectionState[Offset, Envelope](
 
           }
 
-      case grouped: GroupedHandlerStrategy[Envelope] =>
+      case grouped: GroupedHandlerStrategy[Envelope @unchecked] =>
         val groupAfterEnvelopes = 
grouped.afterEnvelopes.getOrElse(settings.groupAfterEnvelopes)
         val groupAfterDuration = 
grouped.orAfterDuration.getOrElse(settings.groupAfterDuration)
         val handler = grouped.handler()
@@ -361,7 +361,7 @@ private[projection] abstract class 
InternalProjectionState[Offset, Envelope](
       HandlerRecoveryImpl[Offset, Envelope](projectionId, recoveryStrategy, 
logger, statusObserver, telemetry)
 
     handlerStrategy match {
-      case single: SingleHandlerStrategy[Envelope] =>
+      case single: SingleHandlerStrategy[Envelope @unchecked] =>
         val handler = single.handler()
         source
           .mapAsync(parallelism = 1) { context =>
diff --git a/project/AkkaDisciplinePlugin.scala 
b/project/AkkaDisciplinePlugin.scala
index ad69cdd..bac4937 100644
--- a/project/AkkaDisciplinePlugin.scala
+++ b/project/AkkaDisciplinePlugin.scala
@@ -35,8 +35,10 @@ object AkkaDisciplinePlugin extends AutoPlugin {
               "-Ywarn-infer-any",
               "-Ywarn-nullary-override",
               "-Ywarn-nullary-unit",
+              "-Ywarn-unused:_",
               "-Ypartial-unification",
-              "-Yno-adapted-args")
+              "-Yno-adapted-args") ++ Set(
+              "-Xlint:-strict-unsealed-patmat")
           case Some((2, 12)) =>
             disciplineScalacOptions
           case _ =>
diff --git a/project/Dependencies.scala b/project/Dependencies.scala
index 93c7ebf..e30c1fe 100644
--- a/project/Dependencies.scala
+++ b/project/Dependencies.scala
@@ -5,8 +5,8 @@ import sbt._
 
 object Dependencies {
 
-  val Scala213 = "2.13.3"
-  val Scala212 = "2.12.16"
+  val Scala213 = "2.13.10"
+  val Scala212 = "2.12.17"
   val ScalaVersions = Seq(Scala213, Scala212)
 
   val AkkaVersionInDocs = "2.6.16"
diff --git 
a/slick/src/test/scala/akka/projection/slick/SlickProjectionSpec.scala 
b/slick/src/test/scala/akka/projection/slick/SlickProjectionSpec.scala
index d197269..09363fa 100644
--- a/slick/src/test/scala/akka/projection/slick/SlickProjectionSpec.scala
+++ b/slick/src/test/scala/akka/projection/slick/SlickProjectionSpec.scala
@@ -583,7 +583,7 @@ class SlickProjectionSpec
                       fail(s"Envelope has already been verified at least twice 
for offset $o")
                     case Some(state) if state.envReceived =>
                       acc + (o -> state.copy(verifyCount = state.verifyCount + 
1))
-                    case None => acc + (o -> VerifyState(1, false))
+                    case Some(_) | None => acc + (o -> VerifyState(1, false))
                   }
                 case e: Envelope =>
                   val o = e.offset


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to