diff --git a/build.sbt b/build.sbt
index 7973310..84c7ed8 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,75 +1,74 @@
import scalariform.formatter.preferences._
import com.typesafe.sbt.SbtScalariform
import com.typesafe.sbt.SbtScalariform.ScalariformKeys
+import sbt.Def
-name := "lambda-test"
-
-organization := "com.fortysevendeg"
-
-version := "1.3.0"
-
-scalaVersion := "2.12.0"
-
-scalacOptions ++= Seq("-deprecation", "-unchecked", "-feature")
-
-viewSettings
-
-testFrameworks += new TestFramework("com.fortysevendeg.lambdatest.sbtinterface.LambdaFramework")
-
-fork in Test := true
-
-libraryDependencies ++= Seq(
- "org.scalacheck" %% "scalacheck" % "1.13.4",
- "org.scala-sbt" % "test-interface" % "1.0",
- "com.typesafe" % "config" % "1.3.1"
-)
-
-// Scalariform forces indent after infix plus (with no option to override)
-// This makes tests less readable
-// So tests include # format: OFF
-
-SbtScalariform.scalariformSettings
-
-ScalariformKeys.preferences := ScalariformKeys.preferences.value
-.setPreference(SpacesWithinPatternBinders, true)
-.setPreference(SpaceBeforeColon, false)
-.setPreference(SpaceInsideParentheses, false)
-.setPreference(SpaceInsideBrackets, false)
-.setPreference(SpacesAroundMultiImports, true)
-.setPreference(PreserveSpaceBeforeArguments, false)
-.setPreference(CompactStringConcatenation, false)
-.setPreference(DanglingCloseParenthesis, Force)
-.setPreference(CompactControlReadability, false)
-.setPreference(AlignParameters, false)
-.setPreference(AlignArguments, true)
-.setPreference(AlignSingleLineCaseStatements, false)
-.setPreference(DoubleIndentClassDeclaration, false)
-.setPreference(IndentLocalDefs, false)
-.setPreference(MultilineScaladocCommentsStartOnFirstLine, false)
-.setPreference(PlaceScaladocAsterisksBeneathSecondAsterisk, true)
-.setPreference(RewriteArrowSymbols, true)
-
-
-lazy val publishSnapshot = taskKey[Unit]("Publish only if the version is a SNAPSHOT")
-
-publishSnapshot := Def.taskDyn {
- if (isSnapshot.value) Def.task {
- PgpKeys.publishSigned.value
- }
- else Def.task(println("Actual version is not a Snapshot. Skipping publish."))
-}.value
-
-publishTo := {
- val nexus = "https://oss.sonatype.org/"
- if (isSnapshot.value)
- Some("Snapshots" at nexus + "content/repositories/snapshots")
- else
- Some("Releases" at nexus + "service/local/staging/deploy/maven2")
-}
+lazy val gpgFolder = sys.env.getOrElse("GPG_FOLDER", ".")
-organizationName := "47 Degrees"
+pgpPassphrase := Some(sys.env.getOrElse("GPG_PASSPHRASE", "").toCharArray)
+pgpPublicRing := file(s"$gpgFolder/pubring.gpg")
+pgpSecretRing := file(s"$gpgFolder/secring.gpg")
-organizationHomepage := Some(new URL("http://47deg.com"))
+lazy val commonSettings: Seq[Def.Setting[_]] = Seq(
+ organization := "com.fortysevendeg",
+ version := "1.3.0",
+ scalaVersion := "2.12.0",
+ scalacOptions ++= Seq("-deprecation", "-unchecked", "-feature"),
+ ScalariformKeys.preferences := ScalariformKeys.preferences.value
+ .setPreference(SpacesWithinPatternBinders, true)
+ .setPreference(SpaceBeforeColon, false)
+ .setPreference(SpaceInsideParentheses, false)
+ .setPreference(SpaceInsideBrackets, false)
+ .setPreference(SpacesAroundMultiImports, true)
+ .setPreference(PreserveSpaceBeforeArguments, false)
+ .setPreference(CompactStringConcatenation, false)
+ .setPreference(DanglingCloseParenthesis, Force)
+ .setPreference(CompactControlReadability, false)
+ .setPreference(AlignParameters, false)
+ .setPreference(AlignArguments, true)
+ .setPreference(AlignSingleLineCaseStatements, false)
+ .setPreference(DoubleIndentClassDeclaration, false)
+ .setPreference(IndentLocalDefs, false)
+ .setPreference(MultilineScaladocCommentsStartOnFirstLine, false)
+ .setPreference(PlaceScaladocAsterisksBeneathSecondAsterisk, true)
+ .setPreference(RewriteArrowSymbols, true),
+ publishTo := {
+ val nexus = "https://oss.sonatype.org/"
+ if (isSnapshot.value)
+ Some("Snapshots" at nexus + "content/repositories/snapshots")
+ else
+ Some("Releases" at nexus + "service/local/staging/deploy/maven2")
+ },
+ organizationName := "47 Degrees",
+ organizationHomepage := Some(new URL("http://47deg.com")),
+ pgpPassphrase := Some(sys.env.getOrElse("GPG_PASSPHRASE", "").toCharArray),
+ pgpPublicRing := file(s"$gpgFolder/pubring.gpg"),
+ pgpSecretRing := file(s"$gpgFolder/secring.gpg"),
+ credentials += Credentials("Sonatype Nexus Repository Manager",
+ "oss.sonatype.org",
+ sys.env.getOrElse("PUBLISH_USERNAME", ""),
+ sys.env.getOrElse("PUBLISH_PASSWORD", "")),
+ publishMavenStyle := true,
+ publishArtifact in Test := false,
+ pomIncludeRepository := { _ =>
+ false
+ },
+ licenses := Seq(
+ "Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0.html")),
+ homepage := Some(url("https://github.com/47deg/LambdaTest")),
+ scmInfo := Some(
+ ScmInfo(url("https://github.com/47deg/LambdaTest"),
+ "scm:git@github.com:47deg/LambdaTest.git")),
+ pomExtra := (
+
+
+ 47 Degrees (twitter: @47deg)
+ hello@47deg.com
+ http://http://www.47deg.com
+
+
+ )
+) ++ viewSettings ++ SbtScalariform.scalariformSettings
lazy val micrositeSettings = Seq(
micrositeName := "LambdaTest",
@@ -88,64 +87,54 @@ lazy val micrositeSettings = Seq(
"gray" -> "#646D7B",
"gray-light" -> "#E6E7EC",
"gray-lighter" -> "#F4F5F9",
- "white-color" -> "#E6E7EC"),
- //siteSubdirName in ScalaUnidoc := "api",
- //unidocProjectFilter in (ScalaUnidoc, unidoc) := inProjects(lambdatest),
- git.remoteRepo := "git@github.com:47deg/LambdaTest.git",
- autoAPIMappings := true,
- docsMappingsAPIDir := "api",
- addMappingsToSiteDir(mappings in (ScalaUnidoc,packageDoc), docsMappingsAPIDir)
+ "white-color" -> "#E6E7EC"
+ ),
+ //siteSubdirName in ScalaUnidoc := "api",
+ //unidocProjectFilter in (ScalaUnidoc, unidoc) := inProjects(lambdatest),
+ git.remoteRepo := "git@github.com:47deg/LambdaTest.git",
+ autoAPIMappings := true,
+ docsMappingsAPIDir := "api",
+ addMappingsToSiteDir(mappings in (ScalaUnidoc, packageDoc),
+ docsMappingsAPIDir)
)
lazy val docsMappingsAPIDir = settingKey[String](
"Name of subdirectory in site target directory for api docs")
-lazy val noPublishSettings: Seq[Setting[_]] = Seq(
- publish := {},
- publishLocal := {}
+lazy val noPublishSettings: Seq[Def.Setting[_]] = Seq(
+ publish := ((): Unit),
+ publishLocal := ((): Unit),
+ publishArtifact := false
)
lazy val docs = (project in file("docs"))
-.settings(micrositeSettings: _*)
-.settings(unidocSettings)
-.settings(
- name := "docs",
- description := "LambdaTest docs"
-)
-.settings(noPublishSettings)
-.enablePlugins(MicrositesPlugin)
-
-lazy val gpgFolder = sys.env.getOrElse("GPG_FOLDER", ".")
-
-pgpPassphrase := Some(sys.env.getOrElse("GPG_PASSPHRASE", "").toCharArray)
-
-pgpPublicRing := file(s"$gpgFolder/pubring.gpg")
-
-pgpSecretRing := file(s"$gpgFolder/secring.gpg")
-
-credentials += Credentials("Sonatype Nexus Repository Manager",
- "oss.sonatype.org",
- sys.env.getOrElse("PUBLISH_USERNAME", ""),
- sys.env.getOrElse("PUBLISH_PASSWORD", ""))
-
-publishMavenStyle := true
-
-publishArtifact in Test := false
-
-pomIncludeRepository := { _ => false }
-
-licenses := Seq("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0.html"))
-
-homepage := Some(url("https://github.com/47deg/LambdaTest"))
-
-scmInfo := Some(ScmInfo(url("https://github.com/47deg/LambdaTest"), "scm:git@github.com:47deg/LambdaTest.git"))
-
-pomExtra := (
-
-
- 47 Degrees (twitter: @47deg)
- hello@47deg.com
- http://http://www.47deg.com
-
-
-)
+ .settings(commonSettings)
+ .settings(micrositeSettings: _*)
+ .settings(unidocSettings)
+ .settings(
+ name := "docs",
+ description := "LambdaTest docs"
+ )
+ .settings(noPublishSettings)
+ .enablePlugins(MicrositesPlugin)
+
+lazy val `lambda-test` = (project in file("lambdatest"))
+ .settings(name := "lambda-test")
+ .settings(
+ libraryDependencies ++= Seq(
+ "org.scalacheck" %% "scalacheck" % "1.13.4",
+ "org.scala-sbt" % "test-interface" % "1.0",
+ "com.typesafe" % "config" % "1.3.1"
+ ),
+ testFrameworks += new TestFramework(
+ "com.fortysevendeg.lambdatest.sbtinterface.LambdaFramework"),
+ fork in Test := true
+ )
+ .settings(commonSettings)
+
+lazy val root = (project in file("."))
+ .settings(name := "lambda-test-root")
+ .settings(commonSettings)
+ .settings(noPublishSettings)
+ .aggregate(`lambda-test`, docs)
+ .dependsOn(`lambda-test`, docs)
diff --git a/src/main/resources/reference.conf b/lambdatest/src/main/resources/reference.conf
similarity index 100%
rename from src/main/resources/reference.conf
rename to lambdatest/src/main/resources/reference.conf
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/HoldLambdaReporter.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/HoldLambdaReporter.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/HoldLambdaReporter.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/HoldLambdaReporter.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/LambdaAct.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaAct.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/LambdaAct.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaAct.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/LambdaOptions.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaOptions.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/LambdaOptions.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaOptions.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/LambdaReporter.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaReporter.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/LambdaReporter.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaReporter.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/LambdaState.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaState.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/LambdaState.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaState.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/LambdaTest.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaTest.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/LambdaTest.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/LambdaTest.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/StdoutLambdaReporter.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/StdoutLambdaReporter.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/StdoutLambdaReporter.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/StdoutLambdaReporter.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/package.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/package.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/package.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/package.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFingerprint.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFingerprint.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFingerprint.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFingerprint.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFramework.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFramework.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFramework.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaFramework.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaRunner.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaRunner.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaRunner.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/LambdaRunner.scala
diff --git a/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/SbtLambdaReporter.scala b/lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/SbtLambdaReporter.scala
similarity index 100%
rename from src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/SbtLambdaReporter.scala
rename to lambdatest/src/main/scala/com/fortysevendeg/lambdatest/sbtinterface/SbtLambdaReporter.scala
diff --git a/src/test/resources/application.conf b/lambdatest/src/test/resources/application.conf
similarity index 100%
rename from src/test/resources/application.conf
rename to lambdatest/src/test/resources/application.conf
diff --git a/src/test/scala/coverage/All.scala b/lambdatest/src/test/scala/coverage/All.scala
similarity index 100%
rename from src/test/scala/coverage/All.scala
rename to lambdatest/src/test/scala/coverage/All.scala
diff --git a/src/test/scala/coverage/FailOnly.scala b/lambdatest/src/test/scala/coverage/FailOnly.scala
similarity index 100%
rename from src/test/scala/coverage/FailOnly.scala
rename to lambdatest/src/test/scala/coverage/FailOnly.scala
diff --git a/src/test/scala/coverage/Failure.scala b/lambdatest/src/test/scala/coverage/Failure.scala
similarity index 100%
rename from src/test/scala/coverage/Failure.scala
rename to lambdatest/src/test/scala/coverage/Failure.scala
diff --git a/src/test/scala/coverage/Off.scala b/lambdatest/src/test/scala/coverage/Off.scala
similarity index 100%
rename from src/test/scala/coverage/Off.scala
rename to lambdatest/src/test/scala/coverage/Off.scala
diff --git a/src/test/scala/demo/All.scala b/lambdatest/src/test/scala/demo/All.scala
similarity index 100%
rename from src/test/scala/demo/All.scala
rename to lambdatest/src/test/scala/demo/All.scala
diff --git a/src/test/scala/demo/Bad.scala b/lambdatest/src/test/scala/demo/Bad.scala
similarity index 100%
rename from src/test/scala/demo/Bad.scala
rename to lambdatest/src/test/scala/demo/Bad.scala
diff --git a/src/test/scala/demo/Example.scala b/lambdatest/src/test/scala/demo/Example.scala
similarity index 100%
rename from src/test/scala/demo/Example.scala
rename to lambdatest/src/test/scala/demo/Example.scala
diff --git a/src/test/scala/demo/Except.scala b/lambdatest/src/test/scala/demo/Except.scala
similarity index 100%
rename from src/test/scala/demo/Except.scala
rename to lambdatest/src/test/scala/demo/Except.scala
diff --git a/src/test/scala/demo/Generate.scala b/lambdatest/src/test/scala/demo/Generate.scala
similarity index 100%
rename from src/test/scala/demo/Generate.scala
rename to lambdatest/src/test/scala/demo/Generate.scala
diff --git a/src/test/scala/demo/Immutable.scala b/lambdatest/src/test/scala/demo/Immutable.scala
similarity index 100%
rename from src/test/scala/demo/Immutable.scala
rename to lambdatest/src/test/scala/demo/Immutable.scala
diff --git a/src/test/scala/demo/Mutable.scala b/lambdatest/src/test/scala/demo/Mutable.scala
similarity index 100%
rename from src/test/scala/demo/Mutable.scala
rename to lambdatest/src/test/scala/demo/Mutable.scala
diff --git a/src/test/scala/demo/Parallel.scala b/lambdatest/src/test/scala/demo/Parallel.scala
similarity index 100%
rename from src/test/scala/demo/Parallel.scala
rename to lambdatest/src/test/scala/demo/Parallel.scala
diff --git a/src/test/scala/demo/ScalaCheck.scala b/lambdatest/src/test/scala/demo/ScalaCheck.scala
similarity index 100%
rename from src/test/scala/demo/ScalaCheck.scala
rename to lambdatest/src/test/scala/demo/ScalaCheck.scala
diff --git a/src/test/scala/demo/Tag.scala b/lambdatest/src/test/scala/demo/Tag.scala
similarity index 100%
rename from src/test/scala/demo/Tag.scala
rename to lambdatest/src/test/scala/demo/Tag.scala
diff --git a/src/test/scala/demo/Wrap.scala b/lambdatest/src/test/scala/demo/Wrap.scala
similarity index 100%
rename from src/test/scala/demo/Wrap.scala
rename to lambdatest/src/test/scala/demo/Wrap.scala