This is NOT the release announcement of Scala.js 1.0.0

@shadaj, my class will be using Slinky in April. The setup I gave them is for Scala.js 0.6.31 and Slinky 0.6.3. I’m trying to decide if I should have my students move to Scala.js 1.0 knowing that for many the editing of the .sbt files will cause some challenges. Do you have any thoughts or recommendations?

I sympathize with the technical difficulty of cross-building against Scala.js 0.6.x and 1.x. The solution based on environment variables is the best we could ever come up with. Unfortunately, that model is at severe odds with the model of sbt-release, and there is not much we can do about that.

I don’t see any solution at reconciling sbt-release with sbt-scalajs cross-versioning. It seems the only real solutions are to ditch one or the other.

Note that I never recommended sbt-scalajs, but it is the right technical foundation for cross-building Scala.js without having to reload sbt with different env vars. When the first milestones of Scala.js 1.x were released, some people basically demanded that I build it. I did; no one ever used it (according to Scaladex), which I take as evidence that whatever the pain of using an env var is, it is less than the limitations imposed by sbt-dynscalajs.

Note that I don’t want to advocate for or against keeping support for 0.6.x or not. I believe it is each maintainer’s choice to do so. I am only trying to give as much help and guidance as possible to those who want to cross-compile.

1 Like

scodec 1.11.6 is on scala.js 1.0.0

2 Likes

If you already have templates set up for 0.6, it’s probably best to just stick with that to minimize the number of updates that students will have to make when starting the project, since wrestling with SBT when things don’t just work can be tricky. From the perspective of writing code in Slinky, nothing’s changed API-wise. The biggest change with using 1.0 with Slinky is ES2015 output by default which makes stack traces nicer and reduces code size.

Monocle 2.0.4 now supports 1.0, this also thanks to refined 0.9.13 that supports 1.0.0 as well