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)