Skip to content

Dependencies and Scala Version Update #61

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Sep 16, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ services:
- docker
scala:
- 2.11.11
- 2.12.3
- 2.12.10
jdk:
- oraclejdk8
cache:
Expand All @@ -30,7 +30,7 @@ after_success:
sbt ++$TRAVIS_SCALA_VERSION dockerBuildAndPush;
sbt ++$TRAVIS_SCALA_VERSION smoketests/test;
fi
- if [ "$TRAVIS_BRANCH" = "master" -a "$TRAVIS_PULL_REQUEST" = "false" -a "$TRAVIS_SCALA_VERSION" = "2.12.3" ]; then
- if [ "$TRAVIS_BRANCH" = "master" -a "$TRAVIS_PULL_REQUEST" = "false" -a "$TRAVIS_SCALA_VERSION" = "2.12.10" ]; then
sbt ++$TRAVIS_SCALA_VERSION publishSignedAll;
echo "Deploying to Heroku";
docker login [email protected] --password=$heroku_token registry.heroku.com;
Expand Down
69 changes: 12 additions & 57 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,68 +1,25 @@
lazy val root = (project in file("."))
.settings(mainClass in Universal := Some("org.scalaexercises.evaluator.EvaluatorServer"))
.settings(stage <<= (stage in Universal in `evaluator-server`))
.settings(noPublishSettings: _*)
.aggregate(
`evaluator-server`,
`evaluator-shared-jvm`,
`evaluator-shared-js`,
`evaluator-client-jvm`,
`evaluator-client-js`)

lazy val `evaluator-shared` = (crossProject in file("shared"))
lazy val `evaluator-shared` = (project in file("shared"))
.enablePlugins(AutomateHeaderPlugin)
.settings(name := "evaluator-shared")

lazy val `evaluator-shared-jvm` = `evaluator-shared`.jvm
lazy val `evaluator-shared-js` = `evaluator-shared`.js

lazy val `evaluator-client` = (crossProject in file("client"))
lazy val `evaluator-client` = (project in file("client"))
.dependsOn(`evaluator-shared`)
.enablePlugins(AutomateHeaderPlugin)
.settings(
name := "evaluator-client",
libraryDependencies ++= Seq(
%%("roshttp"),
%%("cats-free"),
%%("circe-core"),
%%("circe-generic"),
%%("circe-parser"),
%%("log4s"),
%("slf4j-simple"),
%%("scalatest") % "test"
)
clientDependencies
)
.jsSettings(sharedJsSettings: _*)

lazy val `evaluator-client-jvm` = `evaluator-client`.jvm
lazy val `evaluator-client-js` = `evaluator-client`.js

lazy val `evaluator-server` = (project in file("server"))
.dependsOn(`evaluator-shared-jvm`)
.dependsOn(`evaluator-shared`)
.enablePlugins(JavaAppPackaging)
.enablePlugins(AutomateHeaderPlugin)
.enablePlugins(sbtdocker.DockerPlugin)
.enablePlugins(BuildInfoPlugin)
.settings(noPublishSettings: _*)
.settings(
name := "evaluator-server",
libraryDependencies ++= Seq(
%%("monix"),
%%("circe-core"),
%%("circe-generic"),
%%("circe-parser"),
%%("log4s"),
%("slf4j-simple"),
%%("http4s-dsl", http4sV),
%%("http4s-blaze-server", http4sV),
%%("http4s-blaze-client", http4sV),
%%("http4s-circe", http4sV),
%("config"),
%%("jwt-core"),
"io.get-coursier" %% "coursier" % "1.0.0-M15-3",
"io.get-coursier" %% "coursier-cache" % "1.0.0-M15-3",
%%("scalatest") % "test"
),
serverHttpDependencies,
assemblyJarName in assembly := "evaluator-server.jar"
)
.settings(dockerSettings: _*)
Expand All @@ -75,18 +32,16 @@ lazy val `smoketests` = (project in file("smoketests"))
.settings(noPublishSettings: _*)
.settings(
name := "evaluator-server-smoke-tests",
libraryDependencies ++= Seq(
%%("circe-core"),
%%("circe-generic"),
%%("circe-parser"),
%%("http4s-blaze-client", http4sV),
%%("http4s-circe", http4sV),
%%("jwt-core"),
%%("scalatest") % "test"
)
smoketestDependencies
)
.settings(buildInfoSettings: _*)

lazy val root = (project in file("."))
.settings(mainClass in Universal := Some("org.scalaexercises.evaluator.EvaluatorServer"))
.settings(stage := (stage in Universal in `evaluator-server`).value)
.settings(noPublishSettings: _*)
.aggregate(`evaluator-server`, `evaluator-client`, `evaluator-shared`, `smoketests`)

