🧹 chore: drop support for Scala 2.12 (#689)#709
Conversation
There was a problem hiding this comment.
Pull request overview
This PR drops Scala 2.12 from the build matrix and removes the Scala-2.12-only iteratee module, simplifying cross-build configuration around Scala 2.13 and Scala 3.
Changes:
- Updates default/cross Scala versions and CI Scala matrices to 2.13/3 only.
- Removes the
anorm-iterateeproject, source, tests, and manual section. - Moves compatibility helpers into common source locations now that Scala 2.12-specific variants are no longer needed.
Reviewed changes
Copilot reviewed 8 out of 12 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
project/Common.scala |
Removes Scala 2.12 cross-build settings and compatibility source directory routing. |
build.sbt |
Removes iteratee project wiring and simplifies Akka/Pekko/docs settings for supported Scala versions. |
.github/workflows/build-test.yml |
Updates CI Scala matrices from 2.12 to 2.13/3. |
core/src/main/scala/anorm/Compat.scala |
Adds unified Scala 2.13+/3 compatibility helpers. |
core/src/main/scala-2.13-/Compat.scala |
Removes old Scala 2.12 compatibility implementation. |
akka/src/test/scala/anorm/AkkaCompat.scala |
Adds unified Akka test compatibility alias. |
akka/src/test/scala-2.13-/AkkaCompat.scala |
Removes old Scala 2.12 Akka compatibility alias. |
pekko/src/test/scala/anorm/PekkoCompat.scala |
Adds unified Pekko test compatibility alias. |
pekko/src/test/scala-2.13-/PekkoCompat.scala |
Removes old Scala 2.12 Pekko compatibility alias. |
iteratee/src/main/scala/anorm/Iteratees.scala |
Deletes iteratee integration implementation. |
iteratee/src/test/scala/anorm/IterateeSpec.scala |
Deletes iteratee integration tests. |
docs/manual/working/scalaGuide/main/sql/ScalaAnorm.md |
Removes the iteratee documentation section from the main manual. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| name: Binary Compatibility | ||
| uses: playframework/.github/.github/workflows/binary-check.yml@v4 | ||
|
|
||
| check-docs-8: |
There was a problem hiding this comment.
ℹ️ I removed it because the combo Java 8 and Scala 2.13 doesn't work
Exception in thread "specs2-3" java.lang.BootstrapMethodError: java.lang.UnsupportedClassVersionError: play/api/test/WithApplication has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
This because our setup for Scala 2.13 pulls Play 3.x which requires Java 11+.
As we're gonna baseline on Java 17 soon ( #708 ), I don't feel it's worth making it work by changing the Play version targeted.
Actually I'm not even sure what was the purpose of this double pipeline in Java 8 & 11 but not testing all Scala version for Java 8. Anyway, as I said, we're dropping Java 8.
Pull Request Checklist
Fixes
Closes #689
Additional details
As part of this, the module
anorm-iterateeis removed as it was only published for Scala 2.12.