2019-06-25 20:12:40 +00:00
|
|
|
import Dependencies._
|
|
|
|
|
|
|
|
def scala211 = "2.11.12"
|
2019-08-09 16:03:00 +00:00
|
|
|
def scala212 = "2.12.9"
|
2019-06-25 20:12:40 +00:00
|
|
|
def scala213 = "2.13"
|
|
|
|
|
|
|
|
name := "stasis"
|
|
|
|
|
|
|
|
inThisBuild(
|
2019-06-28 17:59:35 +00:00
|
|
|
Seq(
|
2019-06-25 20:12:40 +00:00
|
|
|
organization := "io.stasis",
|
|
|
|
homepage := Some(url("https://github.com/stasis/stasis")),
|
|
|
|
licenses := List(
|
|
|
|
"Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0"),
|
|
|
|
"ASM" -> url("https://asm.ow2.io/license.html")
|
|
|
|
),
|
|
|
|
developers := List(
|
|
|
|
Developer(
|
|
|
|
"gburd",
|
|
|
|
"Gregory Burd",
|
|
|
|
"greg@burd.me",
|
|
|
|
url("https://greg.burd.me")
|
|
|
|
)
|
|
|
|
),
|
2019-06-25 20:45:46 +00:00
|
|
|
scalaVersion := scala212,
|
2019-06-25 20:12:40 +00:00
|
|
|
crossScalaVersions := List(scala213, scala212, scala211),
|
|
|
|
resolvers += Resolver.sonatypeRepo("releases"),
|
2019-06-27 02:08:41 +00:00
|
|
|
scalacOptions ++= Seq(
|
2019-06-28 17:59:35 +00:00
|
|
|
"-unchecked"
|
|
|
|
, "-deprecation"
|
|
|
|
// , "-Xfatal-warnings"
|
2019-06-27 02:08:41 +00:00
|
|
|
),
|
2019-06-28 17:59:35 +00:00
|
|
|
libraryDependencies ++= Seq(
|
2019-06-25 20:12:40 +00:00
|
|
|
scalatest.value % Test,
|
|
|
|
scalacheck % Test,
|
2019-06-28 17:59:35 +00:00
|
|
|
scalametaTestkit % Test,
|
2019-06-25 20:45:46 +00:00
|
|
|
),
|
|
|
|
scalacOptions ++= {
|
|
|
|
CrossVersion.partialVersion(scalaVersion.value) match {
|
|
|
|
case Some((2, 11)) => Seq("-target:jvm-1.8")
|
|
|
|
case Some((2, 12)) => Seq("-target:jvm-1.8")
|
2019-08-09 16:03:00 +00:00
|
|
|
case Some((2, 13)) => Seq("-target:jvm-1.12")
|
2019-06-25 20:45:46 +00:00
|
|
|
case _ => Seq.empty
|
|
|
|
}
|
2019-06-28 17:59:35 +00:00
|
|
|
},
|
|
|
|
Test / testOptions += Tests.Argument(TestFrameworks.JUnit, "-q", "-v", "-a")
|
2019-06-25 20:12:40 +00:00
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
skip in publish := true
|
|
|
|
|
|
|
|
commands += Command.command("ci-test") { s =>
|
|
|
|
val scalaVersion = sys.env.get("TEST") match {
|
|
|
|
case Some("2.11") => scala211
|
|
|
|
case Some("2.12") => scala212
|
2019-06-25 20:45:46 +00:00
|
|
|
case Some("2.13") => scala213
|
|
|
|
case _ => scala212
|
2019-06-25 20:12:40 +00:00
|
|
|
}
|
|
|
|
val docsTest = if (scalaVersion == scala213) "docs/run" else "version"
|
|
|
|
s"++$scalaVersion" ::
|
|
|
|
s"tests/test" ::
|
|
|
|
s"coreJS/test" ::
|
|
|
|
docsTest ::
|
|
|
|
s
|
|
|
|
}
|
|
|
|
|
|
|
|
lazy val core = project
|
|
|
|
.in(file("stasis-core"))
|
|
|
|
.settings(
|
|
|
|
moduleName := "stasis-core",
|
|
|
|
description := "Implementation of Stasis",
|
|
|
|
buildInfoSettings,
|
|
|
|
buildInfoPackage := "io.stasis",
|
|
|
|
buildInfoObject := "BuildInfo",
|
2019-06-27 02:08:41 +00:00
|
|
|
projectDependencies ++= Seq(
|
2019-06-25 20:12:40 +00:00
|
|
|
scalatest.value % Test,
|
2019-06-27 02:08:41 +00:00
|
|
|
scalametaTestkit % Test
|
|
|
|
)
|
2019-06-25 20:12:40 +00:00
|
|
|
)
|
|
|
|
.enablePlugins(BuildInfoPlugin)
|
|
|
|
|
2019-06-25 20:45:46 +00:00
|
|
|
lazy val persist = project
|
|
|
|
.in(file("stasis-persist"))
|
2019-06-25 20:12:40 +00:00
|
|
|
.settings(
|
2019-06-25 20:45:46 +00:00
|
|
|
moduleName := "stasis-persist",
|
|
|
|
assemblyJarName.in(assembly) := "stasis-persist.jar",
|
|
|
|
)
|
2019-06-26 17:27:13 +00:00
|
|
|
.dependsOn(core, rep)
|
2019-06-25 20:45:46 +00:00
|
|
|
|
|
|
|
lazy val rep = project
|
|
|
|
.in(file("stasis-rep"))
|
|
|
|
.settings(
|
|
|
|
moduleName := "stasis-rep",
|
|
|
|
assemblyJarName.in(assembly) := "stasis-rep.jar"
|
2019-06-25 20:12:40 +00:00
|
|
|
)
|
|
|
|
.dependsOn(core)
|
|
|
|
|
2019-06-26 17:27:13 +00:00
|
|
|
lazy val test = project
|
|
|
|
.in(file("stasis-test"))
|
|
|
|
.settings(
|
|
|
|
moduleName := "stasis-test",
|
|
|
|
assemblyJarName.in(assembly) := "stasis-test.jar",
|
2019-06-28 17:59:35 +00:00
|
|
|
Test / fork := true,
|
|
|
|
Test / logBuffered := false,
|
|
|
|
Test / parallelExecution := false,
|
|
|
|
Test / testOptions := Seq(Tests.Argument(TestFrameworks.JUnit,"-a", "-q", "-v")),
|
|
|
|
Test / javacOptions := Seq(
|
|
|
|
"-Xlint:deprecation",
|
2019-06-28 19:56:08 +00:00
|
|
|
"-Xlint:unchecked"
|
2019-06-28 17:59:35 +00:00
|
|
|
),
|
|
|
|
Test / javaOptions := {
|
|
|
|
val basedir = (baseDirectory in ThisBuild).value.getCanonicalFile
|
|
|
|
val builddir = basedir + "/target"
|
|
|
|
val unittestdir = builddir + "/test"
|
|
|
|
val docdir = basedir + "/docs"
|
|
|
|
val docletsrcdir = docdir + "/doclet"
|
|
|
|
Seq( "-DJE_TEST=true",
|
|
|
|
s"-Dbasedir=${basedir}",
|
|
|
|
s"-Ddist.srcdir=${basedir}/dist",
|
|
|
|
s"-Dunittest.srcdir=${basedir}/test",
|
|
|
|
s"-Dunittest.dir=${unittestdir}",
|
|
|
|
s"-Dunittest.destdir=${unittestdir}/classes",
|
|
|
|
s"-Dunittest.envdirroot=${unittestdir}/envdata",
|
|
|
|
s"-Dunittest.failures=${unittestdir}/failures",
|
|
|
|
s"-Dunittest.copylimit=10",
|
|
|
|
s"-Dunittest.datadir=${unittestdir}/data",
|
|
|
|
s"-Dunittest.extraenvdir=${unittestdir}/propTest",
|
|
|
|
s"-Dunittest.extraenvdir2=${unittestdir}/propTest2",
|
|
|
|
s"-Dunittest.reportsdir=${unittestdir}/reports",
|
|
|
|
s"-Dunittest.testclassloader=${unittestdir}/testclassloader",
|
|
|
|
s"-Dunittest.testserialdir=${unittestdir}/testserial",
|
|
|
|
s"-Dunittest.testevolvedir=${unittestdir}/testevolve",
|
|
|
|
s"-Dunittest.serialtest.bdb=${unittestdir}/StoredClassCatalogTest-bdb",
|
|
|
|
s"-Dunittest.serialtest.txn=${unittestdir}/StoredClassCatalogTest-txn",
|
|
|
|
s"-Dunittest.showoutput=true",
|
|
|
|
s"-Ddoc.dir=${docdir}",
|
|
|
|
s"-Ddoc.javadir=${docdir}/java",
|
|
|
|
s"-Ddoc.internaljavadir=${docdir}/internal-javadoc",
|
|
|
|
s"-Ddoc.examplesdir=${docdir}/examples",
|
|
|
|
s"-Ddoc.scratchdir=${builddir}/tmp",
|
|
|
|
s"-Ddocsrc.dir=${basedir}/docs_src",
|
|
|
|
s"-Ddoclet.src.dir=${docletsrcdir}",
|
|
|
|
s"-Ddoclet.classes.dir=${docletsrcdir}/Classes",
|
|
|
|
s"-Ddoclet.jar=${docdir}/HidingDoclet.jar",
|
|
|
|
)
|
|
|
|
},
|
|
|
|
libraryDependencies ++= Seq(
|
2019-06-26 17:27:13 +00:00
|
|
|
"junit" % "junit" % "4.12" % Test,
|
2019-06-28 17:59:35 +00:00
|
|
|
"com.novocode" % "junit-interface" % "0.11" % Test
|
2019-06-26 17:27:13 +00:00
|
|
|
)
|
|
|
|
)
|
2019-06-27 02:08:41 +00:00
|
|
|
.disablePlugins(plugins.JUnitXmlReportPlugin)
|
2019-06-26 17:27:13 +00:00
|
|
|
.dependsOn(core, persist, rep)
|
|
|
|
|
2019-08-09 22:08:13 +00:00
|
|
|
lazy val test_examples = project
|
|
|
|
.in(file("stasis-test-examples"))
|
|
|
|
.settings(
|
|
|
|
moduleName := "stasis-test-examples",
|
|
|
|
assemblyJarName.in(assembly) := "stasis-test-examples.jar",
|
|
|
|
Test / javacOptions := Seq(
|
|
|
|
"-Xlint:deprecation",
|
|
|
|
"-Xlint:unchecked"
|
|
|
|
),
|
|
|
|
libraryDependencies ++= Seq(
|
|
|
|
"junit" % "junit" % "4.12" % Test,
|
|
|
|
"com.novocode" % "junit-interface" % "0.11" % Test
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.dependsOn(core, persist, rep, test)
|
|
|
|
|
2019-06-25 20:12:40 +00:00
|
|
|
val V = "\\d+\\.\\d+\\.\\d+"
|
|
|
|
val ReleaseCandidate = s"($V-RC\\d+).*".r
|
|
|
|
val Milestone = s"($V-M\\d+).*".r
|
|
|
|
|
|
|
|
lazy val stableVersion = Def.setting {
|
|
|
|
version.in(ThisBuild).value.replaceAll("\\+.*", "")
|
|
|
|
}
|
|
|
|
|
|
|
|
lazy val buildInfoSettings: Seq[Def.Setting[_]] = Seq(
|
|
|
|
buildInfoKeys := Seq[BuildInfoKey](
|
|
|
|
name,
|
|
|
|
version,
|
|
|
|
"scalameta" -> scalametaV,
|
|
|
|
"nightly" -> version.value,
|
|
|
|
"stable" -> stableVersion.value,
|
|
|
|
"scala" -> scalaVersion.value,
|
|
|
|
"scala211" -> scala211,
|
2019-06-25 20:45:46 +00:00
|
|
|
"scala212" -> scala212,
|
|
|
|
"scala213" -> scala213,
|
2019-06-25 20:12:40 +00:00
|
|
|
"coursier" -> coursier,
|
|
|
|
"commit" -> sys.process.Process("git rev-parse HEAD").lineStream_!.head,
|
|
|
|
"timestamp" -> System.currentTimeMillis().toString,
|
|
|
|
scalaVersion,
|
|
|
|
sbtVersion
|
|
|
|
),
|
|
|
|
buildInfoPackage := "io.stasis",
|
|
|
|
buildInfoObject := "Versions"
|
|
|
|
)
|