You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Status

Current state"Under Discussion"

Discussion thread

JIRA

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

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 n Apache Kafka 3.0 and to drop it in Apache Kafka 4.0.

Public Interfaces

None.

Proposed Changes

  • Deprecate Scala 2.12 build in Kafka 3.0.
  • In Kafka 4.0:
    • Update build.gradle to remove all tasks for Scala 2.12 and remove code in build.gradle and dependencies.gradle that 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.

Rejected Alternatives

None.

  • No labels