Skip to content

Commit 97a4c3b

Browse files
authored
Bugfix/missing sources (#123)
1 parent 8d24e64 commit 97a4c3b

File tree

4 files changed

+28
-30
lines changed

4 files changed

+28
-30
lines changed

build.sbt

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,32 +50,22 @@ lazy val commonJacocoExcludes: Seq[String] = Seq(
5050

5151
lazy val parent = (project in file("."))
5252
.aggregate(
53-
sparkCommonsSpark2.projectRefs ++
54-
sparkCommonsSpark3.projectRefs ++
53+
sparkCommons.projectRefs ++
5554
sparkCommonsTest.projectRefs: _*
5655
)
5756
.settings(
5857
name := "spark-commons-parent",
5958
publish / skip := true
6059
)
6160

62-
lazy val sparkCommonsSpark2 = (projectMatrix in file("scala-spark2.4-jvm"))
61+
lazy val sparkCommons = (projectMatrix in file("spark-commons"))
6362
.settings(commonSettings: _*)
6463
.sparkRow(SparkVersionAxis(spark2), scalaVersions = Seq(scala211, scala212))
65-
.settings(
66-
Compile / unmanagedSourceDirectories := Seq((Compile / sourceDirectory).value / "main" / "scala")
67-
)
68-
69-
lazy val spark3Versions = Seq(spark32, spark33, spark34, spark35)
70-
lazy val sparkCommonsSpark3 = (projectMatrix in file("scala-spark3-jvm"))
71-
.settings(commonSettings: _*)
7264
.sparkRow(SparkVersionAxis(spark32), scalaVersions = Seq(scala212, scala213))
7365
.sparkRow(SparkVersionAxis(spark33), scalaVersions = Seq(scala212, scala213))
7466
.sparkRow(SparkVersionAxis(spark34), scalaVersions = Seq(scala212, scala213))
7567
.sparkRow(SparkVersionAxis(spark35), scalaVersions = Seq(scala212, scala213))
76-
.settings(
77-
Compile / unmanagedSourceDirectories := Seq((Compile / sourceDirectory).value / "main" / "scala")
78-
)
68+
.dependsOn(sparkCommonsTest % "test")
7969

8070
lazy val sparkCommonsTest = (projectMatrix in file("spark-commons-test"))
8171
.settings(

project/SparkVersionAxis.scala

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,45 @@ import Dependencies._
2020
import JacocoSetup._
2121
import com.github.sbt.jacoco.JacocoKeys.{jacocoExcludes, jacocoReportSettings}
2222

23+
import sbt._
24+
import sbt.Keys._
25+
import sbt.VirtualAxis._
26+
import sbt.internal.ProjectMatrix
27+
import sbtprojectmatrix.ProjectMatrixKeys._
28+
import Dependencies._
29+
2330
case class SparkVersionAxis(sparkVersion: String) extends sbt.VirtualAxis.WeakAxis {
2431
val sparkVersionMinor: String = sparkVersion.split("\\.", 3).take(2).mkString(".")
25-
override val directorySuffix = s"-spark${sparkVersionMinor}"
26-
override val idSuffix: String = directorySuffix.replaceAll("""\W+""", "_")
32+
val sparkVersionMajor: String = sparkVersion.split("\\.", 3).take(1)(0)
33+
34+
override val directorySuffix: String = s"-spark${sparkVersionMajor}"
35+
36+
// must be unique for all Spark versions for a given Scala version
37+
override val idSuffix: String = s"-spark${sparkVersionMinor.replaceAll("""\W+""", "_")}"
2738
}
2839

40+
2941
object SparkVersionAxis {
3042
private def camelCaseToLowerDashCase(origName: String): String = {
3143
origName
3244
.replaceAll("([A-Z])", "-$1")
3345
.toLowerCase()
3446
}
3547

36-
implicit class ProjectExtension(val projectMatrix: ProjectMatrix) extends AnyVal {
48+
implicit class ProjectExtension(val p: ProjectMatrix) extends AnyVal {
3749

3850
def sparkRow(sparkAxis: SparkVersionAxis, scalaVersions: Seq[String], settings: Def.SettingsDefinition*): ProjectMatrix = {
39-
val sparkVersion = sparkAxis.sparkVersion
40-
scalaVersions.foldLeft(projectMatrix)((currentProjectMatrix, scalaVersion) =>
41-
currentProjectMatrix.customRow(
42-
scalaVersions = Seq(scalaVersion),
43-
axisValues = Seq(sparkAxis, VirtualAxis.jvm),
44-
_.settings(
45-
moduleName := camelCaseToLowerDashCase(
46-
name.value.replaceAll("(Spark2|Spark3)$", "") + sparkAxis.directorySuffix
47-
),
48-
libraryDependencies ++= sparkCommonsDependencies(sparkAxis.sparkVersion),
49-
jacocoReportSettings := jacocoSettings(sparkVersion, scalaVersion),
50-
jacocoExcludes := jacocoProjectExcludes(sparkVersion, scalaVersion)
51-
).settings(settings: _*)
52-
)
51+
p.customRow(
52+
scalaVersions = scalaVersions,
53+
axisValues = Seq(sparkAxis, VirtualAxis.jvm),
54+
_.settings(
55+
// must be defined to avoid conflicting target paths for individual spark versions' builds
56+
target := (ThisBuild / baseDirectory).value / "target" / s"${camelCaseToLowerDashCase(name.value)}${sparkAxis.sparkVersion}-jvm-${scalaVersion.value.replaceAll("""\W+""", "_")}",
57+
moduleName := camelCaseToLowerDashCase(name.value + s"-spark${sparkAxis.sparkVersionMinor}"),
58+
libraryDependencies ++= sparkCommonsDependencies(sparkAxis.sparkVersion)
59+
).settings(settings: _*)
5360
)
5461
}
62+
5563
}
5664
}

spark-commons/src/main/scala-spark2.4-jvm/za/co/absa/spark/commons/adapters/CallUdfAdapter.scala renamed to spark-commons/src/main/scala-spark2-jvm/za/co/absa/spark/commons/adapters/CallUdfAdapter.scala

File renamed without changes.

spark-commons/src/main/scala-spark2.4-jvm/za/co/absa/spark/commons/adapters/TransformAdapter.scala renamed to spark-commons/src/main/scala-spark2-jvm/za/co/absa/spark/commons/adapters/TransformAdapter.scala

File renamed without changes.

0 commit comments

Comments
 (0)