From 344bb1360921d2c8848d4052808c2fdce789750e Mon Sep 17 00:00:00 2001 From: Russ White Date: Fri, 26 Feb 2021 13:52:51 -0600 Subject: [PATCH 01/22] suport scala 3.0.0-RC1 --- .travis.yml | 6 +++--- build.sbt | 3 ++- project/build.properties | 2 +- project/build.sbt | 2 +- src/main/scala/org/scalajs/dom/crypto/Crypto.scala | 2 -- .../scala/org/scalajs/dom/experimental/URL.scala | 2 +- .../experimental/sharedworkers/SharedWorker.scala | 2 +- src/main/scala/org/scalajs/dom/ext/package.scala | 12 ++++++------ 8 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index ecb3f4d33..92dff5b03 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,14 +12,14 @@ jdk: - openjdk8 env: - SCALAJS_VERSION=0.6.28 - - SCALAJS_VERSION=1.0.0 + - SCALAJS_VERSION=1.5.0 matrix: exclude: - scala: 2.10.7 - env: SCALAJS_VERSION=1.0.0 + env: SCALAJS_VERSION=1.5.0 include: - scala: 2.12.10 - env: SCALAJS_VERSION=1.0.0 + env: SCALAJS_VERSION=1.5.0 script: - sbt readme/run diff --git a/build.sbt b/build.sbt index 371ebc4c8..68cbb835e 100644 --- a/build.sbt +++ b/build.sbt @@ -6,12 +6,13 @@ lazy val root = project.in(file(".")). name := "Scala.js DOM" crossScalaVersions in ThisBuild := { - if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1") + if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.5", "3.0.0-RC1") else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.1") } scalaVersion in ThisBuild := crossScalaVersions.value.head val commonSettings = Seq( + resolvers += Resolver.JCenterRepository, version := "1.2.0-SNAPSHOT", organization := "org.scala-js", scalacOptions ++= Seq("-deprecation", "-feature", "-Xfatal-warnings") diff --git a/project/build.properties b/project/build.properties index c0bab0494..a8a721ef6 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.2.8 +sbt.version=1.5.0-M2 diff --git a/project/build.sbt b/project/build.sbt index d94bec0ad..f401b5c31 100644 --- a/project/build.sbt +++ b/project/build.sbt @@ -1,5 +1,5 @@ val scalaJSVersion = - Option(System.getenv("SCALAJS_VERSION")).getOrElse("1.0.0") + Option(System.getenv("SCALAJS_VERSION")).getOrElse("1.5.0") addSbtPlugin("org.scala-js" % "sbt-scalajs" % scalaJSVersion) diff --git a/src/main/scala/org/scalajs/dom/crypto/Crypto.scala b/src/main/scala/org/scalajs/dom/crypto/Crypto.scala index e411dfc51..b3732ebc1 100644 --- a/src/main/scala/org/scalajs/dom/crypto/Crypto.scala +++ b/src/main/scala/org/scalajs/dom/crypto/Crypto.scala @@ -930,10 +930,8 @@ object KeyFormat { trait RSAPublicKey extends js.Object { /* modulus, as a base64 URL encoded String */ - @js.native def n: String = js.native /* exponent, as a base64 URL encoded String */ - @js.native def e: String = js.native } diff --git a/src/main/scala/org/scalajs/dom/experimental/URL.scala b/src/main/scala/org/scalajs/dom/experimental/URL.scala index 5c5e0767f..5d7e097b4 100644 --- a/src/main/scala/org/scalajs/dom/experimental/URL.scala +++ b/src/main/scala/org/scalajs/dom/experimental/URL.scala @@ -11,7 +11,7 @@ import scala.scalajs.js.annotation._ */ @js.native @JSGlobal -class URL(url: String, base: String = js.native) extends js.Object { +class URL(val url: String, val base: String) extends js.Object { /** * Returns a DOMString containing the origin of the URL, that is its scheme, diff --git a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala index 61ece18df..a63212b26 100644 --- a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala +++ b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala @@ -30,7 +30,7 @@ import org.scalajs.dom.webworkers */ @js.native @JSGlobal -class SharedWorker(stringUrl: String, name: js.UndefOr[String] = js.native) +class SharedWorker(stringUrl: String, name: js.UndefOr[String]) extends webworkers.AbstractWorker { /** diff --git a/src/main/scala/org/scalajs/dom/ext/package.scala b/src/main/scala/org/scalajs/dom/ext/package.scala index 90e848b21..f03eaea50 100644 --- a/src/main/scala/org/scalajs/dom/ext/package.scala +++ b/src/main/scala/org/scalajs/dom/ext/package.scala @@ -1,8 +1,8 @@ package org.scalajs.dom import scala.language.implicitConversions - import scala.collection.mutable +import scala.runtime.RichDouble package object ext { @@ -22,17 +22,17 @@ package object ext { def cast[T] = x.asInstanceOf[T] } - implicit def pimpAnimatedNumber(x: svg.AnimatedNumber) = x.baseVal + implicit def pimpAnimatedNumber(x: svg.AnimatedNumber): Double = x.baseVal - implicit def pimpRichAnimatedNumber(x: svg.AnimatedNumber) = + implicit def pimpRichAnimatedNumber(x: svg.AnimatedNumber): RichDouble = x.baseVal: runtime.RichDouble - implicit def pimpAnimatedLength(x: svg.AnimatedLength) = x.baseVal.value + implicit def pimpAnimatedLength(x: svg.AnimatedLength): Double = x.baseVal.value - implicit def pimpRichAnimatedLength(x: svg.AnimatedLength) = + implicit def pimpRichAnimatedLength(x: svg.AnimatedLength): RichDouble = x.baseVal.value: runtime.RichDouble - implicit def color2String(c: Color) = c.toString + implicit def color2String(c: Color): String = c.toString implicit class pimpedContext(val ctx: CanvasRenderingContext2D) { def prepCircle(x: Double, y: Double, r: Double) = { ctx.beginPath() From ad63fe5f441ecc39b78ccb182251fc0237f96309 Mon Sep 17 00:00:00 2001 From: Russ White Date: Fri, 26 Feb 2021 14:11:26 -0600 Subject: [PATCH 02/22] scalafm --- src/main/scala/org/scalajs/dom/ext/package.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/scala/org/scalajs/dom/ext/package.scala b/src/main/scala/org/scalajs/dom/ext/package.scala index f03eaea50..1e9f15bc6 100644 --- a/src/main/scala/org/scalajs/dom/ext/package.scala +++ b/src/main/scala/org/scalajs/dom/ext/package.scala @@ -27,7 +27,8 @@ package object ext { implicit def pimpRichAnimatedNumber(x: svg.AnimatedNumber): RichDouble = x.baseVal: runtime.RichDouble - implicit def pimpAnimatedLength(x: svg.AnimatedLength): Double = x.baseVal.value + implicit def pimpAnimatedLength(x: svg.AnimatedLength): Double = + x.baseVal.value implicit def pimpRichAnimatedLength(x: svg.AnimatedLength): RichDouble = x.baseVal.value: runtime.RichDouble From 59107675a58cfb257645a95cca0fc36378375321 Mon Sep 17 00:00:00 2001 From: Russ White Date: Tue, 2 Mar 2021 10:42:11 -0600 Subject: [PATCH 03/22] override constructors where appropriate --- src/main/scala/org/scalajs/dom/experimental/URL.scala | 4 ++-- .../scalajs/dom/experimental/sharedworkers/SharedWorker.scala | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/scala/org/scalajs/dom/experimental/URL.scala b/src/main/scala/org/scalajs/dom/experimental/URL.scala index 5d7e097b4..63f299630 100644 --- a/src/main/scala/org/scalajs/dom/experimental/URL.scala +++ b/src/main/scala/org/scalajs/dom/experimental/URL.scala @@ -11,8 +11,8 @@ import scala.scalajs.js.annotation._ */ @js.native @JSGlobal -class URL(val url: String, val base: String) extends js.Object { - +class URL( url: String, base: String) extends js.Object { + def this(url:String) = this(url, js.native) /** * Returns a DOMString containing the origin of the URL, that is its scheme, * its domain and its port. diff --git a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala index a63212b26..d97b0f331 100644 --- a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala +++ b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala @@ -32,6 +32,7 @@ import org.scalajs.dom.webworkers @JSGlobal class SharedWorker(stringUrl: String, name: js.UndefOr[String]) extends webworkers.AbstractWorker { + def this(stringUrl: String) = this(stringUrl,js.native) /** * The port property of the SharedWorker interface returns a [[MessagePort]] From 5079836ad009b4752d38f6c9f04013623ceb3923 Mon Sep 17 00:00:00 2001 From: Russ White Date: Tue, 2 Mar 2021 11:08:56 -0600 Subject: [PATCH 04/22] scalafmt --- src/main/scala/org/scalajs/dom/experimental/URL.scala | 5 +++-- .../dom/experimental/sharedworkers/SharedWorker.scala | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/scala/org/scalajs/dom/experimental/URL.scala b/src/main/scala/org/scalajs/dom/experimental/URL.scala index 63f299630..bd6be058d 100644 --- a/src/main/scala/org/scalajs/dom/experimental/URL.scala +++ b/src/main/scala/org/scalajs/dom/experimental/URL.scala @@ -11,8 +11,9 @@ import scala.scalajs.js.annotation._ */ @js.native @JSGlobal -class URL( url: String, base: String) extends js.Object { - def this(url:String) = this(url, js.native) +class URL(url: String, base: String) extends js.Object { + def this(url: String) = this(url, js.native) + /** * Returns a DOMString containing the origin of the URL, that is its scheme, * its domain and its port. diff --git a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala index d97b0f331..47d13797b 100644 --- a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala +++ b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala @@ -32,7 +32,7 @@ import org.scalajs.dom.webworkers @JSGlobal class SharedWorker(stringUrl: String, name: js.UndefOr[String]) extends webworkers.AbstractWorker { - def this(stringUrl: String) = this(stringUrl,js.native) + def this(stringUrl: String) = this(stringUrl, js.native) /** * The port property of the SharedWorker interface returns a [[MessagePort]] From d8abc0345e06c9ba667d5084e1e8a63c1bc9b4fd Mon Sep 17 00:00:00 2001 From: Russ White Date: Tue, 2 Mar 2021 12:02:28 -0600 Subject: [PATCH 05/22] update CI pipeline --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 92dff5b03..9f57de1f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,8 @@ scala: - 2.10.7 - 2.11.12 - 2.12.10 - - 2.13.1 + - 2.13.5 + - 3.0.0-RC1 jdk: - openjdk8 env: From 4397c7b01188c4ad88accf6c71d9506cf63a9382 Mon Sep 17 00:00:00 2001 From: Russ White Date: Tue, 2 Mar 2021 12:03:38 -0600 Subject: [PATCH 06/22] update CI pipeline --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 68cbb835e..13d43c993 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ name := "Scala.js DOM" crossScalaVersions in ThisBuild := { if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.5", "3.0.0-RC1") - else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.1") + else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.5") } scalaVersion in ThisBuild := crossScalaVersions.value.head From bf33bf13ab02d3861f6b96d16df6cdd45c485816 Mon Sep 17 00:00:00 2001 From: Russ White Date: Tue, 2 Mar 2021 13:24:08 -0600 Subject: [PATCH 07/22] exclude 2.13.5 from 0.6.28 build --- .travis.yml | 3 +++ build.sbt | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9f57de1f3..783c8bc49 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ scala: - 2.10.7 - 2.11.12 - 2.12.10 + - 2.13.1 - 2.13.5 - 3.0.0-RC1 jdk: @@ -18,6 +19,8 @@ matrix: exclude: - scala: 2.10.7 env: SCALAJS_VERSION=1.5.0 + - scala: 2.13.5 + env: SCALAJS_VERSION=0.6.28 include: - scala: 2.12.10 env: SCALAJS_VERSION=1.5.0 diff --git a/build.sbt b/build.sbt index 13d43c993..68cbb835e 100644 --- a/build.sbt +++ b/build.sbt @@ -7,7 +7,7 @@ name := "Scala.js DOM" crossScalaVersions in ThisBuild := { if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.5", "3.0.0-RC1") - else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.5") + else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.1") } scalaVersion in ThisBuild := crossScalaVersions.value.head From f5612257028ea4b4f3c8911d2edc9fadedc785de Mon Sep 17 00:00:00 2001 From: Russ White Date: Tue, 2 Mar 2021 13:26:54 -0600 Subject: [PATCH 08/22] also need to exlude scala 3 from 0.6.28 --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 783c8bc49..f7622f445 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,8 @@ matrix: env: SCALAJS_VERSION=1.5.0 - scala: 2.13.5 env: SCALAJS_VERSION=0.6.28 + - scala: 3.0.0-RC1 + env: SCALAJS_VERSION=0.6.28 include: - scala: 2.12.10 env: SCALAJS_VERSION=1.5.0 From 9606d609017cafd72429adbcd703a05a44f18bca Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 07:46:02 -0600 Subject: [PATCH 09/22] update CI to inlude all supported versions --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5dfa54c7f..4c81c1d3d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,11 +12,16 @@ jobs: strategy: fail-fast: false matrix: - scalaversion: ["2.11.12", "2.12.10", "2.13.1"] + scalaversion: ["2.11.12", "2.12.10", "2.13.1", "2.13.5", "3.0.0-RC1"] scalajsversion: ["1.x", "0.6.x"] include: - scalaversion: "2.10.7" scalajsversion: "0.6.x" + Exclude: + - scalaversion: "2.13.5" + scalajsversion: "0.6.x" + - scalaversion: "3.0.0-RC1" + scalajsversion: "0.6.x" env: SCALAJS_VERSION: "${{ matrix.scalajsversion == '0.6.x' && '0.6.28' || '' }}" steps: From 28eeb7d2ed8086769c60f91286855b79d64df752 Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 07:58:55 -0600 Subject: [PATCH 10/22] don't use 2.13.5 --- .github/workflows/ci.yml | 2 +- build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c81c1d3d..c3cbf52ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - scalaversion: ["2.11.12", "2.12.10", "2.13.1", "2.13.5", "3.0.0-RC1"] + scalaversion: ["2.11.12", "2.12.10", "2.13.1", "3.0.0-RC1"] scalajsversion: ["1.x", "0.6.x"] include: - scalaversion: "2.10.7" diff --git a/build.sbt b/build.sbt index 68cbb835e..56302f062 100644 --- a/build.sbt +++ b/build.sbt @@ -6,7 +6,7 @@ lazy val root = project.in(file(".")). name := "Scala.js DOM" crossScalaVersions in ThisBuild := { - if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.5", "3.0.0-RC1") + if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1", "3.0.0-RC1") else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.1") } scalaVersion in ThisBuild := crossScalaVersions.value.head From 3c0e7149f91ac926c44f0c75a1c6c922c0a6bcbc Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 08:20:28 -0600 Subject: [PATCH 11/22] remove jcenter --- .github/workflows/ci.yml | 2 -- build.sbt | 1 - 2 files changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3cbf52ea..16324db45 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,8 +18,6 @@ jobs: - scalaversion: "2.10.7" scalajsversion: "0.6.x" Exclude: - - scalaversion: "2.13.5" - scalajsversion: "0.6.x" - scalaversion: "3.0.0-RC1" scalajsversion: "0.6.x" env: diff --git a/build.sbt b/build.sbt index 56302f062..d592d48c2 100644 --- a/build.sbt +++ b/build.sbt @@ -12,7 +12,6 @@ crossScalaVersions in ThisBuild := { scalaVersion in ThisBuild := crossScalaVersions.value.head val commonSettings = Seq( - resolvers += Resolver.JCenterRepository, version := "1.2.0-SNAPSHOT", organization := "org.scala-js", scalacOptions ++= Seq("-deprecation", "-feature", "-Xfatal-warnings") From d15c21b45adee94e4e32f400880d16b768ba313d Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 09:31:50 -0600 Subject: [PATCH 12/22] put back jcenter repo --- build.sbt | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sbt b/build.sbt index d592d48c2..56302f062 100644 --- a/build.sbt +++ b/build.sbt @@ -12,6 +12,7 @@ crossScalaVersions in ThisBuild := { scalaVersion in ThisBuild := crossScalaVersions.value.head val commonSettings = Seq( + resolvers += Resolver.JCenterRepository, version := "1.2.0-SNAPSHOT", organization := "org.scala-js", scalacOptions ++= Seq("-deprecation", "-feature", "-Xfatal-warnings") From 7d70b3d0cc838d43fa4b1d6f1468ebdd76c4a104 Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 09:39:29 -0600 Subject: [PATCH 13/22] use include instead of exclude --- .github/workflows/ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16324db45..b5097207e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,14 +12,13 @@ jobs: strategy: fail-fast: false matrix: - scalaversion: ["2.11.12", "2.12.10", "2.13.1", "3.0.0-RC1"] + scalaversion: ["2.11.12", "2.12.10", "2.13.1"] scalajsversion: ["1.x", "0.6.x"] include: - scalaversion: "2.10.7" scalajsversion: "0.6.x" - Exclude: - scalaversion: "3.0.0-RC1" - scalajsversion: "0.6.x" + scalajsversion: "1.x" env: SCALAJS_VERSION: "${{ matrix.scalajsversion == '0.6.x' && '0.6.28' || '' }}" steps: From ea0402687e6be6f960948bf283da7819c7cb6edb Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 11:00:03 -0600 Subject: [PATCH 14/22] clean before package --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b5097207e..0c21260c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: java-version: "adopt@1.8" - uses: coursier/cache-action@v5 - name: Build - run: sbt "++${{ matrix.scalaversion }}" package + run: sbt "++${{ matrix.scalaversion }}" clean;package - name: Test generate documentation run: sbt "++${{ matrix.scalaversion }}" doc - name: Build examples From b8c431167bf0eaeb7ae94f7033d298e55f45a2c9 Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 11:02:09 -0600 Subject: [PATCH 15/22] need to quute --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c21260c9..eb4e44f56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: java-version: "adopt@1.8" - uses: coursier/cache-action@v5 - name: Build - run: sbt "++${{ matrix.scalaversion }}" clean;package + run: sbt "++${{ matrix.scalaversion }} clean;package" - name: Test generate documentation run: sbt "++${{ matrix.scalaversion }}" doc - name: Build examples From 47cc047b7d1e7c95dd68c550add85e3c03e67c25 Mon Sep 17 00:00:00 2001 From: Russ White Date: Wed, 3 Mar 2021 11:51:03 -0600 Subject: [PATCH 16/22] clean before compiling example --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb4e44f56..22797c1a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,11 +28,11 @@ jobs: java-version: "adopt@1.8" - uses: coursier/cache-action@v5 - name: Build - run: sbt "++${{ matrix.scalaversion }} clean;package" + run: sbt "++${{ matrix.scalaversion }} package" - name: Test generate documentation run: sbt "++${{ matrix.scalaversion }}" doc - name: Build examples - run: sbt "++${{ matrix.scalaversion }}" example/compile + run: sbt "++${{ matrix.scalaversion }} clean;example/compile" - name: scalafmt run: sbt "++${{ matrix.scalaversion }}" scalafmtCheck readme: From fb8188a988ab4d6b05c584ef23c349c873ae6686 Mon Sep 17 00:00:00 2001 From: Russ White Date: Thu, 1 Apr 2021 15:39:13 -0500 Subject: [PATCH 17/22] update to Scala 3.0.0-RC2 --- build.sbt | 8 +- project/build.properties | 2 +- .../org/scalajs/dom/experimental/URL.scala | 3 +- .../scalajs/dom/experimental/intl/Intl.scala | 84 ++++++++----------- .../sharedworkers/SharedWorker.scala | 4 +- 5 files changed, 43 insertions(+), 58 deletions(-) diff --git a/build.sbt b/build.sbt index 56302f062..5283c428c 100644 --- a/build.sbt +++ b/build.sbt @@ -5,11 +5,11 @@ lazy val root = project.in(file(".")). name := "Scala.js DOM" -crossScalaVersions in ThisBuild := { - if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1", "3.0.0-RC1") +ThisBuild / crossScalaVersions := { + if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1", "3.0.0-RC2") else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.1") } -scalaVersion in ThisBuild := crossScalaVersions.value.head +ThisBuild / scalaVersion := crossScalaVersions.value.head val commonSettings = Seq( resolvers += Resolver.JCenterRepository, @@ -105,7 +105,7 @@ lazy val readme = ScalatexReadme( ).settings( scalaVersion := "2.12.10", scalacOptions ++= Seq("-deprecation", "-feature", "-Xfatal-warnings"), - (resources in Compile) += (fullOptJS in (example, Compile)).value.data + (Compile / resources) += (example / Compile / fullOptJS).value.data, ) lazy val example = project. diff --git a/project/build.properties b/project/build.properties index a8a721ef6..af4ff6f29 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.5.0-M2 +sbt.version=1.5.0-RC2 diff --git a/src/main/scala/org/scalajs/dom/experimental/URL.scala b/src/main/scala/org/scalajs/dom/experimental/URL.scala index bd6be058d..5c5e0767f 100644 --- a/src/main/scala/org/scalajs/dom/experimental/URL.scala +++ b/src/main/scala/org/scalajs/dom/experimental/URL.scala @@ -11,8 +11,7 @@ import scala.scalajs.js.annotation._ */ @js.native @JSGlobal -class URL(url: String, base: String) extends js.Object { - def this(url: String) = this(url, js.native) +class URL(url: String, base: String = js.native) extends js.Object { /** * Returns a DOMString containing the origin of the URL, that is its scheme, diff --git a/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala b/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala index e80f410c8..9397e4eeb 100644 --- a/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala +++ b/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala @@ -7,8 +7,8 @@ package org.scalajs.dom.experimental.intl import scala.scalajs.js -import scala.scalajs.js.| import scala.scalajs.js.annotation._ +import scala.scalajs.js.{UndefOr, |} /** * The Intl.Collator object is a constructor for collators, objects that enable language @@ -63,7 +63,6 @@ class NumberFormat( options: js.Any): js.Array[String] = js.native } -@js.native trait CollatorOptions extends js.Object { val localeMatcher: js.UndefOr[String] val usage: js.UndefOr[String] @@ -120,21 +119,16 @@ object CollatorOptions { ignorePunctuation: js.UndefOr[Boolean] = js.undefined, numeric: js.UndefOr[Boolean] = js.undefined, caseFirst: js.UndefOr[String] = js.undefined - ): CollatorOptions = { - js.Dynamic - .literal( - localeMatcher = localeMatcher, - usage = usage, - sensitivity = sensitivity, - ignorePunctuation = ignorePunctuation, - numeric = numeric, - caseFirst = caseFirst - ) - .asInstanceOf[CollatorOptions] + ): CollatorOptions = new CollatorOptions { + override val localeMatcher: UndefOr[String] = localeMatcher + override val usage: UndefOr[String] = usage + override val sensitivity: UndefOr[String] = sensitivity + override val ignorePunctuation: UndefOr[Boolean] = ignorePunctuation + override val numeric: UndefOr[Boolean] = numeric + override val caseFirst: UndefOr[String] = caseFirst } } -@js.native trait DateTimeFormatOptions extends js.Object { val localeMatcher: js.UndefOr[String] val timeZone: js.UndefOr[String] @@ -197,29 +191,25 @@ object DateTimeFormatOptions { second: js.UndefOr[String] = js.undefined, timeZoneName: js.UndefOr[String] = js.undefined ): DateTimeFormatOptions = { - // format: off - js.Dynamic - .literal( - localeMatcher = localeMatcher, - timeZone = timeZone, - hour12 = hour12, - formatMatcher = formatMatcher, - weekday = weekday, - era = era, - year = year, - month = month, - day = day, - hour = hour, - minute = minute, - second = second, - timeZoneName = timeZoneName - ) - .asInstanceOf[DateTimeFormatOptions] + new DateTimeFormatOptions { + override val localeMatcher: UndefOr[String] = localeMatcher + override val timeZone: UndefOr[String] = timeZone + override val hour12: UndefOr[Boolean] = hour12 + override val formatMatcher: UndefOr[String] = formatMatcher + override val weekday: UndefOr[String] = weekday + override val era: UndefOr[String] = era + override val year: UndefOr[String] = year + override val month: UndefOr[String] = month + override val day: UndefOr[String] = day + override val hour: UndefOr[String] = hour + override val minute: UndefOr[String] = minute + override val second: UndefOr[String] = second + override val timeZoneName: UndefOr[String] = timeZoneName + } // format: on } } -@js.native trait NumberFormatOptions extends js.Object { val localeMatcher: js.UndefOr[String] val style: js.UndefOr[String] @@ -297,20 +287,18 @@ object NumberFormatOptions { maximumFractionDigits: js.UndefOr[Double] = js.undefined, minimumSignificantDigits: js.UndefOr[Double] = js.undefined, maximumSignificantDigits: js.UndefOr[Double] = js.undefined - ): NumberFormatOptions = { - js.Dynamic - .literal( - localeMatcher = localeMatcher, - style = style, - currency = currency, - currencyDisplay = currencyDisplay, - useGrouping = useGrouping, - minimumIntegerDigits = minimumIntegerDigits, - minimumFractionDigits = minimumFractionDigits, - maximumFractionDigits = maximumFractionDigits, - minimumSignificantDigits = minimumSignificantDigits, - maximumSignificantDigits = maximumSignificantDigits - ) - .asInstanceOf[NumberFormatOptions] + ): NumberFormatOptions = new NumberFormatOptions { + override val localeMatcher: UndefOr[String] = localeMatcher + override val style: UndefOr[String] = style + override val currency: UndefOr[String] = currency + override val currencyDisplay: UndefOr[String] = currencyDisplay + override val useGrouping: UndefOr[Boolean] = useGrouping + override val minimumIntegerDigits: UndefOr[Double] = minimumIntegerDigits + override val minimumFractionDigits: UndefOr[Double] = minimumFractionDigits + override val maximumFractionDigits: UndefOr[Double] = maximumFractionDigits + override val minimumSignificantDigits: UndefOr[Double] = + minimumSignificantDigits + override val maximumSignificantDigits: UndefOr[Double] = + maximumSignificantDigits } } diff --git a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala index 47d13797b..84e7ef948 100644 --- a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala +++ b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala @@ -30,10 +30,8 @@ import org.scalajs.dom.webworkers */ @js.native @JSGlobal -class SharedWorker(stringUrl: String, name: js.UndefOr[String]) +class SharedWorker(stringUrl: String, name: js.UndefOr[String] = js.native) extends webworkers.AbstractWorker { - def this(stringUrl: String) = this(stringUrl, js.native) - /** * The port property of the SharedWorker interface returns a [[MessagePort]] * object used to communicate and control the shared worker. From d70eaa0ba4cf38ea9184c3a6a118c27f7fce771e Mon Sep 17 00:00:00 2001 From: Russ White Date: Thu, 1 Apr 2021 15:54:48 -0500 Subject: [PATCH 18/22] punt and use asInstanceOf to avoid breaking change --- .../scalajs/dom/experimental/intl/Intl.scala | 84 +++++++++++-------- 1 file changed, 48 insertions(+), 36 deletions(-) diff --git a/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala b/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala index 9397e4eeb..f0c99b381 100644 --- a/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala +++ b/src/main/scala/org/scalajs/dom/experimental/intl/Intl.scala @@ -7,8 +7,8 @@ package org.scalajs.dom.experimental.intl import scala.scalajs.js +import scala.scalajs.js.| import scala.scalajs.js.annotation._ -import scala.scalajs.js.{UndefOr, |} /** * The Intl.Collator object is a constructor for collators, objects that enable language @@ -63,6 +63,7 @@ class NumberFormat( options: js.Any): js.Array[String] = js.native } +@js.native trait CollatorOptions extends js.Object { val localeMatcher: js.UndefOr[String] val usage: js.UndefOr[String] @@ -119,16 +120,21 @@ object CollatorOptions { ignorePunctuation: js.UndefOr[Boolean] = js.undefined, numeric: js.UndefOr[Boolean] = js.undefined, caseFirst: js.UndefOr[String] = js.undefined - ): CollatorOptions = new CollatorOptions { - override val localeMatcher: UndefOr[String] = localeMatcher - override val usage: UndefOr[String] = usage - override val sensitivity: UndefOr[String] = sensitivity - override val ignorePunctuation: UndefOr[Boolean] = ignorePunctuation - override val numeric: UndefOr[Boolean] = numeric - override val caseFirst: UndefOr[String] = caseFirst + ): CollatorOptions = { + js.Dynamic + .literal( + localeMatcher = localeMatcher.asInstanceOf[js.Any], + usage = usage.asInstanceOf[js.Any], + sensitivity = sensitivity.asInstanceOf[js.Any], + ignorePunctuation = ignorePunctuation.asInstanceOf[js.Any], + numeric = numeric.asInstanceOf[js.Any], + caseFirst = caseFirst.asInstanceOf[js.Any] + ) + .asInstanceOf[CollatorOptions] } } +@js.native trait DateTimeFormatOptions extends js.Object { val localeMatcher: js.UndefOr[String] val timeZone: js.UndefOr[String] @@ -191,25 +197,29 @@ object DateTimeFormatOptions { second: js.UndefOr[String] = js.undefined, timeZoneName: js.UndefOr[String] = js.undefined ): DateTimeFormatOptions = { - new DateTimeFormatOptions { - override val localeMatcher: UndefOr[String] = localeMatcher - override val timeZone: UndefOr[String] = timeZone - override val hour12: UndefOr[Boolean] = hour12 - override val formatMatcher: UndefOr[String] = formatMatcher - override val weekday: UndefOr[String] = weekday - override val era: UndefOr[String] = era - override val year: UndefOr[String] = year - override val month: UndefOr[String] = month - override val day: UndefOr[String] = day - override val hour: UndefOr[String] = hour - override val minute: UndefOr[String] = minute - override val second: UndefOr[String] = second - override val timeZoneName: UndefOr[String] = timeZoneName - } + // format: off + js.Dynamic + .literal( + localeMatcher = localeMatcher.asInstanceOf[js.Any], + timeZone = timeZone.asInstanceOf[js.Any], + hour12 = hour12.asInstanceOf[js.Any], + formatMatcher = formatMatcher.asInstanceOf[js.Any], + weekday = weekday.asInstanceOf[js.Any], + era = era.asInstanceOf[js.Any], + year = year.asInstanceOf[js.Any], + month = month.asInstanceOf[js.Any], + day = day.asInstanceOf[js.Any], + hour = hour.asInstanceOf[js.Any], + minute = minute.asInstanceOf[js.Any], + second = second.asInstanceOf[js.Any], + timeZoneName = timeZoneName.asInstanceOf[js.Any] + ) + .asInstanceOf[DateTimeFormatOptions] // format: on } } +@js.native trait NumberFormatOptions extends js.Object { val localeMatcher: js.UndefOr[String] val style: js.UndefOr[String] @@ -287,18 +297,20 @@ object NumberFormatOptions { maximumFractionDigits: js.UndefOr[Double] = js.undefined, minimumSignificantDigits: js.UndefOr[Double] = js.undefined, maximumSignificantDigits: js.UndefOr[Double] = js.undefined - ): NumberFormatOptions = new NumberFormatOptions { - override val localeMatcher: UndefOr[String] = localeMatcher - override val style: UndefOr[String] = style - override val currency: UndefOr[String] = currency - override val currencyDisplay: UndefOr[String] = currencyDisplay - override val useGrouping: UndefOr[Boolean] = useGrouping - override val minimumIntegerDigits: UndefOr[Double] = minimumIntegerDigits - override val minimumFractionDigits: UndefOr[Double] = minimumFractionDigits - override val maximumFractionDigits: UndefOr[Double] = maximumFractionDigits - override val minimumSignificantDigits: UndefOr[Double] = - minimumSignificantDigits - override val maximumSignificantDigits: UndefOr[Double] = - maximumSignificantDigits + ): NumberFormatOptions = { + js.Dynamic + .literal( + localeMatcher = localeMatcher.asInstanceOf[js.Any], + style = style.asInstanceOf[js.Any], + currency = currency.asInstanceOf[js.Any], + currencyDisplay = currencyDisplay.asInstanceOf[js.Any], + useGrouping = useGrouping.asInstanceOf[js.Any], + minimumIntegerDigits = minimumIntegerDigits.asInstanceOf[js.Any], + minimumFractionDigits = minimumFractionDigits.asInstanceOf[js.Any], + maximumFractionDigits = maximumFractionDigits.asInstanceOf[js.Any], + minimumSignificantDigits = minimumSignificantDigits.asInstanceOf[js.Any], + maximumSignificantDigits = maximumSignificantDigits.asInstanceOf[js.Any] + ) + .asInstanceOf[NumberFormatOptions] } } From f594b668c06082a1494ad5d76c3c127e67d3e1db Mon Sep 17 00:00:00 2001 From: Russ White Date: Thu, 1 Apr 2021 15:56:55 -0500 Subject: [PATCH 19/22] fix ci.yml so that it has the correct scala 3 version --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 22797c1a5..839449bec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: include: - scalaversion: "2.10.7" scalajsversion: "0.6.x" - - scalaversion: "3.0.0-RC1" + - scalaversion: "3.0.0-RC2" scalajsversion: "1.x" env: SCALAJS_VERSION: "${{ matrix.scalajsversion == '0.6.x' && '0.6.28' || '' }}" From 5176b445f7fcb7807ec42d625152b1d2b4f2c3b0 Mon Sep 17 00:00:00 2001 From: Russ White Date: Thu, 1 Apr 2021 16:03:03 -0500 Subject: [PATCH 20/22] scalafmt --- .../scalajs/dom/experimental/sharedworkers/SharedWorker.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala index 84e7ef948..61ece18df 100644 --- a/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala +++ b/src/main/scala/org/scalajs/dom/experimental/sharedworkers/SharedWorker.scala @@ -32,6 +32,7 @@ import org.scalajs.dom.webworkers @JSGlobal class SharedWorker(stringUrl: String, name: js.UndefOr[String] = js.native) extends webworkers.AbstractWorker { + /** * The port property of the SharedWorker interface returns a [[MessagePort]] * object used to communicate and control the shared worker. From f77e53a95529001f35452270a520eaa9c0141ddb Mon Sep 17 00:00:00 2001 From: Russ White Date: Thu, 13 May 2021 15:27:54 -0500 Subject: [PATCH 21/22] scala 3.0.0 FTW --- .github/workflows/ci.yml | 2 +- build.sbt | 2 +- project/build.properties | 2 +- .../org/scalajs/dom/experimental/webrtc/WebRTC.scala | 11 ++++------- src/main/scala/org/scalajs/dom/raw/lib.scala | 8 +++----- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 839449bec..6f08dbb74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: include: - scalaversion: "2.10.7" scalajsversion: "0.6.x" - - scalaversion: "3.0.0-RC2" + - scalaversion: "3.0.0" scalajsversion: "1.x" env: SCALAJS_VERSION: "${{ matrix.scalajsversion == '0.6.x' && '0.6.28' || '' }}" diff --git a/build.sbt b/build.sbt index 5283c428c..07815ebd5 100644 --- a/build.sbt +++ b/build.sbt @@ -6,7 +6,7 @@ lazy val root = project.in(file(".")). name := "Scala.js DOM" ThisBuild / crossScalaVersions := { - if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1", "3.0.0-RC2") + if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1", "3.0.0") else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.1") } ThisBuild / scalaVersion := crossScalaVersions.value.head diff --git a/project/build.properties b/project/build.properties index af4ff6f29..f0be67b9f 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.5.0-RC2 +sbt.version=1.5.1 diff --git a/src/main/scala/org/scalajs/dom/experimental/webrtc/WebRTC.scala b/src/main/scala/org/scalajs/dom/experimental/webrtc/WebRTC.scala index 5c8db2d6c..e688f265d 100644 --- a/src/main/scala/org/scalajs/dom/experimental/webrtc/WebRTC.scala +++ b/src/main/scala/org/scalajs/dom/experimental/webrtc/WebRTC.scala @@ -5,13 +5,10 @@ package org.scalajs.dom.experimental.webrtc import scala.scalajs.js import scala.scalajs.js.annotation._ -import scala.scalajs.js.typedarray.{ArrayBufferView, ArrayBuffer} -import scala.scalajs.js.| - +import scala.scalajs.js.typedarray.{ArrayBuffer, ArrayBufferView} +import scala.scalajs.js.{undefined, |} import org.scalajs.dom.Blob -import org.scalajs.dom.raw.{ - DOMException, Event, EventInit, EventTarget, MessageEvent -} +import org.scalajs.dom.raw.{DOMException, Event, EventInit, EventTarget, MessageEvent} import org.scalajs.dom.experimental.mediastream._ @js.native @@ -503,7 +500,7 @@ trait RTCDataChannelInit extends js.Object { class RTCDataChannelEvent(typeArg: String, init: js.UndefOr[RTCDataChannelEventInit]) extends Event(typeArg, init) { - def this(init: RTCDataChannelEventInit) = this("datachannel", init) + def this(init: js.UndefOr[RTCDataChannelEventInit]) = this(typeArg = "datachannel", init = init) /** * Contains the RTCDataChannel containing the data channel associated with diff --git a/src/main/scala/org/scalajs/dom/raw/lib.scala b/src/main/scala/org/scalajs/dom/raw/lib.scala index 77a6c1785..4ea787c1e 100644 --- a/src/main/scala/org/scalajs/dom/raw/lib.scala +++ b/src/main/scala/org/scalajs/dom/raw/lib.scala @@ -1561,11 +1561,9 @@ class MouseEvent(typeArg: String, init: js.UndefOr[MouseEventInit]) @js.native @JSGlobal class PointerEvent(typeArg: String, - pointerEventInit: js.UndefOr[PointerEventInit] = js.undefined) + pointerEventInit: js.UndefOr[PointerEventInit] = js.native) extends MouseEvent(typeArg, pointerEventInit) { - def this(typeArg: String) = this(typeArg, js.native) - /** * An identifier assigned to a pointer event that is unique from the identifiers * of all active pointer events at the time. Authors cannot assume values convey @@ -3115,10 +3113,10 @@ class Touch extends js.Object { */ @js.native @JSGlobal -class KeyboardEvent(typeArg: String, init: js.UndefOr[KeyboardEventInit]) +class KeyboardEvent(typeArg: String, init: js.UndefOr[KeyboardEventInit] = js.native) extends UIEvent(typeArg, init) with ModifierKeyEvent { - def this(typeArg: String) = this(typeArg, js.native) +// def this(typeArg: String) = this(typeArg, js.native) /** * Returns the Unicode value of a character key pressed during a keypress event. From ed3ad200e28b49c36fe99ad9d97fe42c0b6b9f78 Mon Sep 17 00:00:00 2001 From: Russell White <356303+russwyte@users.noreply.github.com> Date: Thu, 3 Jun 2021 09:42:55 -0500 Subject: [PATCH 22/22] get scaladocs for scala 3 working --- .github/workflows/ci.yml | 2 +- build.sbt | 2 +- project/build.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f08dbb74..bb34e238c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: include: - scalaversion: "2.10.7" scalajsversion: "0.6.x" - - scalaversion: "3.0.0" + - scalaversion: "3.0.1-RC1" scalajsversion: "1.x" env: SCALAJS_VERSION: "${{ matrix.scalajsversion == '0.6.x' && '0.6.28' || '' }}" diff --git a/build.sbt b/build.sbt index 07815ebd5..4dbd8e8a8 100644 --- a/build.sbt +++ b/build.sbt @@ -6,7 +6,7 @@ lazy val root = project.in(file(".")). name := "Scala.js DOM" ThisBuild / crossScalaVersions := { - if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1", "3.0.0") + if (scalaJSVersion.startsWith("1.")) Seq("2.12.10", "2.11.12", "2.13.1", "3.0.1-RC1") else Seq("2.12.10", "2.11.12", "2.10.7", "2.13.1") } ThisBuild / scalaVersion := crossScalaVersions.value.head diff --git a/project/build.properties b/project/build.properties index f0be67b9f..67d27a1df 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.5.1 +sbt.version=1.5.3