Skip to content

Commit

Permalink
don't warn when current sbt version doesn't match version in build.pr…
Browse files Browse the repository at this point in the history
…operties when version is set by system property.

mitigates sbt#4303
  • Loading branch information
jastice committed Aug 16, 2018
1 parent e313193 commit a50e351
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions main/src/main/scala/sbt/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -780,21 +780,30 @@ object BuiltinCommands {

def checkSBTVersionChanged(state: State): Unit = {
import sbt.io.syntax._
val app = state.configuration.provider
val sbtVersionProperty = "sbt.version"

// Don't warn if current version has been set in system properties
val sbtVersionSystemOpt =
Option(System.getProperty(sbtVersionProperty))

// the intention is to warn if build.properties file has changed during current sbt session
// a `reload` will not respect this change while `reboot` will.
val buildProps = state.baseDir / "project" / "build.properties"
// First try reading the sbt version from build.properties file.
val sbtVersionOpt = if (buildProps.exists) {
val sbtVersionBuildOpt = if (buildProps.exists) {
val buildProperties = new Properties()
IO.load(buildProperties, buildProps)
Option(buildProperties.getProperty("sbt.version"))
Option(buildProperties.getProperty(sbtVersionProperty))
} else None

val sbtVersionOpt = sbtVersionSystemOpt.orElse(sbtVersionBuildOpt)

val app = state.configuration.provider
sbtVersionOpt.foreach(
version =>
if (version != app.id.version()) {
state.log.warn(s"""sbt version mismatch, current: ${app.id
.version()}, in build.properties: "$version", use 'reboot' to use the new value.""")
}
}
)
}

Expand Down

0 comments on commit a50e351

Please sign in to comment.