Working On

Can we upgrade an app to Scala 3???

Notes + Links

https://scalacenter.github.io/scala-3-migration-guide/docs/get-started.html

https://www.scala-lang.org/blog/2020/11/19/scala-3-forward-compat.html

Using 2.13 libs in Scala 3:

https://scalacenter.github.io/scala-3-migration-guide/docs/compatibility/classpath.html

<aside> 💡 TL;DR: ultimately got stymied by mixed 3.0 / 2.13 versions of things in my classpath. Going to have to do further research to understand what the best path forward around this is.

I opened a Scala Users Forum Post to hopefully discuss further.

</aside>

VOD

https://www.youtube.com/watch?v=fn8mOlBSfAk

Steps

Migrate Libs Plugin

e.g. sbt migrate-libs core where "core" is the name of the sbt module you want to migrate

This will give you a bunch of recommended library upgrades where available and seems to be aware of when you need to pin a 2.13. cross-compat version

[info] io.circe:circe-core:0.14.0-M5                                                 -> Valid
[info] org.locationtech.proj4j:proj4j:1.1.1                                          -> Valid
[info] org.postgresql:postgresql:42.2.12                                             -> Valid
[info] org.tpolecat:doobie-core:1.0.0-M2                                             -> Valid
[info] com.thesamet.scalapb:scalapb-runtime:0.11.1                                   -> Valid
[info] org.tpolecat:doobie-postgres:1.0.0-M2                                         -> Valid
[info] com.github.jatcwang:doobieroll:0.2.1                                          -> Valid
[info] com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20200713.1 -> Valid
[info] com.beachape:enumeratum:1.6.1                                                 -> Valid
[info] com.softwaremill.sttp.client3:async-http-client-backend-cats:3.3.2            -> "com.softwaremill.sttp.client3" %% "async-http-client-backend-cats" % "3.3.0-RC1", "com.softwaremill.sttp.client3" %% "async-http-client-backend-cats" % "3.3.0-RC5"
[info] com.softwaremill.sttp.client3:circe:3.3.2                                     -> "com.softwaremill.st

for example here: