diff --git a/.circleci/config.yml b/.circleci/config.yml index 02ee2b50..90c5ca84 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,7 +29,7 @@ commands: keys: - sbt-deps-v1-{{ checksum "build.sbt" }} - sbt-deps-v1- - - run: sbt ++<< parameters.scala_version >> << parameters.sbt_tasks >> + - run: sbt -Dsbt.io.jdktimestamps=true ++<< parameters.scala_version >> << parameters.sbt_tasks >> - save_cache: key: sbt-deps-v1-{{ checksum "build.sbt" }} paths: @@ -94,54 +94,54 @@ workflows: - scala_job: name: 2.12.x java_version: jdk8 - scala_version: 2.12.18 + scala_version: 2.12.19 - scala_job: name: 2.13.x java_version: jdk8 - scala_version: 2.13.11 + scala_version: 2.13.13 - scala_job: name: 3.x java_version: jdk8 - scala_version: 3.3.0 + scala_version: 3.3.3 - scala_job: name: jdk11_2.12.x java_version: jdk11 - scala_version: 2.12.18 + scala_version: 2.12.19 - scala_job: name: jdk11_2.13.x java_version: jdk11 - scala_version: 2.13.11 + scala_version: 2.13.13 - scala_job: name: jdk11_3.x java_version: jdk11 - scala_version: 3.3.0 + scala_version: 3.3.3 - scala_job: name: jdk17_2.12.x java_version: jdk17 - scala_version: 2.12.18 + scala_version: 2.12.19 - scala_job: name: jdk17_2.13.x java_version: jdk17 - scala_version: 2.13.11 + scala_version: 2.13.13 - scala_job: name: jdk17_3.x java_version: jdk17 - scala_version: 3.3.0 + scala_version: 3.3.3 - scalajs_job: name: sjs1.0_2.12.x - scala_version: 2.12.18 + scala_version: 2.12.19 - scalajs_job: name: sjs1.0_2.13.x - scala_version: 2.13.11 + scala_version: 2.13.13 - scalajs_job: name: sjs1.0_3.x - scala_version: 3.3.0 + scala_version: 3.3.3 - scalanative_job: name: native0.4_2.12.x - scala_version: 2.12.18 + scala_version: 2.12.19 - scalanative_job: name: native0.4_2.13.x - scala_version: 2.13.11 + scala_version: 2.13.13 - scalanative_job: name: native0.4_3.x - scala_version: 3.3.0 + scala_version: 3.3.3 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..5ace4600 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 123806c2..dbaf4868 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,10 +13,10 @@ jobs: scala: [2.12.x, 2.13.x, 3.x] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: ${{matrix.java}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d69ab720..57aa9dd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,10 +6,10 @@ jobs: publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-java@v2 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 diff --git a/NOTICE b/NOTICE index 8e6166dc..10736453 100644 --- a/NOTICE +++ b/NOTICE @@ -1,6 +1,6 @@ scala-xml -Copyright (c) 2002-2023 EPFL -Copyright (c) 2011-2023 Lightbend, Inc. +Copyright (c) 2002-2024 EPFL +Copyright (c) 2011-2024 Lightbend, Inc. scala-xml includes software developed at LAMP/EPFL (https://lamp.epfl.ch/) and diff --git a/build.sbt b/build.sbt index a7b82237..7e1f1ecb 100644 --- a/build.sbt +++ b/build.sbt @@ -36,8 +36,8 @@ lazy val xml = crossProject(JSPlatform, JVMPlatform, NativePlatform) .settings( name := "scala-xml", scalaModuleAutomaticModuleName := Some("scala.xml"), - crossScalaVersions := Seq("2.13.11", "2.12.18", "3.3.0"), - scalaVersion := "2.12.18", + crossScalaVersions := Seq("2.13.13", "2.12.19", "3.3.3"), + scalaVersion := "2.12.19", scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match { case Some((3, _)) => @@ -120,7 +120,7 @@ lazy val xml = crossProject(JSPlatform, JVMPlatform, NativePlatform) libraryDependencies += "junit" % "junit" % "4.13.2" % Test, libraryDependencies += "com.github.sbt" % "junit-interface" % "0.13.3" % Test, - libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.12.0" % Test, + libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.14.0" % Test, libraryDependencies += "xerces" % "xercesImpl" % "2.12.2" % Test, libraryDependencies ++= (CrossVersion.partialVersion(scalaVersion.value) match { case Some((3, _)) => diff --git a/jvm/src/test/scala/scala/xml/XMLTest.scala b/jvm/src/test/scala/scala/xml/XMLTest.scala index a978e4bf..5bad0fb3 100644 --- a/jvm/src/test/scala/scala/xml/XMLTest.scala +++ b/jvm/src/test/scala/scala/xml/XMLTest.scala @@ -393,7 +393,7 @@ class XMLTestJVM { @UnitTest def t5115(): Unit = { - def assertHonorsIterableContract(i: Iterable[_]): Unit = assertEquals(i.size.toLong, i.iterator.size.toLong) + def assertHonorsIterableContract(i: Iterable[?]): Unit = assertEquals(i.size.toLong, i.iterator.size.toLong) assertHonorsIterableContract(.attributes) assertHonorsIterableContract(.attributes) diff --git a/project/build.properties b/project/build.properties index 3c0b78a7..04267b14 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.1 +sbt.version=1.9.9 diff --git a/project/plugins.sbt b/project/plugins.sbt index 3a2b4788..e1f1fea4 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ -addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "3.0.1") -addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.1") -addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.1") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.14") +addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "3.1.0") +addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") +addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.0") addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") diff --git a/shared/src/main/scala/scala/xml/Atom.scala b/shared/src/main/scala/scala/xml/Atom.scala index d2e1c23d..b6aa2fb5 100644 --- a/shared/src/main/scala/scala/xml/Atom.scala +++ b/shared/src/main/scala/scala/xml/Atom.scala @@ -29,12 +29,12 @@ class Atom[+A](val data: A) extends SpecialNode with Serializable { override protected def basisForHashCode: Seq[Any] = Seq(data) override def strict_==(other: Equality): Boolean = other match { - case x: Atom[_] => data == x.data + case x: Atom[?] => data == x.data case _ => false } override def canEqual(other: Any): Boolean = other match { - case _: Atom[_] => true + case _: Atom[?] => true case _ => false } diff --git a/shared/src/main/scala/scala/xml/Equality.scala b/shared/src/main/scala/scala/xml/Equality.scala index 3b48b282..d7d612d4 100644 --- a/shared/src/main/scala/scala/xml/Equality.scala +++ b/shared/src/main/scala/scala/xml/Equality.scala @@ -53,7 +53,7 @@ object Equality { * Note - these functions assume strict equality has already failed. */ def compareBlithely(x1: AnyRef, x2: String): Boolean = x1 match { - case x: Atom[_] => x.data == x2 + case x: Atom[?] => x.data == x2 case x: NodeSeq => x.text == x2 case _ => false } diff --git a/shared/src/main/scala/scala/xml/Node.scala b/shared/src/main/scala/scala/xml/Node.scala index f5337eee..ca1d6379 100755 --- a/shared/src/main/scala/scala/xml/Node.scala +++ b/shared/src/main/scala/scala/xml/Node.scala @@ -56,7 +56,7 @@ abstract class Node extends NodeSeq { /** * used internally. Atom/Molecule = -1 PI = -2 Comment = -3 EntityRef = -5 */ - def isAtom: Boolean = this.isInstanceOf[Atom[_]] + def isAtom: Boolean = this.isInstanceOf[Atom[?]] /** The logic formerly found in typeTag$, as best I could infer it. */ def doCollectNamespaces: Boolean = true // if (tag >= 0) DO collect namespaces diff --git a/shared/src/main/scala/scala/xml/NodeBuffer.scala b/shared/src/main/scala/scala/xml/NodeBuffer.scala index c6364226..af086ec2 100644 --- a/shared/src/main/scala/scala/xml/NodeBuffer.scala +++ b/shared/src/main/scala/scala/xml/NodeBuffer.scala @@ -39,10 +39,10 @@ class NodeBuffer extends scala.collection.mutable.ArrayBuffer[Node] with ScalaVe def &+(o: Any): NodeBuffer = { o match { case null | _: Unit | Text("") => // ignore - case it: Iterator[_] => it.foreach(&+) + case it: Iterator[?] => it.foreach(&+) case n: Node => super.+=(n) - case ns: Iterable[_] => this &+ ns.iterator - case ns: Array[_] => this &+ ns.iterator + case ns: Iterable[?] => this &+ ns.iterator + case ns: Array[?] => this &+ ns.iterator case d => super.+=(new Atom(d)) } this diff --git a/shared/src/main/scala/scala/xml/PrettyPrinter.scala b/shared/src/main/scala/scala/xml/PrettyPrinter.scala index e1e35c3c..f7fe7619 100755 --- a/shared/src/main/scala/scala/xml/PrettyPrinter.scala +++ b/shared/src/main/scala/scala/xml/PrettyPrinter.scala @@ -136,7 +136,7 @@ class PrettyPrinter(width: Int, step: Int, minimizeEmpty: Boolean) { protected def childrenAreLeaves(n: Node): Boolean = { def isLeaf(l: Node): Boolean = l match { - case _: Atom[_] | _: Comment | _: EntityRef | _: ProcInstr => true + case _: Atom[?] | _: Comment | _: EntityRef | _: ProcInstr => true case _ => false } n.child.forall(isLeaf) @@ -152,7 +152,7 @@ class PrettyPrinter(width: Int, step: Int, minimizeEmpty: Boolean) { case Text(s) if s.trim.isEmpty => - case _: Atom[_] | _: Comment | _: EntityRef | _: ProcInstr => + case _: Atom[?] | _: Comment | _: EntityRef | _: ProcInstr => makeBox(ind, node.toString.trim) case Group(xs) => traverse(xs.iterator, pscope, ind) diff --git a/shared/src/test/scala/scala/xml/PatternMatchingTest.scala b/shared/src/test/scala/scala/xml/PatternMatchingTest.scala index 829180e6..96890e81 100644 --- a/shared/src/test/scala/scala/xml/PatternMatchingTest.scala +++ b/shared/src/test/scala/scala/xml/PatternMatchingTest.scala @@ -57,7 +57,7 @@ class PatternMatchingTest { object SafeNodeSeq { def unapplySeq(any: Any): Option[Seq[Node]] = any match { - case s: Seq[_] => Some(s.flatMap { + case s: Seq[?] => Some(s.flatMap { case n: Node => n case _ => NodeSeq.Empty }) diff --git a/shared/src/test/scala/scala/xml/XMLTest.scala b/shared/src/test/scala/scala/xml/XMLTest.scala index 2b1c553a..989ca02e 100644 --- a/shared/src/test/scala/scala/xml/XMLTest.scala +++ b/shared/src/test/scala/scala/xml/XMLTest.scala @@ -408,7 +408,7 @@ Ours is the portal of hope, come as you are." @UnitTest def t5115(): Unit = { - def assertHonorsIterableContract(i: Iterable[_]): Unit = assertEquals(i.size.toLong, i.iterator.size.toLong) + def assertHonorsIterableContract(i: Iterable[?]): Unit = assertEquals(i.size.toLong, i.iterator.size.toLong) assertHonorsIterableContract(.attributes) assertHonorsIterableContract(.attributes)