Skip to content

Commit

Permalink
Upgrade to sbt 0.13.7
Browse files Browse the repository at this point in the history
- Upgrade to junit-interface 0.11
- Reenable OSGi tests
- Avoid Runner.executeTrapExit (hangs in sbt 0.13.5+)
- Fix all sbt-related deprecations
  • Loading branch information
szeiger committed Jan 13, 2015
1 parent e9274ec commit 30c135e
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 33 deletions.
57 changes: 27 additions & 30 deletions project/Build.scala
Expand Up @@ -21,7 +21,7 @@ object SlickBuild extends Build {
object Dependencies {
val junit = Seq(
"junit" % "junit-dep" % "4.10",
"com.novocode" % "junit-interface" % "0.10-M4"
"com.novocode" % "junit-interface" % "0.11"
)
val testngExtras = Seq(
"com.google.inject" % "guice" % "2.0"
Expand Down Expand Up @@ -160,25 +160,24 @@ object SlickBuild extends Build {
def testAll = Command.command("testAll")(runTasksSequentially(List(
test in (slickTestkitProject, Test),
test in (slickTestkitProject, DocTest),
//test in (osgiTestProject, Test), // Temporarily disabled until we get Reactive Streams OSGi bundles
test in (osgiTestProject, Test), // Temporarily disabled until we get Reactive Streams OSGi bundles
test in (reactiveStreamsTestProject, Test),
sdlc in slickProject,
sdlc in slickCodegenProject,
sdlc in slickBlockingProject,
sdlc in slickDirectProject
sdlc in aRootProject
)))

/* Project Definitions */
lazy val aRootProject: Project = Project(id = "root", base = file("."),
settings = Project.defaultSettings ++ sharedSettings ++ extTarget("root", Some("target/root")) ++ Seq(
settings = Defaults.coreDefaultSettings ++ sharedSettings ++ extTarget("root", Some("target/root")) ++ Seq(
sourceDirectory := file("target/root-src"),
publishArtifact := false,
test := (), testOnly := (), // suppress test status output
commands += testAll
commands += testAll,
sdlc := (),
sdlc <<= sdlc dependsOn (sdlc in slickProject, sdlc in slickCodegenProject, sdlc in slickBlockingProject, sdlc in slickDirectProject)
)).aggregate(slickProject, slickCodegenProject, slickBlockingProject, slickDirectProject, slickTestkitProject)

lazy val slickProject: Project = Project(id = "slick", base = file("."),
settings = Project.defaultSettings ++ sdlcSettings ++ inConfig(config("macro"))(Defaults.configSettings) ++ sharedSettings ++ fmppSettings ++ site.settings ++ site.sphinxSupport() ++ mimaDefaultSettings ++ extTarget("slick", None) ++ osgiSettings ++ Seq(
settings = Defaults.coreDefaultSettings ++ sdlcSettings ++ inConfig(config("macro"))(Defaults.configSettings) ++ sharedSettings ++ fmppSettings ++ site.settings ++ site.sphinxSupport() ++ mimaDefaultSettings ++ extTarget("slick", None) ++ osgiSettings ++ Seq(
name := "Slick",
description := "Scala Language-Integrated Connection Kit",
scalacOptions in (Compile, doc) <++= version.map(v => Seq(
Expand Down Expand Up @@ -232,13 +231,13 @@ object SlickBuild extends Build {
val testKitTestCodegenDependencies = Dependencies.logback +: Dependencies.testDBs

lazy val slickTestkitProject = Project(id = "testkit", base = file("slick-testkit"),
settings = Project.defaultSettings ++ typeProvidersSettings ++ sharedSettings ++ extTarget("testkit", None) ++ Seq(
settings = Defaults.coreDefaultSettings ++ typeProvidersSettings ++ sharedSettings ++ extTarget("testkit", None) ++ Seq(
name := "Slick-TestKit",
description := "Test Kit for Slick (Scala Language-Integrated Connection Kit)",
scalacOptions in (Compile, doc) <++= version.map(v => Seq(
"-doc-source-url", "https://github.com/slick/slick/blob/"+v+"/slick-testkit/src/main€{FILE_PATH}.scala"
)),
testOptions += Tests.Argument(TestFrameworks.JUnit, "-q", "-v", "-s", "-a"),
testOptions += Tests.Argument(TestFrameworks.JUnit, "-q", "-v", "-s", "-a", "-Djava.awt.headless=true"),
//scalacOptions in Compile += "-Yreify-copypaste",
libraryDependencies ++=
("postgresql" % "postgresql" % "9.1-901.jdbc4" % "test") +:
Expand Down Expand Up @@ -266,12 +265,10 @@ object SlickBuild extends Build {
},
buildCapabilitiesTable := {
val logger = ConsoleLogger()
Run.executeTrapExit({
Run.run( "com.typesafe.slick.testkit.util.BuildCapabilitiesTable",
(fullClasspath in Compile).value.map(_.data),
Seq("src/sphinx/capabilities.csv"),
logger)(runner.value)
}, logger)
Run.run( "com.typesafe.slick.testkit.util.BuildCapabilitiesTable",
(fullClasspath in Compile).value.map(_.data),
Seq("src/sphinx/capabilities.csv"),
logger)(runner.value)
}
) ++ ifPublished(Seq(
libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-compiler" % _% "provided")
Expand All @@ -287,7 +284,7 @@ object SlickBuild extends Build {
) dependsOn(slickProject, slickCodegenProject % "test->compile", slickDirectProject % "test->compile", slickBlockingProject)

lazy val slickCodegenProject = Project(id = "codegen", base = file("slick-codegen"),
settings = Project.defaultSettings ++ sdlcSettings ++ sharedSettings ++ extTarget("codegen", None) ++ Seq(
settings = Defaults.coreDefaultSettings ++ sdlcSettings ++ sharedSettings ++ extTarget("codegen", None) ++ Seq(
name := "Slick-CodeGen",
description := "Code Generator for Slick (Scala Language-Integrated Connection Kit)",
scalacOptions in (Compile, doc) <++= version.map(v => Seq(
Expand All @@ -302,7 +299,7 @@ object SlickBuild extends Build {
) dependsOn(slickProject)

lazy val slickBlockingProject = Project(id = "blocking", base = file("slick-blocking"),
settings = Project.defaultSettings ++ sdlcSettings ++ sharedSettings ++ osgiSettings ++ extTarget("blocking", None) ++ Seq(
settings = Defaults.coreDefaultSettings ++ sdlcSettings ++ sharedSettings ++ osgiSettings ++ extTarget("blocking", None) ++ Seq(
name := "Slick-Blocking",
description := "Blocking API for Slick (Scala Language-Integrated Connection Kit)",
scalacOptions in (Compile, doc) <++= version.map(v => Seq(
Expand All @@ -323,7 +320,7 @@ object SlickBuild extends Build {
) dependsOn(slickProject)

lazy val slickDirectProject = Project(id = "direct", base = file("slick-direct"),
settings = Project.defaultSettings ++ sdlcSettings ++ sharedSettings ++ extTarget("direct", None) ++ Seq(
settings = Defaults.coreDefaultSettings ++ sdlcSettings ++ sharedSettings ++ extTarget("direct", None) ++ Seq(
name := "Slick-Direct",
description := "Direct Embedding for Slick (Scala Language-Integrated Connection Kit)",
libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-compiler" % _),
Expand All @@ -338,7 +335,7 @@ object SlickBuild extends Build {
) dependsOn(slickProject, slickBlockingProject)

lazy val reactiveStreamsTestProject = Project(id = "reactive-streams-tests", base = file("reactive-streams-tests"),
settings = Project.defaultSettings ++ sharedSettings ++ testNGSettings ++ Seq(
settings = Defaults.coreDefaultSettings ++ sharedSettings ++ testNGSettings ++ Seq(
name := "Slick-ReactiveStreamsTests",
unmanagedResourceDirectories in Test += (baseDirectory in aRootProject).value / "common-test-resources",
libraryDependencies ++=
Expand Down Expand Up @@ -389,7 +386,7 @@ object SlickBuild extends Build {

/* FMPP Task */
lazy val fmpp = TaskKey[Seq[File]]("fmpp")
lazy val fmppConfig = config("fmpp") hide
lazy val fmppConfig = config("fmpp").hide
lazy val fmppSettings = inConfig(Compile)(Seq(sourceGenerators <+= fmpp, fmpp <<= fmppTask)) ++ Seq(
libraryDependencies ++= Seq(
("net.sourceforge.fmpp" % "fmpp" % "0.9.14" % fmppConfig.name).intransitive,
Expand All @@ -406,16 +403,16 @@ object SlickBuild extends Build {
(sourceManaged in Compile, managedSources in Compile, sourceDirectory in Compile) map { (base, srcs, srcDir) =>
val fmppSrc = srcDir / "scala"
val inFiles = fmppSrc ** "*.fm"
(srcs x (Path.relativeTo(base) | Path.flat)) ++ // Add generated sources to sources JAR
(inFiles x (Path.relativeTo(fmppSrc) | Path.flat)) // Add *.fm files to sources JAR
(srcs pair (Path.relativeTo(base) | Path.flat)) ++ // Add generated sources to sources JAR
(inFiles pair (Path.relativeTo(fmppSrc) | Path.flat)) // Add *.fm files to sources JAR
}
)
lazy val fmppTask =
(fullClasspath in fmppConfig, runner in fmpp, sourceManaged, streams, sourceDirectory) map { (cp, r, output, s, srcDir) =>
val fmppSrc = srcDir / "scala"
val inFiles = (fmppSrc ** "*.fm" get).toSet
val inFiles = (fmppSrc ** "*.fm").get.toSet
val cachedFun = FileFunction.cached(s.cacheDirectory / "fmpp", outStyle = FilesInfo.exists) { (in: Set[File]) =>
IO.delete(output ** "*.scala" get)
IO.delete((output ** "*.scala").get)
val args = "--expert" :: "-q" :: "-S" :: fmppSrc.getPath :: "-O" :: output.getPath ::
"--replace-extensions=fm, scala" :: "-M" :: "execute(**/*.fm), ignore(**/*)" :: Nil
toError(r.run("fmpp.tools.CommandLine", cp.files, args, s.log))
Expand Down Expand Up @@ -445,18 +442,18 @@ object SlickBuild extends Build {
(sourceManaged in Test, managedSources in Test, sourceDirectory in Test) map { (base, srcs, srcDir) =>
val src = srcDir / "codegen"
val inFiles = src ** "*.scala"
(srcs x (Path.relativeTo(base) | Path.flat)) ++ // Add generated sources to sources JAR
(inFiles x (Path.relativeTo(src) | Path.flat)) // Add *.fm files to sources JAR
(srcs pair (Path.relativeTo(base) | Path.flat)) ++ // Add generated sources to sources JAR
(inFiles pair (Path.relativeTo(src) | Path.flat)) // Add *.fm files to sources JAR
}
)
}
lazy val typeProvidersTask =
(fullClasspath in typeProvidersConfig, runner in typeProviders, sourceManaged in Test, streams, sourceDirectory, sourceDirectory in slickProject) map { (cp, r, output, s, srcDir, slickSrc) =>
val src = srcDir / "codegen"
val outDir = (output/"slick-codegen").getPath
val inFiles = (src ** "*.scala" get).toSet ++ (slickSrc / "main/scala/scala/slick/codegen" ** "*.scala" get).toSet ++ (slickSrc / "main/scala/scala/slick/jdbc/meta" ** "*.scala" get).toSet
val inFiles = (src ** "*.scala").get.toSet ++ (slickSrc / "main/scala/scala/slick/codegen" ** "*.scala").get.toSet ++ (slickSrc / "main/scala/scala/slick/jdbc/meta" ** "*.scala").get.toSet
val cachedFun = FileFunction.cached(s.cacheDirectory / "type-providers", outStyle = FilesInfo.exists) { (in: Set[File]) =>
IO.delete(output ** "*.scala" get)
IO.delete((output ** "*.scala").get)
toError(r.run("scala.slick.test.codegen.CodeGeneratorTest", cp.files, Array(outDir, "scala.slick.test.codegen.generated"), s.log))
(output ** "*.scala").get.toSet
}
Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
@@ -1 +1 @@
sbt.version=0.13.0
sbt.version=0.13.7
2 changes: 2 additions & 0 deletions project/build.sbt
@@ -1,5 +1,7 @@
scalacOptions += "-deprecation"

scalacOptions += "-feature"

addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "0.8.1")

addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.6")
Expand Down
4 changes: 2 additions & 2 deletions src/sphinx/database.rst
Expand Up @@ -8,8 +8,8 @@ Anything that you can execute on a database, whether it is a getting the result
execute it.

Actions can be combined with several different combinators (see the
:api:`EffectfulAction class <scala.slick.action.EffectfulAction>` and :api:`Action object <scala.slick.action.EffectfulAction>` for
details), but they will always be executed strictly sequentially and (at least conceptually) in a
:api:`EffectfulAction class <scala.slick.action.EffectfulAction>` and :api:`Action object <scala.slick.action.Action$>`
for details), but they will always be executed strictly sequentially and (at least conceptually) in a
single database session.

.. index::
Expand Down

0 comments on commit 30c135e

Please sign in to comment.