Current state: Adopted
Discussion thread: link
Vote thread: link
- - KAFKA-12930Getting issue details... STATUS (3.0)
KAFKA-12895Getting issue details...
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
We currently build Kafka for 2 Scala versions: 2.12 and 2.13. With the recent release of Scala 3.0 (which uses the same standard library as Scala 2.13), users will soon start asking for projects to support it. Since we have to compile and run the tests on each supported version, there is a non-trivial cost from a development and testing perspective.
Scala 2.12.0 was released in November 2016 and Scala 2.13.0 was released in June 2019. We expect Apache Kafka 3.0 to be released around July/August 2021 and 4.0 will be at least 16 months after that. Given this, we propose to deprecate Scala 2.12 support in Apache Kafka 3.0 and to drop it in Apache Kafka 4.0. Users will have ample time and warning to migrate away from Scala 2.12.
- Deprecate Scala 2.12 build in Kafka 3.0: update the documentation including downloads page.
- In Kafka 4.0:
build.gradleto remove all tasks for Scala 2.12 and remove code in
dependencies.gradlethat is conditional on Scala 2.12.
- Update Readme not to mention Scala 2.12 as a supported version.
- Remove any other workarounds needed by Scala 2.12.
Compatibility, Deprecation, and Migration Plan
Users who have not and cannot upgrade to Scala 2.13 and are either using kafka-streams-scala or the kafka core module will have to stick with Kafka 3.x until they can upgrade to one of the more recent Scala versions. Note that the classes in the kafka core module are not public API although many projects use some of the classes for integration tests.