Skip to content

Commit 916e48f

Browse files
authored
Merge pull request #501 from SethTisue/version-policy
2 parents f60d0e0 + 5f6b6a0 commit 916e48f

File tree

4 files changed

+16
-66
lines changed

4 files changed

+16
-66
lines changed

.circleci/config.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
- run: java -version
5959
- sbt_cmd:
6060
scala_version: << parameters.scala_version >>
61-
sbt_tasks: xml/update xml/compile xml/test:compile xml/test xml/doc xml/package xml/osgiBundle
61+
sbt_tasks: xml/update xml/compile xml/Test/compile xml/test xml/doc xml/package xml/osgiBundle xml/versionPolicyCheck
6262
scalajs_job:
6363
executor: scala_jdk8_executor
6464
parameters:
@@ -78,7 +78,7 @@ jobs:
7878
- run: node -v
7979
- sbt_cmd:
8080
scala_version: << parameters.scala_version >>
81-
sbt_tasks: xmlJS/update xmlJS/compile xmlJS/test:compile xmlJS/test xmlJS/doc xmlJS/package
81+
sbt_tasks: xmlJS/update xmlJS/compile xmlJS/Test/compile xmlJS/test xmlJS/doc xmlJS/package
8282
scalanative_job:
8383
executor: scala_native_executor
8484
parameters:

build.sbt

+12-63
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import sbtcrossproject.CrossPlugin.autoImport.{crossProject, CrossType}
33
ThisBuild / startYear := Some(2002)
44
ThisBuild / licenses += (("Apache-2.0", url("https://www.apache.org/licenses/LICENSE-2.0")))
55

6+
ThisBuild / versionScheme := Some("early-semver")
7+
ThisBuild / versionPolicyIntention := Compatibility.BinaryAndSourceCompatible
8+
69
lazy val configSettings: Seq[Setting[_]] = Seq(
710
unmanagedSourceDirectories ++= {
811
unmanagedSourceDirectories.value.flatMap { dir =>
@@ -59,76 +62,22 @@ lazy val xml = crossProject(JSPlatform, JVMPlatform, NativePlatform)
5962
|""".stripMargin)),
6063

6164
scalaModuleMimaPreviousVersion := {
62-
if (isDotty.value) None // No such release yet
63-
else Some("1.3.0")
65+
// pending resolution of https://github.com/scalacenter/sbt-version-policy/issues/62
66+
if (isDotty.value) None
67+
else Some("2.0.0-M5")
6468
},
6569
mimaBinaryIssueFilters ++= {
6670
import com.typesafe.tools.mima.core._
6771
import com.typesafe.tools.mima.core.ProblemFilters._
6872
Seq(
69-
// scala-xml 1.1.1 deprecated XMLEventReader, so it broke
70-
// binary compatibility for 2.0.0 in the following way:
71-
exclude[MissingClassProblem]("scala.xml.pull.EvComment"),
72-
exclude[MissingClassProblem]("scala.xml.pull.EvComment$"),
73-
exclude[MissingClassProblem]("scala.xml.pull.EvElemEnd"),
74-
exclude[MissingClassProblem]("scala.xml.pull.EvElemEnd$"),
75-
exclude[MissingClassProblem]("scala.xml.pull.EvElemStart"),
76-
exclude[MissingClassProblem]("scala.xml.pull.EvElemStart$"),
77-
exclude[MissingClassProblem]("scala.xml.pull.EvEntityRef"),
78-
exclude[MissingClassProblem]("scala.xml.pull.EvEntityRef$"),
79-
exclude[MissingClassProblem]("scala.xml.pull.EvProcInstr"),
80-
exclude[MissingClassProblem]("scala.xml.pull.EvProcInstr$"),
81-
exclude[MissingClassProblem]("scala.xml.pull.EvText"),
82-
exclude[MissingClassProblem]("scala.xml.pull.EvText$"),
83-
exclude[MissingClassProblem]("scala.xml.pull.ExceptionEvent"),
84-
exclude[MissingClassProblem]("scala.xml.pull.ExceptionEvent$"),
85-
exclude[MissingClassProblem]("scala.xml.pull.ProducerConsumerIterator"),
86-
exclude[MissingClassProblem]("scala.xml.pull.XMLEvent"),
87-
exclude[MissingClassProblem]("scala.xml.pull.XMLEventReader"),
88-
exclude[MissingClassProblem]("scala.xml.pull.XMLEventReader$POISON$"),
89-
exclude[MissingClassProblem]("scala.xml.pull.XMLEventReader$Parser"),
90-
exclude[MissingClassProblem]("scala.xml.pull.package"),
91-
exclude[MissingClassProblem]("scala.xml.pull.package$"),
92-
exclude[MissingTypesProblem]("scala.xml.Atom"),
93-
exclude[MissingTypesProblem]("scala.xml.Comment"),
94-
exclude[MissingTypesProblem]("scala.xml.Document"),
95-
exclude[MissingTypesProblem]("scala.xml.EntityRef"),
96-
exclude[MissingTypesProblem]("scala.xml.PCData"),
97-
exclude[MissingTypesProblem]("scala.xml.ProcInstr"),
98-
exclude[MissingTypesProblem]("scala.xml.SpecialNode"),
99-
exclude[MissingTypesProblem]("scala.xml.Text"),
100-
exclude[MissingTypesProblem]("scala.xml.Unparsed"),
101-
// Miscellaneous deprecations
102-
exclude[MissingClassProblem]("scala.xml.dtd.impl.PointedHedgeExp"),
103-
exclude[MissingClassProblem]("scala.xml.dtd.impl.PointedHedgeExp$TopIter$"),
104-
exclude[MissingClassProblem]("scala.xml.dtd.impl.PointedHedgeExp$Node$"),
105-
exclude[MissingClassProblem]("scala.xml.dtd.impl.PointedHedgeExp$Point$"),
106-
exclude[MissingClassProblem]("scala.xml.dtd.impl.PointedHedgeExp$TopIter"),
107-
exclude[MissingClassProblem]("scala.xml.dtd.impl.PointedHedgeExp$Node"),
108-
exclude[MissingClassProblem]("scala.xml.dtd.Scanner"),
109-
exclude[MissingClassProblem]("scala.xml.dtd.ContentModelParser$"),
110-
exclude[MissingClassProblem]("scala.xml.dtd.ContentModelParser"),
111-
exclude[MissingClassProblem]("scala.xml.dtd.ElementValidator"),
112-
exclude[MissingClassProblem]("scala.xml.dtd.ElementValidator"),
113-
exclude[MissingClassProblem]("scala.xml.factory.Binder"),
114-
exclude[MissingClassProblem]("scala.xml.parsing.ValidatingMarkupHandler"),
115-
exclude[MissingClassProblem]("scala.xml.persistent.CachedFileStorage"),
116-
exclude[MissingClassProblem]("scala.xml.persistent.Index"),
117-
exclude[MissingClassProblem]("scala.xml.persistent.SetStorage"),
118-
exclude[DirectMissingMethodProblem]("scala.xml.dtd.ContentModel.parse"),
119-
exclude[DirectMissingMethodProblem]("scala.xml.Elem.this"),
120-
exclude[DirectMissingMethodProblem]("scala.xml.Elem.apply"),
121-
exclude[DirectMissingMethodProblem]("scala.xml.Elem.processXml"),
122-
exclude[DirectMissingMethodProblem]("scala.xml.Elem.xmlToProcess"),
123-
// Scala 2.12 deprecated mutable.Stack, so we broke
124-
// binary compatibility for 2.0.0 in the following way:
125-
exclude[IncompatibleMethTypeProblem]("scala.xml.parsing.FactoryAdapter.scopeStack_="),
126-
exclude[IncompatibleResultTypeProblem]("scala.xml.parsing.FactoryAdapter.hStack"),
127-
exclude[IncompatibleResultTypeProblem]("scala.xml.parsing.FactoryAdapter.scopeStack"),
128-
exclude[IncompatibleResultTypeProblem]("scala.xml.parsing.FactoryAdapter.attribStack"),
129-
exclude[IncompatibleResultTypeProblem]("scala.xml.parsing.FactoryAdapter.tagStack"),
73+
// because we reverted #279
74+
exclude[DirectMissingMethodProblem]("scala.xml.Utility.escapeText"),
13075
// New MiMa checks for generic signature changes
13176
exclude[IncompatibleSignatureProblem]("*"),
77+
// afaict this is just a JDK 8 vs 15 difference, producing a false positive when
78+
// we compare classes built on JDK 15 (which we only do on CI, not at release time)
79+
// to previous-version artifacts that were built on 8. see scala/scala-xml#501
80+
exclude[DirectMissingMethodProblem]("scala.xml.include.sax.XIncluder.declaration"),
13281
)
13382
},
13483

build.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,4 @@ export CI_SNAPSHOT_RELEASE="${projectPrefix}publish"
5353
# for now, until we're confident in the new release scripts, just close the staging repo.
5454
export CI_SONATYPE_RELEASE="; sonatypePrepare; sonatypeBundleUpload; sonatypeClose"
5555

56-
sbt clean ${projectPrefix}test ${projectPrefix}publishLocal $releaseTask
56+
sbt clean ${projectPrefix}test ${projectPrefix}versionPolicyCheck ${projectPrefix}publishLocal $releaseTask

project/plugins.sbt

+1
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ addSbtPlugin("org.scala-js" % "sbt-scalajs" % scalaJSVersion)
1111
addSbtPlugin("org.scala-native" % "sbt-scala-native" % scalaNativeVersion)
1212
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.5.3")
1313
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.6.0")
14+
addSbtPlugin("ch.epfl.scala" % "sbt-version-policy" % "1.0.0-RC5")

0 commit comments

Comments
 (0)