mirror of https://github.com/sbt/sbt.git
Add Strict and Always support
This commit is contained in:
parent
5f2f6ac161
commit
aac1edb426
|
|
@ -17,10 +17,12 @@ private[sbt] object VersionSchemes {
|
|||
final val EarlySemVer = "early-semver"
|
||||
final val SemVerSpec = "semver-spec"
|
||||
final val PackVer = "pvp"
|
||||
final val Strict = "strict"
|
||||
final val Always = "always"
|
||||
|
||||
def validateScheme(value: String): Unit =
|
||||
value match {
|
||||
case EarlySemVer | SemVerSpec | PackVer => ()
|
||||
case EarlySemVer | SemVerSpec | PackVer | Strict | Always => ()
|
||||
case "semver" =>
|
||||
sys.error(
|
||||
s"""'semver' is ambiguous.
|
||||
|
|
|
|||
|
|
@ -161,10 +161,26 @@ object EvictionWarningOptions {
|
|||
}
|
||||
}
|
||||
|
||||
lazy val guessStrict
|
||||
: PartialFunction[(ModuleID, Option[ModuleID], Option[ScalaModuleInfo]), Boolean] = {
|
||||
case (m1, Some(m2), _) =>
|
||||
(m1.revision, m2.revision) match {
|
||||
case (VersionNumber(ns1, ts1, es1), VersionNumber(ns2, ts2, es2)) =>
|
||||
VersionNumber.Strict
|
||||
.isCompatible(VersionNumber(ns1, ts1, es1), VersionNumber(ns2, ts2, es2))
|
||||
case _ => false
|
||||
}
|
||||
}
|
||||
|
||||
lazy val guessFalse
|
||||
: PartialFunction[(ModuleID, Option[ModuleID], Option[ScalaModuleInfo]), Boolean] = {
|
||||
case (_, _, _) => false
|
||||
}
|
||||
|
||||
lazy val guessTrue
|
||||
: PartialFunction[(ModuleID, Option[ModuleID], Option[ScalaModuleInfo]), Boolean] = {
|
||||
case (_, _, _) => true
|
||||
}
|
||||
}
|
||||
|
||||
final class EvictionPair private[sbt] (
|
||||
|
|
@ -325,6 +341,10 @@ object EvictionWarning {
|
|||
})
|
||||
val schemeOpt = VersionSchemes.extractFromExtraAttributes(extraAttributes)
|
||||
val f = (winnerOpt, schemeOpt) match {
|
||||
case (Some(_), Some(VersionSchemes.Always)) =>
|
||||
EvictionWarningOptions.guessTrue
|
||||
case (Some(_), Some(VersionSchemes.Strict)) =>
|
||||
EvictionWarningOptions.guessStrict
|
||||
case (Some(_), Some(VersionSchemes.EarlySemVer)) =>
|
||||
EvictionWarningOptions.guessEarlySemVer
|
||||
case (Some(_), Some(VersionSchemes.SemVerSpec)) =>
|
||||
|
|
|
|||
Loading…
Reference in New Issue