On Thursday, 11 June 2026 10:12:53 British Summer Time Juan M. Méndez Rey wrote:
> El jueves, 11 de junio de 2026 a las 10:12, Emmanuel Bourg 
> <[email protected]> 
escribió:
> > Hi Juan,
> > 
> > Thank you very much for working on Scala, I gave up years ago and I'm
> > glad someone is picking up the ball.
> 
> Thanks Emmanuel, glad to be able to hear your opinions with this, that means
> a lot, and what I found probably is related with your experience.
> > I see there is a choice about preserving the old version (2.11) or not.
> > If you are confident packaging a new version of Scala is achievable,
> > then I'd vote for retiring the old version.
> 
> I can't definitely say, but I concur that most of the biggest projects
> migrated long ago to Scala 2.12, Scala 2.13. e.g.: Spark, Almond, not sure
> how Metals and Joern are in regard of this.
> > There is also a decision to make between upgrading the existing scala
> > package, or switching to versioned scala-x.y packages (the existing
> > scala package could then depend on the latest version, similarly to the
> > default-jre package). The key factor here is backward compatibility, how
> > stable is Scala nowadays? Do libraries still have to be rebuilt for new
> > Scala versions? If so a versioned package might be more appropriate.
> 
> There are also packages depending on Scala 2.11: plm, pilon, latexdraw,
> htsjdk, unicycler: they would need to be ported to 2.13 o r think about
> retiring them if we would remove 2.11.
> 
> Regarding versioned scala-x.y vs upgrading scala: versioned, for the
> compatibility reason you raise. Scala is binary compatible within a minor
> (any 2.13.x library works on any 2.13.x) but not across minors, so every
> library is cross-compiled per series: e.g.: upstream encodes it in the name
> (foo_2.12, foo_2.13, foo_3). We can mirror default-jdk: real
> scala-2.12/scala-2.13/scala3 plus a thin scala metapackage. scala-2.12
> already exists in that shape; Scala 3 is stable across 3.x and reuses the
> 2.13 library, so it slots in.

Except that Scala 3 is just in a transition (with 3.8 and the new LTS now in 
RC1 3.9 which 
abandon the 2.13 library and move to a new library rebuilt with Scala 3.  Sorry 
to throw a 
spanner in the works.

BTW, I am all for getting Scala as a proper debian package.  Although actually 
all that are 
really needed is sbt and scala-cli and these two will bring in the relevant 
libraries for you.  
sbt is about to go to version 2.0 (which is being built on Scala 3) and 
scala-cli now follows 
the Scala 3 releases.  I have used the DEB files for these two that virtuslab 
release.

> > Did you consider bootstrapping Scala 3 directly instead of starting from
> > 2.12? Wouldn't that be easier?
> 
> That was my initial question too.  Why not bootstrap 3 directly: But I found
> this: It doesn't avoid the work: sbt (which 2.13 and 3 both build with) is
> itself built with Scala 2.12, Scala 3's stdlib is the 2.13 library, and
> Dotty self-bootstraps from a prior Scala 3 too.
> 
> Going straight to 3 would mean front-loading more prebuilt seeds (a 3
> compiler + sbt + a 2.13 STARR), meaning a bigger exemption to defend in
> NEW, not a smaller one. The 2.12 seed is the smallest binary that unlocks
> the whole chain and drops out after self-host.
> 
> I also factored in all the apps like Spark that still is getting users
> everywhere and that is in 2.12/2.13.
> 
> My proposed plan then is: coexistence scala-asm (MR !3) + versioned
> toolchain now, retire 2.11 once its rdeps migrate. Although I see it is
> open to the team's preference on regard of the metapackage naming.
> 
> Please, Let me know what you think,
> Juan


Reply via email to