Skip to content

Path to Scala 3 #274

@felixbr

Description

@felixbr

This is an issue for discussing and tracking necessary step to prepare for a Dotty/Scala3 cross-build.

Inspired by the awesome "Scala Love" conference, I attempted to cross-build util-core with Dotty 0.23.0-RC1. So far it went smoother than expected. In the end there were about 4 compile-errors that I couldn't directly address.

In any case there's some work that has to be done before a real cross-build can be achieved. So far I've identified the following but I will try and update this list as we learn more.

Preparations:

  • Update sbt to recent version (e.g. 1.3.10; needed by sbt-dotty)
  • Update Scalatest to 3.1.1 (which is cross-published for Dotty)
  • Update twitter/util to Scalatest version available for latest Dotty (Dependency on Twitter codebase) | @mosesn
  • Remove deprecated Config code | @mosesn
  • Wait for Dotty to fix varargs override issue (see Overriding an @varargs method fails under separate compilation scala/scala3#9463)
  • Wait for Scalatest 3.2.0 to be published for Dotty version which includes the varargs fix
  • Refactor code which is not supported in Scala 3 (e.g. usage of Manifest/TypeTag reflection)
  • Add Scala 3 to the CI matrix to prevent regressions in already supported modules
  • Cross-build and cross-publish modules which are needed by Finagle and twitter-server (e.g. util-test and util-tunable)

Resources for Dotty migration/cross-building:

I hope you don't mind this type of issue. This is not meant to push anyone, just as a place to discuss and organize things.

Cheers
~ Felix

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions