lm alpha10

This commit is contained in:
Eugene Yokota 2023-01-19 11:29:51 -05:00
parent 84a5fcb035
commit 9219ed6bd4
3 changed files with 33 additions and 26 deletions

View File

@ -15,7 +15,7 @@ object Dependencies {
// sbt modules
private val ioVersion = nightlyVersion.getOrElse("1.8.0")
private val lmVersion =
sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("2.0.0-alpha7")
sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("2.0.0-alpha10")
val zincVersion = nightlyVersion.getOrElse("2.0.0-alpha6")
private val sbtIO = "org.scala-sbt" %% "io" % ioVersion

View File

@ -6,6 +6,7 @@ Seq(
ThisBuild / packageDoc / publishArtifact := false,
packageSrc / publishArtifact := false,
ThisBuild / organization := "org.example",
ThisBuild / scalaVersion := "3.2.1",
version := "1.0",
)
@ -28,19 +29,18 @@ def scalaLibraryBase(v: String) = url(s"https://www.scala-lang.org/api/$v/")
def addDep(projectName: String) =
libraryDependencies += organization.value %% projectName % version.value
val checkApiMappings = taskKey[Unit]("Verifies that the API mappings are collected as expected.")
def expectedMappings = Def.task {
val version = scalaVersion.value
val stdLibVersion = "2.13.10"
val binVersion = scalaBinaryVersion.value
val ms = update.value.configuration(Compile).get.modules.flatMap { mod =>
mod.artifacts.flatMap { case (a,f) =>
mod.artifacts.flatMap { case (a, f) =>
val n = a.name.stripSuffix("_" + binVersion)
n match {
case "a" | "b" | "c" => (f, apiBase(n)) :: Nil
case "scala-library" => (f, scalaLibraryBase(version)) :: Nil
case _ => Nil
case "scala-library" => (f, scalaLibraryBase(stdLibVersion)) :: Nil
case _ => Nil
}
}
}
@ -48,7 +48,6 @@ def expectedMappings = Def.task {
(mc +: ms).toMap
}
val a = project.settings(
apiBaseSetting,
publishMavenStyle := true,
@ -63,15 +62,17 @@ val b = project.settings(
val c = project.settings(apiBaseSetting)
val d = project.dependsOn( c ).settings(
externalResolvers := Seq(aResolver.value, bResolver.value),
addDep("a"),
addDep("b"),
checkApiMappings := {
val actual = (Compile / doc / apiMappings).value
println("Actual API Mappings: " + actual.mkString("\n\t", "\n\t", ""))
val expected = expectedMappings.value
println("Expected API Mappings: " + expected.mkString("\n\t", "\n\t", ""))
assert(actual == expected)
}
)
val d = project
.dependsOn(c)
.settings(
externalResolvers := Seq(aResolver.value, bResolver.value),
addDep("a"),
addDep("b"),
checkApiMappings := {
val actual = (Compile / doc / apiMappings).value
println("Actual API Mappings: " + actual.mkString("\n\t", "\n\t", ""))
val expected = expectedMappings.value
println("Expected API Mappings: " + expected.mkString("\n\t", "\n\t", ""))
assert(actual == expected)
}
)

View File

@ -31,7 +31,7 @@ def withRepositories[T](pomXML: Elem)(f: NodeSeq => T) = {
lazy val checkExtra = readPom map { pomXML =>
checkProject(pomXML)
val extra = pomXML \ extraTagName
val extra = pomXML \ extraTagName
if (extra.isEmpty) sys.error("'" + extraTagName + "' not found in generated pom.xml.") else ()
}
@ -51,13 +51,18 @@ lazy val checkPom = Def task {
checkProject(pomXML)
val ivyRepositories = fullResolvers.value
withRepositories(pomXML) { repositoriesElement =>
val repositories = repositoriesElement \ "repository"
val repositories = repositoriesElement \ "repository"
val writtenRepositories = repositories.map(read).distinct
val mavenStyleRepositories = ivyRepositories.collect {
case x: MavenRepository if (x.name != "public") && (x.name != "jcenter") && !(x.root startsWith "file:") => normalize(x)
} distinct;
val mavenStyleRepositories = (ivyRepositories.collect {
case x: MavenRepository
if (x.name != "public") && (x.name != "jcenter") && !(x.root startsWith "file:") =>
normalize(x)
}).distinct
lazy val explain = (("Written:" +: writtenRepositories) ++ ("Declared:" +: mavenStyleRepositories)).mkString("\n\t")
lazy val explain =
(("Written:" +: writtenRepositories) ++ ("Declared:" +: mavenStyleRepositories)).mkString(
"\n\t"
)
if (writtenRepositories != mavenStyleRepositories)
sys.error("Written repositories did not match declared repositories.\n\t" + explain)
@ -74,4 +79,5 @@ def normalize(url: String): String = {
if (base.endsWith("/")) base else s"$base/"
}
def normalize(repo: MavenRepository): MavenRepository = MavenRepository(repo.name, normalize(repo.root))
def normalize(repo: MavenRepository): MavenRepository =
MavenRepository(repo.name, normalize(repo.root))