scalajs-tutorial
scalajs-tutorial copied to clipboard
Update for recent tooling versions - Scala 3
Same as #19, but using Scala 3 this time.
All steps updated to recent tooling versions using Scala 3.3.3
git range-diff 1.x~7..1.x refs/pull/20/head~7..refs/pull/20/head
1: a8b7934 ! 1: b0551c9 Step 1: Setup
@@ build.sbt (new)
+enablePlugins(ScalaJSPlugin)
+
+name := "Scala.js Tutorial"
-+scalaVersion := "2.13.13"
++scalaVersion := "3.3.3"
+
+// This is an application with a main method
+scalaJSUseMainModuleInitializer := true
2: 916f152 = 2: 019dd65 Step 2: Integrating with HTML
3: b6470bb ! 3: 322e735 Step 3: Using the DOM
@@ Commit message
Step 3: Using the DOM
## build.sbt ##
-@@ build.sbt: scalaVersion := "2.13.13"
+@@ build.sbt: scalaVersion := "3.3.3"
// This is an application with a main method
scalaJSUseMainModuleInitializer := true
4: ffbe911 = 4: d2adbfe Step 4: Reacting on User Input
5: 39a4c2b = 5: 66cb9a6 Step 5: Setup the UI in Scala.js
6: 11cea4e ! 6: ece1735 Step 6: Testing
@@ Commit message
Step 6: Testing
## build.sbt ##
-@@ build.sbt: scalaVersion := "2.13.13"
+@@ build.sbt: scalaVersion := "3.3.3"
scalaJSUseMainModuleInitializer := true
libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "2.8.0"
7: 88c4bdb = 7: 65fe0b6 Step 7: Optimizing for Production
@sjrd, could you take a look at this? I do not know any Scala 3. Feels to me that if we'd want to offer this, we'd also have to update the code (to quiet syntax at least?).
Looks good to me. We could update to indentation-based syntax, sure, but we don't have to in a first pass.
I suggest making the Scala 3 version default and archiving the Scala 2 version in the same manner all previous versions are archived (in branches). I do not think there is any reason to start a new project with Scala 2 unless you have a specific reason, the tools seem stable and reliable enough to me now (I would not say this a few months ago).