addCommandAlias(
"publishSignedAll",
";evaluator-sharedJS/publishSigned;evaluator-sharedJVM/publishSigned;evaluator-clientJS/publishSigned;evaluator-clientJVM/publishSigned"
Expand Down
73 changes: 63 additions & 10 deletions project/ProjectPlugin.scala
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import de.heikoseeberger.sbtheader.{HeaderPattern, HeaderPlugin}
import de.heikoseeberger.sbtheader.HeaderPlugin
import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport._
import sbt.Keys._
import sbt.{Def, _}
Expand All @@ -17,10 +17,20 @@ object ProjectPlugin extends AutoPlugin {
override def requires: Plugins = plugins.JvmPlugin && HeaderPlugin && OrgPoliciesPlugin

object autoImport {
lazy val http4sV = "0.15.7a"

object V {
lazy val http4s = "0.20.10"
lazy val circe = "0.11.1"
lazy val log4s = "1.7.0"
lazy val scalatest = "3.0.5"
lazy val roshttp = "2.2.4"
lazy val slf4jSimple = "1.7.28"
lazy val jwtCore = "4.0.0"
lazy val coursier = "2.0.0-RC3-2"
}

lazy val dockerSettings = Seq(
docker <<= docker dependsOn assembly,
docker := (docker dependsOn assembly).value,
dockerfile in docker := {

val artifact: File = assembly.value
Expand Down Expand Up @@ -59,11 +69,53 @@ object ProjectPlugin extends AutoPlugin {
)
}

lazy val serverHttpDependencies = Seq(
libraryDependencies ++= Seq(
%%("circe-core", V.circe),
%%("circe-generic", V.circe),
%%("circe-parser", V.circe),
%%("log4s", V.log4s),
%("slf4j-simple", V.slf4jSimple),
%%("http4s-dsl", V.http4s),
%%("http4s-blaze-server", V.http4s),
%%("http4s-blaze-client", V.http4s),
%%("http4s-circe", V.http4s),
%("config"),
%%("jwt-core", V.jwtCore),
%%("scalatest", V.scalatest) % "test"
),
addSbtPlugin("io.get-coursier" % "sbt-coursier" % V.coursier)
)

lazy val buildInfoSettings = Seq(
buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion),
buildInfoPackage := "org.scalaexercises.evaluator"
)

lazy val smoketestDependencies = Seq(
libraryDependencies ++= Seq(
%%("circe-core", V.circe),
%%("circe-generic", V.circe),
%%("circe-parser", V.circe),
%%("http4s-blaze-client", V.http4s),
%%("http4s-circe", V.http4s),
%%("jwt-core", V.jwtCore),
%%("scalatest", V.scalatest) % "test"
)
)

lazy val clientDependencies = Seq(
libraryDependencies ++= Seq(
%%("http4s-blaze-client", V.http4s),
%%("http4s-circe", V.http4s),
%%("circe-core", V.circe),
%%("circe-generic", V.circe),
%%("circe-parser", V.circe),
%%("log4s", V.log4s),
%("slf4j-simple", V.slf4jSimple),
%%("scalatest", V.scalatest) % "test"
))

}

override def projectSettings: Seq[Def.Setting[_]] =
Expand All @@ -84,20 +136,21 @@ object ProjectPlugin extends AutoPlugin {
organizationEmail = "[email protected]"
),
orgLicenseSetting := ApacheLicense,
scalaVersion := "2.11.11",
scalaVersion := "2.12.10",
scalaOrganization := "org.scala-lang",
javacOptions ++= Seq("-encoding", "UTF-8", "-Xlint:-options"),
fork in Test := false,
parallelExecution in Test := false,
cancelable in Global := true,
headers := Map(
"scala" -> (HeaderPattern.cStyleBlockComment,
s"""|/*
headerLicense := Some(
HeaderLicense.Custom(
s"""|/*
| * scala-exercises - ${name.value}
| * Copyright (C) 2015-2016 47 Degrees, LLC. <http://www.47deg.com>
| * Copyright (C) 2015-2019 47 Degrees, LLC. <http://www.47deg.com>
| */
|
|""".stripMargin)
)
|""".stripMargin
)),
headerMappings := headerMappings.value + (HeaderFileType.scala -> HeaderCommentStyle.CStyleBlockComment)
) ++ shellPromptSettings
}
2 changes: 1 addition & 1 deletion project/build.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
sbt.version=0.13.12
sbt.version=1.2.8
10 changes: 6 additions & 4 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
resolvers += Resolver.sonatypeRepo("snapshots")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0-M8")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.4")
addSbtPlugin("se.marcuslonnberg" % "sbt-docker" % "1.4.1")
addSbtPlugin("com.47deg" % "sbt-org-policies" % "0.5.13")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.4.1")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.9.0")
addSbtPlugin("se.marcuslonnberg" % "sbt-docker" % "1.5.0")
addSbtPlugin("com.47deg" % "sbt-org-policies" % "0.12.0-M2")
addSbtPlugin("de.heikoseeberger" % "sbt-header" % "3.0.1")