diff --git a/build.sbt b/build.sbt index 4b00cd505..0b3972fc1 100644 --- a/build.sbt +++ b/build.sbt @@ -1,8 +1,6 @@ import java.io.FileOutputStream import com.typesafe.tools.mima.plugin.MimaPlugin.mimaDefaultSettings -import com.typesafe.tools.mima.plugin.MimaKeys -import MimaKeys.{ previousArtifacts, binaryIssueFilters } val binaryCompatibilityVersion = "1.0.0-M7" @@ -12,12 +10,12 @@ lazy val releaseSettings = Seq( publishMavenStyle := true, licenses := Seq("Apache 2.0" -> url("http://opensource.org/licenses/Apache-2.0")), homepage := Some(url("https://github.com/alexarchambault/coursier")), + scmInfo := Some(ScmInfo( + url("https://github.com/alexarchambault/coursier.git"), + "scm:git:github.com/alexarchambault/coursier.git", + Some("scm:git:git@github.com:alexarchambault/coursier.git") + )), pomExtra := { - - scm:git:github.com/alexarchambault/coursier.git - scm:git:git@github.com:alexarchambault/coursier.git - github.com/alexarchambault/coursier.git - alexarchambault @@ -49,49 +47,28 @@ lazy val noPublishSettings = Seq( publishArtifact := false ) -lazy val noPublish211Settings = Seq( +def noPublishForScalaVersionSettings(sbv: String) = Seq( publish := { - if (scalaVersion.value startsWith "2.10.") - publish.value - else - () - }, - publishLocal := { - if (scalaVersion.value startsWith "2.10.") - publishLocal.value - else - () - }, - publishArtifact := { - if (scalaVersion.value startsWith "2.10.") - publishArtifact.value - else - false - } -) - -lazy val noPublish210Settings = Seq( - publish := { - if (scalaVersion.value startsWith "2.10.") + if (scalaBinaryVersion.value == sbv) () else publish.value }, publishLocal := { - if (scalaVersion.value startsWith "2.10.") + if (scalaBinaryVersion.value == sbv) () else publishLocal.value }, publishArtifact := { - if (scalaVersion.value startsWith "2.10.") + if (scalaBinaryVersion.value == sbv) false else publishArtifact.value } ) -lazy val baseCommonSettings = Seq( +lazy val scalaVersionAgnosticCommonSettings = Seq( organization := "io.get-coursier", resolvers ++= Seq( "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases", @@ -105,24 +82,26 @@ lazy val baseCommonSettings = Seq( javacOptions in Keys.doc := Seq() ) ++ releaseSettings -lazy val commonSettings = baseCommonSettings ++ Seq( +lazy val commonSettings = scalaVersionAgnosticCommonSettings ++ Seq( scalaVersion := "2.11.8", crossScalaVersions := Seq("2.11.8", "2.10.6"), libraryDependencies ++= { - if (scalaVersion.value startsWith "2.10.") + if (scalaBinaryVersion.value == "2.10") Seq(compilerPlugin("org.scalamacros" % "paradise" % "2.0.1" cross CrossVersion.full)) else Seq() } ) +val scalazVersion = "7.2.5" + lazy val core = crossProject .settings(commonSettings: _*) .settings(mimaDefaultSettings: _*) .settings( name := "coursier", libraryDependencies ++= Seq( - "org.scalaz" %%% "scalaz-core" % "7.2.5", + "org.scalaz" %%% "scalaz-core" % scalazVersion, "com.lihaoyi" %%% "fastparse" % "0.3.7" ), resourceGenerators.in(Compile) += { @@ -132,7 +111,7 @@ lazy val core = crossProject val f = dir / "coursier.properties" dir.mkdirs() - val p = new java.util.Properties() + val p = new java.util.Properties p.setProperty("version", ver) p.setProperty("commit-hash", Seq("git", "rev-parse", "HEAD").!!.trim) @@ -146,11 +125,10 @@ lazy val core = crossProject Seq(f) }.taskValue }, - previousArtifacts := Set("com.github.alexarchambault" %% moduleName.value % binaryCompatibilityVersion), - binaryIssueFilters ++= { + mimaPreviousArtifacts := Set("com.github.alexarchambault" %% moduleName.value % binaryCompatibilityVersion), + mimaBinaryIssueFilters ++= { import com.typesafe.tools.mima.core._ - import com.typesafe.tools.mima.core.ProblemFilters._ - + Seq( // Since 1.0.0-M13 // reworked VersionConstraint @@ -223,7 +201,7 @@ lazy val core = crossProject Seq( "org.jsoup" % "jsoup" % "1.9.2" ) ++ { - if (scalaVersion.value.startsWith("2.10.")) Seq() + if (scalaBinaryVersion.value == "2.10") Seq() else Seq( "org.scala-lang.modules" %% "scala-xml" % "1.0.5" ) @@ -258,13 +236,13 @@ lazy val tests = crossProject name := "coursier-tests", libraryDependencies ++= Seq( "org.scala-lang.modules" %% "scala-async" % "0.9.5" % "provided", - "com.lihaoyi" %%% "utest" % "0.4.3" % "test,it" + "com.lihaoyi" %%% "utest" % "0.4.3" % "test" ), unmanagedResourceDirectories in Test += (baseDirectory in LocalRootProject).value / "tests" / "shared" / "src" / "test" / "resources", testFrameworks += new TestFramework("utest.runner.Framework") ) .jsSettings( - postLinkJSEnv := NodeJSEnv().value, + jsEnv := NodeJSEnv().value, scalaJSStage in Global := FastOptStage, scalaJSUseRhino in Global := false ) @@ -278,14 +256,11 @@ lazy val cache = project .settings(mimaDefaultSettings) .settings( name := "coursier-cache", - libraryDependencies ++= Seq( - "org.scalaz" %% "scalaz-concurrent" % "7.2.5" - ), - previousArtifacts := Set("com.github.alexarchambault" %% moduleName.value % binaryCompatibilityVersion), - binaryIssueFilters ++= { + libraryDependencies += "org.scalaz" %% "scalaz-concurrent" % scalazVersion, + mimaPreviousArtifacts := Set("com.github.alexarchambault" %% moduleName.value % binaryCompatibilityVersion), + mimaBinaryIssueFilters ++= { import com.typesafe.tools.mima.core._ - import com.typesafe.tools.mima.core.ProblemFilters._ - + Seq( // Since 1.0.0-M13 ProblemFilters.exclude[MissingMethodProblem]("coursier.Cache.file"), @@ -340,7 +315,7 @@ lazy val cache = project ) lazy val bootstrap = project - .settings(baseCommonSettings) + .settings(scalaVersionAgnosticCommonSettings) .settings(noPublishSettings) .settings( name := "coursier-bootstrap", @@ -359,13 +334,13 @@ lazy val bootstrap = project lazy val cli = project .dependsOn(coreJvm, cache) .settings(commonSettings) - .settings(noPublish210Settings) + .settings(noPublishForScalaVersionSettings("2.10")) .settings(packAutoSettings) .settings(proguardSettings) .settings( name := "coursier-cli", libraryDependencies ++= { - if (scalaVersion.value startsWith "2.10.") + if (scalaBinaryVersion.value == "2.10") Seq() else Seq("com.github.alexarchambault" %% "case-app" % "1.0.0-RC3") @@ -492,7 +467,7 @@ lazy val web = project .settings(noPublishSettings) .settings( libraryDependencies ++= { - if (scalaVersion.value startsWith "2.10.") + if (scalaBinaryVersion.value == "2.10") Seq() else Seq("com.github.japgolly.scalajs-react" %%% "core" % "0.9.0") @@ -500,7 +475,7 @@ lazy val web = project sourceDirectory := { val dir = sourceDirectory.value - if (scalaVersion.value startsWith "2.10.") + if (scalaBinaryVersion.value == "2.10") dir / "dummy" else dir @@ -529,13 +504,11 @@ lazy val doc = project // Don't try to compile that if you're not in 2.10 lazy val plugin = project .dependsOn(coreJvm, cache) - .settings(baseCommonSettings) - .settings(noPublish211Settings) + .settings(scalaVersionAgnosticCommonSettings) + .settings(noPublishForScalaVersionSettings("2.11")) .settings( name := "sbt-coursier", - sbtPlugin := { - scalaVersion.value.startsWith("2.10.") - }, + sbtPlugin := (scalaBinaryVersion.value == "2.10"), resolvers ++= Seq( // added so that 2.10 artifacts of the other modules can be found by // the too-naive-for-now inter-project resolver of the coursier SBT plugin diff --git a/core/shared/src/main/scala/coursier/util/Properties.scala b/core/jvm/src/main/scala/coursier/util/Properties.scala similarity index 100% rename from core/shared/src/main/scala/coursier/util/Properties.scala rename to core/jvm/src/main/scala/coursier/util/Properties.scala