He-Pin opened a new pull request, #3061:
URL: https://github.com/apache/pekko/pull/3061

   ### Motivation
   Upgrade Pekko's Scala 3 version from 3.3.8 to 3.8.4 for forward 
compatibility with the upcoming Scala 3.9 LTS. Several patterns valid in 3.3.x 
produce errors or warnings in 3.8.4 that must be addressed while preserving 
cross-compilation with Scala 2.13.
   
   ### Modification
   **Scala version:**
   - Bump `scala3Version` from `3.3.8` to `3.8.4`
   
   **PersistencePlugin refactor:**
   - Merge `[T: ClassTag]` context bound and `(implicit ev: PluginProvider)` 
into a single `(implicit ct: ClassTag[T], ev: PluginProvider)` parameter list, 
enabling subclasses to pass both arguments without the `using` keyword 
(cross-compatible with Scala 2.13 and 3.3.x)
   
   **ClassTag context bound fixes:**
   - Replace explicit `ClassTag` passing `method(ClassTag(clazz))` with 
`implicit val ct = ClassTag(clazz); method` pattern throughout the codebase 
(context bounds become `using` clauses in Scala 3.8, making positional passing 
an error)
   - Affects: `Behavior`, `EventStream`, `Topic`, `ShardingProducerController`, 
`ShardedDaemonProcessImpl`, `StreamTestKit`, `EventSourcedBehaviorTestKit`, 
`ActorContextSpec`
   
   **SortedSet/TreeSet ordering fixes:**
   - Fix `SortedSet.empty(ordering)` / `TreeSet.empty(ordering)` across 
cluster, cluster-tools, cluster-sharding, distributed-data modules by binding 
the Ordering as an implicit val before calling `.empty[Member]`
   
   **JDK targeting:**
   - Use `-java-output-version` for Scala 3.8+ instead of deprecated `-release` 
/ `-Xtarget`
   
   **Misc fixes:**
   - Add `@unchecked` to type-test patterns that cannot be checked at runtime 
(`Reachability.scala`, `AskPattern.scala`)
   - Fix `_` wildcard type argument to `?` in scala-3-only source files
   - Fix `LogSource` resolution in `MultiNodeSpec` (`classOf` instead of 
`this.getClass`)
   - Fix "pure expression does nothing" in `FixedBufferSpec` structural type 
calls
   - Remove discarded non-Unit value (unused `Success`) in `SnapshotStorage`
   - Add `-Wconf` suppression rules for Scala 3.8 deprecation and syntax 
warnings in `PekkoDisciplinePlugin`
   - Replace `= _` with `= null` / `= None` / `= false` (deprecated in Scala 
3.4+)
   - Replace `private[this]` / `protected[this]` with `private` / `protected` 
(deprecated in Scala 3.4+)
   
   ### Result
   All modules compile successfully with both Scala 2.13.18 and Scala 3.8.4. 
Cross-compilation with Scala 2.13 is preserved. No `using` keyword is used in 
shared source files — all changes use cross-compatible patterns.
   
   ### Tests
   - `sbt "++3.8.4" "compile" "Test / compile"` — success
   - `sbt "compile" "Test / compile"` (Scala 2.13) — success (docs module has 
pre-existing unused warnings)
   - `sbt "persistence / mimaReportBinaryIssues"` — success
   - `scalafmt --mode diff-ref=origin/main` — success
   - `sbt headerCreateAll` — success
   
   ### References
   None - proactive Scala 3 forward compatibility


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to