In a few months at most, Scala 2.13 will be released, and sbt plugin authors will once again have to deal with writing code in an obsolete version of Scala, as sbt is built using Scala 2.12. Rather than waiting years for a hypothetical sbt 2.0 to switch the scala binary version used, I think it would be worthwhile to consider a more incremental approach:
- Start publishing sbt cross-built for 2.12 and 2.13 as soon as 2.13 is released
- Make it possible to choose the binary version of sbt used in the current project, for example with a setting
- Encourage plugin authors to cross-build their plugins
- Once the ecosystem is ready, release a new version of sbt where
scala.binaryVersion=2.13is the default, this would still be an sbt 1.x release since it wouldn’t break the API of sbt itself.
- Eventually drop support for
Alternative proposals welcome. In any case, I think it would be worthwhile to decide on a plan and write it down somewhere, so that plugin authors know what to expect.