Open
Description
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 bysbt-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
andutil-tunable
)
Resources for Dotty migration/cross-building:
- https://github.com/scalacenter/scala-3-migration-guide
- https://github.com/lampepfl/dotty-example-project#getting-your-project-to-compile-with-dotty
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
Labels
No labels