More readability for processEvictions

This commit is contained in:
Adriaan Moors 2023-05-04 21:04:29 +02:00
parent 2821443c80
commit 87f8089ba8
1 changed files with 9 additions and 8 deletions

View File

@ -88,33 +88,34 @@ object EvictionError {
// https://github.com/sbt/sbt/issues/4946 // https://github.com/sbt/sbt/issues/4946
case p if p.winner.isDefined => case p if p.winner.isDefined =>
val winner = p.winner.get val winner = p.winner.get
def lookupUserDefined(org: String = "*", mod: String = "*") = def fromLibraryDependencySchemes(org: String = "*", mod: String = "*") =
userDefinedSchemes.get((org, mod)) userDefinedSchemes.get((org, mod))
def fromWinnerPom = VersionSchemes.extractFromExtraAttributes( def fromWinnerPom = VersionSchemes.extractFromExtraAttributes(
winner.extraAttributes.toMap ++ winner.module.extraAttributes winner.extraAttributes.toMap ++ winner.module.extraAttributes
) )
// prioritize user-defined version scheme to allow overriding the real scheme // prioritize user-defined version scheme to allow overriding the real scheme
val userDefinedSchemeOrFromPom = val userDefinedSchemeOrFromPom =
lookupUserDefined(p.organization, p.name) fromLibraryDependencySchemes(p.organization, p.name)
.orElse(lookupUserDefined(p.organization)) .orElse(fromLibraryDependencySchemes(p.organization))
.orElse(fromWinnerPom) .orElse(fromWinnerPom)
.orElse(lookupUserDefined()) .orElse(fromLibraryDependencySchemes())
val assumedScheme = val assumedScheme =
if (isNameScalaSuffixed(p.name)) assumedVersionScheme if (isNameScalaSuffixed(p.name)) assumedVersionScheme
else assumedVersionSchemeJava else assumedVersionSchemeJava
def hasIncompatibleVersionForScheme(scheme: Option[String]) = { def hasIncompatibleVersionForScheme(scheme: String) = {
val isCompat = val isCompat =
scheme.map(VersionSchemes.evalFunc).getOrElse(EvictionWarningOptions.guessTrue) VersionSchemes.evalFunc(scheme)
p.evicteds.exists { r => p.evicteds.exists { r =>
!isCompat((r.module, Some(winner.module), module.scalaModuleInfo)) !isCompat((r.module, Some(winner.module), module.scalaModuleInfo))
} }
} }
if (hasIncompatibleVersionForScheme(userDefinedSchemeOrFromPom)) val userDefinedSchemeOrAlways = userDefinedSchemeOrFromPom.getOrElse(VersionSchemes.Always)
if (hasIncompatibleVersionForScheme(userDefinedSchemeOrAlways))
incompatibleEvictions += (p -> userDefinedSchemeOrFromPom.getOrElse("?")) incompatibleEvictions += (p -> userDefinedSchemeOrFromPom.getOrElse("?"))
else if (hasIncompatibleVersionForScheme(Some(assumedScheme))) else if (hasIncompatibleVersionForScheme(assumedScheme))
assumedIncompatEvictions += (p -> assumedScheme) assumedIncompatEvictions += (p -> assumedScheme)
case _ => () case _ => ()