Skip to content

🧹 chore: drop support for Scala 2.12 (#689)#709

Open
gaeljw wants to merge 1 commit into
mainfrom
drop-scala212
Open

🧹 chore: drop support for Scala 2.12 (#689)#709
gaeljw wants to merge 1 commit into
mainfrom
drop-scala212

Conversation

@gaeljw
Copy link
Copy Markdown
Member

@gaeljw gaeljw commented May 15, 2026

Pull Request Checklist

Fixes

Closes #689

Additional details

As part of this, the module anorm-iteratee is removed as it was only published for Scala 2.12.

@gaeljw gaeljw added this to the 3.x milestone May 15, 2026
@gaeljw gaeljw self-assigned this May 15, 2026
@gaeljw gaeljw requested review from Copilot and mkurz May 15, 2026 13:07
@gaeljw gaeljw mentioned this pull request May 15, 2026
7 tasks
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-iteratee project, 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:
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ℹ️ 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Drop Scala 2.12

2 participants