From 0ea418e98599da553344950b0c4c617e16f12c49 Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Sat, 16 Jul 2011 12:53:29 -0400 Subject: [PATCH] provide better indication of cause of incompatible sbt versions --- ivy/ConflictWarning.scala | 6 +++--- main/Defaults.scala | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ivy/ConflictWarning.scala b/ivy/ConflictWarning.scala index f61f0f51f..758ebb07a 100644 --- a/ivy/ConflictWarning.scala +++ b/ivy/ConflictWarning.scala @@ -2,16 +2,16 @@ package sbt import DependencyFilter._ -final case class ConflictWarning(filter: ModuleFilter, group: ModuleID => String, level: Level.Value, failOnConflict: Boolean) +final case class ConflictWarning(label: String, filter: ModuleFilter, group: ModuleID => String, level: Level.Value, failOnConflict: Boolean) object ConflictWarning { - lazy val default: ConflictWarning = ConflictWarning( moduleFilter(organization = GlobFilter("org.scala-tools.sbt") | GlobFilter("org.scala-lang")), (_: ModuleID).organization, Level.Warn, false) + def default(label: String): ConflictWarning = ConflictWarning(label, moduleFilter(organization = GlobFilter("org.scala-tools.sbt") | GlobFilter("org.scala-lang")), (_: ModuleID).organization, Level.Warn, false) def apply(config: ConflictWarning, report: UpdateReport, log: Logger) { val conflicts = IvyActions.groupedConflicts(config.filter, config.group)(report) if(!conflicts.isEmpty) - log.log(config.level, "Potentially incompatible versions specified:") + log.log(config.level, "Potentially incompatible versions specified by " + config.label + ":") for( (label, versions) <- conflicts ) log.log(config.level, " " + label + ": " + versions.mkString(", ")) if(config.failOnConflict && !conflicts.isEmpty) diff --git a/main/Defaults.scala b/main/Defaults.scala index 624fba17c..5f510c671 100644 --- a/main/Defaults.scala +++ b/main/Defaults.scala @@ -580,7 +580,8 @@ object Classpaths publishLocal <<= publishTask(publishLocalConfiguration, deliverLocal) ) val baseSettings: Seq[Setting[_]] = Seq( - conflictWarning in GlobalScope :== ConflictWarning.default, + conflictWarning in GlobalScope :== ConflictWarning.default("global"), + conflictWarning <<= (thisProjectRef, conflictWarning) { (ref, cw) => cw.copy(label = Project.display(ref)) }, unmanagedBase <<= baseDirectory / "lib", normalizedName <<= name(StringUtilities.normalize), organization <<= organization or normalizedName.identity,