scalafix/build.sbt (183 lines of code) (raw):
lazy val V = _root_.scalafix.sbt.BuildInfo
inThisBuild(
List(
resolvers ++= Resolver.sonatypeOssRepos("snapshots"),
organization := "com.spotify",
scalaVersion := V.scala212,
scalacOptions ++= List("-Yrangepos"),
publish / skip := true,
semanticdbEnabled := true,
semanticdbVersion := scalafixSemanticdb.revision,
semanticdbIncludeInJar := true,
scalafmtOnCompile := false,
scalafmtConfig := baseDirectory.value / ".." / ".scalafmt.conf",
// discard scala-xml conflict for old scio releases
libraryDependencySchemes ++= Seq(
"org.scala-lang.modules" %% "scala-xml" % "always"
)
)
)
lazy val root = project
.in(file("."))
.aggregate(
tests.projectRefs ++ Seq[sbt.ProjectReference](
// 0.7
`input-0_7`,
`output-0_7`,
// 0.8
`input-0_8`,
`output-0_8`,
// 0.10
`input-0_10`,
`output-0_10`,
// 0.12
`input-0_12`,
`output-0_12`,
// 0.13
`input-0_13`,
`output-0_13`,
// 0.14
`input-0_14`,
`output-0_14`,
// scalafix
rules
): _*
)
lazy val rules = project
.settings(
moduleName := "scalafix",
libraryDependencies ++= Seq(
"ch.epfl.scala" %% "scalafix-core" % V.scalafixVersion
)
)
def scio(version: String): List[ModuleID] = {
val modules = List(
"scio-core",
"scio-avro",
"scio-parquet",
"scio-test",
"scio-jdbc",
"scio-tensorflow"
) ++ (VersionNumber(version).numbers match {
case Seq(0, minor, _) if minor < 10 =>
List(
"scio-bigquery"
)
case _ =>
List(
"scio-google-cloud-platform", // replaced scio-bigquery
"scio-extra", // new in 0.10
"scio-smb"
)
})
modules.map("com.spotify" %% _ % version)
}
lazy val `input-0_7` = project
.settings(
libraryDependencies ++= scio(Scio.`0.6`)
)
lazy val `output-0_7` = project
.settings(
libraryDependencies ++= scio(Scio.`0.7`)
)
lazy val `input-0_8` = project
.settings(
libraryDependencies ++= scio(Scio.`0.7`)
)
lazy val `output-0_8` = project
.settings(
libraryDependencies ++= scio(Scio.`0.8`)
)
lazy val `input-0_10` = project
.settings(
libraryDependencies ++= scio(Scio.`0.9`)
)
lazy val `output-0_10` = project
.settings(
libraryDependencies ++= scio(Scio.`0.11`)
)
lazy val `input-0_12` = project
.settings(
libraryDependencies ++= scio(Scio.`0.11`)
)
lazy val `output-0_12` = project
.settings(
libraryDependencies ++= scio(Scio.`0.12`)
)
lazy val `input-0_13` = project
.settings(
libraryDependencies ++= scio(Scio.`0.12`)
)
lazy val `output-0_13` = project
.settings(
libraryDependencies ++= scio(Scio.`0.13`)
)
lazy val `input-0_14` = project
.settings(
libraryDependencies ++= scio(Scio.`0.13`)
)
lazy val `output-0_14` = project
.settings(
libraryDependencies ++= scio(Scio.`0.14`)
)
lazy val scio0_7 = ConfigAxis("-scio-0_7", "-0_7-")
lazy val scio0_8 = ConfigAxis("-scio-0_8", "-0_8-")
lazy val scio0_10 = ConfigAxis("-scio-0_10", "-0_10-")
lazy val scio0_12 = ConfigAxis("-scio-0_12", "-0_12-")
lazy val scio0_13 = ConfigAxis("-scio-0_13", "-0_13-")
lazy val scio0_14 = ConfigAxis("-scio-0_14", "-0_14-")
lazy val tests = projectMatrix
.in(file("tests"))
.enablePlugins(ScalafixTestkitPlugin)
.customRow(
scalaVersions = Seq(V.scala212),
axisValues = Seq(scio0_7, VirtualAxis.jvm),
_.settings(
moduleName := name.value + scio0_7.idSuffix,
scalafixTestkitOutputSourceDirectories := (`output-0_7` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputSourceDirectories := (`input-0_7` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputClasspath := (`input-0_7` / Compile / fullClasspath).value
).dependsOn(rules)
)
.customRow(
scalaVersions = Seq(V.scala212),
axisValues = Seq(scio0_8, VirtualAxis.jvm),
_.settings(
moduleName := name.value + scio0_8.idSuffix,
scalafixTestkitOutputSourceDirectories := (`output-0_8` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputSourceDirectories := (`input-0_8` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputClasspath := (`input-0_8` / Compile / fullClasspath).value
).dependsOn(rules)
)
.customRow(
scalaVersions = Seq(V.scala212),
axisValues = Seq(scio0_10, VirtualAxis.jvm),
_.settings(
moduleName := name.value + scio0_10.idSuffix,
scalafixTestkitOutputSourceDirectories := (`output-0_10` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputSourceDirectories := (`input-0_10` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputClasspath := (`input-0_10` / Compile / fullClasspath).value
).dependsOn(rules)
)
.customRow(
scalaVersions = Seq(V.scala212),
axisValues = Seq(scio0_12, VirtualAxis.jvm),
_.settings(
moduleName := name.value + scio0_12.idSuffix,
scalafixTestkitOutputSourceDirectories := (`output-0_12` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputSourceDirectories := (`input-0_12` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputClasspath := (`input-0_12` / Compile / fullClasspath).value
).dependsOn(rules)
)
.customRow(
scalaVersions = Seq(V.scala212),
axisValues = Seq(scio0_13, VirtualAxis.jvm),
_.settings(
moduleName := name.value + scio0_13.idSuffix,
scalafixTestkitOutputSourceDirectories := (`output-0_13` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputSourceDirectories := (`input-0_13` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputClasspath := (`input-0_13` / Compile / fullClasspath).value
).dependsOn(rules)
)
.customRow(
scalaVersions = Seq(V.scala212),
axisValues = Seq(scio0_14, VirtualAxis.jvm),
_.settings(
moduleName := name.value + scio0_14.idSuffix,
scalafixTestkitOutputSourceDirectories := (`output-0_14` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputSourceDirectories := (`input-0_14` / Compile / unmanagedSourceDirectories).value,
scalafixTestkitInputClasspath := (`input-0_14` / Compile / fullClasspath).value
).dependsOn(rules)
)