Merge pull request #317 from eed3si9n/wip/gigahorse

Flip the default to not use Gigahorse by default
This commit is contained in:
eugene yokota 2019-08-28 09:25:31 -04:00 committed by GitHub
commit 60b4356de1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 186 additions and 73 deletions

143
build.sbt
View File

@ -42,7 +42,9 @@ def commonSettings: Seq[Setting[_]] = Def.settings(
case _ => old ++ List("-Ywarn-unused", "-Ywarn-unused-import", "-YdisableFlatCpCaching") case _ => old ++ List("-Ywarn-unused", "-Ywarn-unused-import", "-YdisableFlatCpCaching")
} }
}, },
inCompileAndTest(scalacOptions in console --= Vector("-Ywarn-unused-import", "-Ywarn-unused", "-Xlint")), inCompileAndTest(
scalacOptions in console --= Vector("-Ywarn-unused-import", "-Ywarn-unused", "-Xlint")
),
scalafmtOnCompile := true, scalafmtOnCompile := true,
Test / scalafmtOnCompile := true, Test / scalafmtOnCompile := true,
publishArtifact in Compile := true, publishArtifact in Compile := true,
@ -52,10 +54,19 @@ def commonSettings: Seq[Setting[_]] = Def.settings(
val mimaSettings = Def settings ( val mimaSettings = Def settings (
mimaPreviousArtifacts := Set( mimaPreviousArtifacts := Set(
"1.0.0", "1.0.1", "1.0.2", "1.0.3", "1.0.4", "1.0.0",
"1.1.0", "1.1.1", "1.1.2", "1.1.3", "1.1.4", "1.0.1",
"1.0.2",
"1.0.3",
"1.0.4",
"1.1.0",
"1.1.1",
"1.1.2",
"1.1.3",
"1.1.4",
"1.2.0", "1.2.0",
) map (version => ) map (
version =>
organization.value %% moduleName.value % version organization.value %% moduleName.value % version
cross (if (crossPaths.value) CrossVersion.binary else CrossVersion.disabled) cross (if (crossPaths.value) CrossVersion.binary else CrossVersion.disabled)
), ),
@ -73,7 +84,8 @@ lazy val lmRoot = (project in file("."))
Some(ScmInfo(url(s"https://github.com/$slug"), s"git@github.com:$slug.git")) Some(ScmInfo(url(s"https://github.com/$slug"), s"git@github.com:$slug.git"))
}, },
bintrayPackage := "librarymanagement", bintrayPackage := "librarymanagement",
)), )
),
commonSettings, commonSettings,
name := "LM Root", name := "LM Root",
publish := {}, publish := {},
@ -134,33 +146,32 @@ lazy val lmCore = (project in file("core"))
mimaBinaryIssueFilters ++= Seq( mimaBinaryIssueFilters ++= Seq(
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.EvictionWarningOptions.this"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.EvictionWarningOptions.this"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.EvictionWarningOptions.copy"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.EvictionWarningOptions.copy"),
exclude[IncompatibleResultTypeProblem]("sbt.librarymanagement.EvictionWarningOptions.copy$default$7"), exclude[IncompatibleResultTypeProblem](
"sbt.librarymanagement.EvictionWarningOptions.copy$default$7"
),
// internal class moved // internal class moved
exclude[MissingClassProblem]("sbt.internal.librarymanagement.InlineConfigurationFunctions"), exclude[MissingClassProblem]("sbt.internal.librarymanagement.InlineConfigurationFunctions"),
// dropped internal class parent (InlineConfigurationFunctions) // dropped internal class parent (InlineConfigurationFunctions)
exclude[MissingTypesProblem]("sbt.librarymanagement.ModuleDescriptorConfiguration$"), exclude[MissingTypesProblem]("sbt.librarymanagement.ModuleDescriptorConfiguration$"),
// Configuration's copy method was never meant to be public // Configuration's copy method was never meant to be public
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Configuration.copy"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Configuration.copy"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Configuration.copy$default$*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Configuration.copy$default$*"),
// the data type copy methods were never meant to be public // the data type copy methods were never meant to be public
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.copy"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.copy"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.copy$default$*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.copy$default$*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleReportExtra.copy"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleReportExtra.copy"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleReportExtra.copy$default$*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleReportExtra.copy$default$*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilterExtra.copy"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilterExtra.copy"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilterExtra.copy$default$*"), exclude[DirectMissingMethodProblem](
"sbt.librarymanagement.ArtifactTypeFilterExtra.copy$default$*"
),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleIDExtra.copy"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleIDExtra.copy"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleIDExtra.copy$default$*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleIDExtra.copy$default$*"),
// these abstract classes are private[librarymanagement] so it's fine if they have more methods // these abstract classes are private[librarymanagement] so it's fine if they have more methods
exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.*"), exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.*"),
exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ModuleReportExtra.*"), exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ModuleReportExtra.*"),
exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilterExtra.*"), exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilterExtra.*"),
exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ModuleIDExtra.*"), exclude[ReversedMissingMethodProblem]("sbt.librarymanagement.ModuleIDExtra.*"),
// these abstract classes are private[librarymanagement] so they can lose these abstract methods // these abstract classes are private[librarymanagement] so they can lose these abstract methods
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.type"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.type"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.url"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.url"),
@ -170,9 +181,10 @@ lazy val lmCore = (project in file("core"))
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.classifier"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.classifier"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.extension"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactExtra.extension"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilterExtra.types"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilterExtra.types"),
// contraband issue // contraband issue
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ConfigurationReportLite.copy*"), exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.ConfigurationReportLite.copy*"
),
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.UpdateReportLite.copy*"), exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.UpdateReportLite.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Artifact.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Artifact.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilter.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ArtifactTypeFilter.copy*"),
@ -189,7 +201,9 @@ lazy val lmCore = (project in file("core"))
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.FileConfiguration.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.FileConfiguration.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.FileRepository.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.FileRepository.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Full.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.Full.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.GetClassifiersConfiguration.copy*"), exclude[DirectMissingMethodProblem](
"sbt.librarymanagement.GetClassifiersConfiguration.copy*"
),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.GetClassifiersModule.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.GetClassifiersModule.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.InclExclRule.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.InclExclRule.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.IvyFileConfiguration.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.IvyFileConfiguration.copy*"),
@ -198,7 +212,9 @@ lazy val lmCore = (project in file("core"))
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.MavenCache.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.MavenCache.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.MavenRepo.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.MavenRepo.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleConfiguration.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleConfiguration.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleDescriptorConfiguration.copy*"), exclude[DirectMissingMethodProblem](
"sbt.librarymanagement.ModuleDescriptorConfiguration.copy*"
),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleID.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleID.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleInfo.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleInfo.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleReport.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ModuleReport.copy*"),
@ -218,6 +234,10 @@ lazy val lmCore = (project in file("core"))
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.UpdateReport.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.UpdateReport.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.UpdateStats.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.UpdateStats.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.URLRepository.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.URLRepository.copy*"),
// private[sbt]
exclude[DirectMissingMethodProblem](
"sbt.librarymanagement.ResolverFunctions.useSecureResolvers"
),
), ),
) )
.configure(addSbtIO, addSbtUtilLogging, addSbtUtilPosition, addSbtUtilCache) .configure(addSbtIO, addSbtUtilLogging, addSbtUtilPosition, addSbtUtilCache)
@ -242,33 +262,68 @@ lazy val lmIvy = (project in file("ivy"))
Vector("-Ywarn-unused-import", "-Ywarn-unused", "-Xlint"), Vector("-Ywarn-unused-import", "-Ywarn-unused", "-Xlint"),
mimaSettings, mimaSettings,
mimaBinaryIssueFilters ++= Seq( mimaBinaryIssueFilters ++= Seq(
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"), exclude[DirectMissingMethodProblem](
exclude[IncompatibleMethTypeProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"), "sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.checkStatusCode"), ),
exclude[IncompatibleMethTypeProblem](
"sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"
),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.checkStatusCode"
),
// sbt.internal methods that changed type signatures and aren't used elsewhere in production code // sbt.internal methods that changed type signatures and aren't used elsewhere in production code
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.IvySbt#ParallelCachedResolutionResolveEngine.mergeErrors"), exclude[DirectMissingMethodProblem](
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.IvySbt.cleanCachedResolutionCache"), "sbt.internal.librarymanagement.IvySbt#ParallelCachedResolutionResolveEngine.mergeErrors"
),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.IvySbt.cleanCachedResolutionCache"
),
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.IvyRetrieve.artifacts"), exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.IvyRetrieve.artifacts"),
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.IvyScalaUtil.checkModule"), exclude[DirectMissingMethodProblem](
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeErrors"), "sbt.internal.librarymanagement.IvyScalaUtil.checkModule"
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.CachedResolutionResolveCache.buildArtificialModuleDescriptor"), ),
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.CachedResolutionResolveCache.buildArtificialModuleDescriptors"), exclude[DirectMissingMethodProblem](
exclude[ReversedMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeErrors"), "sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeErrors"
),
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"), exclude[DirectMissingMethodProblem](
exclude[IncompatibleMethTypeProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"), "sbt.internal.librarymanagement.ivyint.CachedResolutionResolveCache.buildArtificialModuleDescriptor"
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.checkStatusCode"), ),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.ivyint.CachedResolutionResolveCache.buildArtificialModuleDescriptors"
),
exclude[ReversedMissingMethodProblem](
"sbt.internal.librarymanagement.ivyint.CachedResolutionResolveEngine.mergeErrors"
),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"
),
exclude[IncompatibleMethTypeProblem](
"sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler#SbtUrlInfo.this"
),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.checkStatusCode"
),
// contraband issue // contraband issue
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ivy.ExternalIvyConfiguration.copy*"), exclude[DirectMissingMethodProblem](
"sbt.librarymanagement.ivy.ExternalIvyConfiguration.copy*"
),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ivy.InlineIvyConfiguration.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ivy.InlineIvyConfiguration.copy*"),
exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ivy.IvyPaths.copy*"), exclude[DirectMissingMethodProblem]("sbt.librarymanagement.ivy.IvyPaths.copy*"),
exclude[DirectMissingMethodProblem](
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.urlFactory"), "sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.urlFactory"
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.http"), ),
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.open"), exclude[DirectMissingMethodProblem](
exclude[DirectMissingMethodProblem]("sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.this"), "sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.http"
),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.open"
),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.ivyint.GigahorseUrlHandler.this"
),
exclude[DirectMissingMethodProblem](
"sbt.internal.librarymanagement.CustomPomParser.versionRangeFlag"
),
), ),
) )
@ -278,11 +333,13 @@ lazy val lmScriptedTest = (project in file("scripted-test"))
commonSettings, commonSettings,
skip in publish := true, skip in publish := true,
name := "scripted-test", name := "scripted-test",
scriptedLaunchOpts := { scriptedLaunchOpts.value ++ scriptedLaunchOpts := {
scriptedLaunchOpts.value ++
Seq("-Xmx1024M", "-Dplugin.version=" + version.value) Seq("-Xmx1024M", "-Dplugin.version=" + version.value)
}, },
scriptedBufferLog := false scriptedBufferLog := false
).enablePlugins(SbtScriptedIT) )
.enablePlugins(SbtScriptedIT)
// we are updating the nightly process, so we are commenting this out for now // we are updating the nightly process, so we are commenting this out for now
// addCommandAlias("scriptedIvy", Seq( // addCommandAlias("scriptedIvy", Seq(
@ -303,14 +360,16 @@ def customCommands: Seq[Setting[_]] = Seq(
} }
) )
inThisBuild(Seq( inThisBuild(
Seq(
whitesourceProduct := "Lightbend Reactive Platform", whitesourceProduct := "Lightbend Reactive Platform",
whitesourceAggregateProjectName := "sbt-lm-master", whitesourceAggregateProjectName := "sbt-lm-master",
whitesourceAggregateProjectToken := "9bde4ccbaab7401a91f8cda337af84365d379e13abaf473b85cb16e3f5c65cb6", whitesourceAggregateProjectToken := "9bde4ccbaab7401a91f8cda337af84365d379e13abaf473b85cb16e3f5c65cb6",
whitesourceIgnoredScopes += "scalafmt", whitesourceIgnoredScopes += "scalafmt",
whitesourceFailOnError := sys.env.contains("WHITESOURCE_PASSWORD"), // fail if pwd is present whitesourceFailOnError := sys.env.contains("WHITESOURCE_PASSWORD"), // fail if pwd is present
whitesourceForceCheckAllDependencies := true, whitesourceForceCheckAllDependencies := true,
)) )
)
def inCompileAndTest(ss: SettingsDefinition*): Seq[Setting[_]] = def inCompileAndTest(ss: SettingsDefinition*): Seq[Setting[_]] =
Seq(Compile, Test) flatMap (inConfig(_)(Def.settings(ss: _*))) Seq(Compile, Test) flatMap (inConfig(_)(Def.settings(ss: _*)))

View File

@ -0,0 +1,63 @@
/*
* sbt
* Copyright 2011 - 2018, Lightbend, Inc.
* Copyright 2008 - 2010, Mark Harrah
* Licensed under Apache License 2.0 (see LICENSE)
*/
package sbt
package internal
package librarymanagement
import java.util.Locale
import scala.util.control.NonFatal
object LMSysProp {
def booleanOpt(name: String): Option[Boolean] =
sys.props.get(name).flatMap { x =>
x.toLowerCase(Locale.ENGLISH) match {
case "1" | "always" | "true" => Some(true)
case "0" | "never" | "false" => Some(false)
case "auto" => None
case _ => None
}
}
def getOrFalse(name: String): Boolean = booleanOpt(name).getOrElse(false)
def getOrTrue(name: String): Boolean = booleanOpt(name).getOrElse(true)
// System property style:
// 1. use sbt. prefix
// 2. prefer short nouns
// 3. use dot for namespacing, and avoid making dot-separated English phrase
// 4. make active/enable properties, instead of "sbt.disable."
//
// Good: sbt.offline
//
// Bad:
// sbt.disable.interface.classloader.cache
// sbt.task.timings.on.shutdown
// sbt.skip.version.write -> sbt.genbuildprops=false
val useSecureResolvers: Boolean = getOrTrue("sbt.repository.secure")
lazy val modifyVersionRange: Boolean = getOrTrue("sbt.modversionrange")
lazy val isJavaVersion9Plus: Boolean = javaVersion > 8
lazy val javaVersion: Int = {
try {
// See Oracle section 1.5.3 at:
// https://docs.oracle.com/javase/8/docs/technotes/guides/versioning/spec/versioning2.html
val version = sys.props("java.specification.version").split("\\.").toList.map(_.toInt)
version match {
case 1 :: minor :: _ => minor
case major :: _ => major
case _ => 0
}
} catch {
case NonFatal(_) => 0
}
}
lazy val useGigahorse: Boolean = getOrFalse("sbt.gigahorse")
}

View File

@ -4,6 +4,7 @@ import sbt.librarymanagement.VersionNumber
import sbt.internal.librarymanagement.SemSelOperator.{ Lt, Lte, Gt, Gte, Eq } import sbt.internal.librarymanagement.SemSelOperator.{ Lt, Lte, Gt, Gte, Eq }
import scala.annotation.tailrec import scala.annotation.tailrec
import java.util.Locale
private[librarymanagement] abstract class SemSelAndChunkFunctions { private[librarymanagement] abstract class SemSelAndChunkFunctions {
protected def parse(andClauseToken: String): SemSelAndChunk = { protected def parse(andClauseToken: String): SemSelAndChunk = {
@ -126,7 +127,8 @@ private[librarymanagement] abstract class SemComparatorExtra {
case (true, true) => implicitly[Ordering[Long]].compare(ts1head.toLong, ts2head.toLong) case (true, true) => implicitly[Ordering[Long]].compare(ts1head.toLong, ts2head.toLong)
case (false, true) => 1 case (false, true) => 1
case (true, false) => -1 case (true, false) => -1
case (false, false) => ts1head.toLowerCase.compareTo(ts2head.toLowerCase) case (false, false) =>
ts1head.toLowerCase(Locale.ENGLISH).compareTo(ts2head.toLowerCase(Locale.ENGLISH))
} }
if (cmp == 0) compareTags(ts1.tail, ts2.tail) if (cmp == 0) compareTags(ts1.tail, ts2.tail)
else cmp else cmp

View File

@ -95,8 +95,7 @@ private[sbt] class FakeRepository(resolver: AnyRef, name: String) extends xsbti.
} }
private[librarymanagement] abstract class ResolverFunctions { private[librarymanagement] abstract class ResolverFunctions {
private[sbt] def useSecureResolvers = import sbt.internal.librarymanagement.LMSysProp.useSecureResolvers
sys.props.get("sbt.repository.secure") map { _.toLowerCase == "true" } getOrElse true
val TypesafeRepositoryRoot = typesafeRepositoryRoot(useSecureResolvers) val TypesafeRepositoryRoot = typesafeRepositoryRoot(useSecureResolvers)
val SbtRepositoryRoot = sbtRepositoryRoot(useSecureResolvers) val SbtRepositoryRoot = sbtRepositoryRoot(useSecureResolvers)

View File

@ -242,9 +242,6 @@ object CustomPomParser {
transform(dd, _ => newId) transform(dd, _ => newId)
case None => dd case None => dd
} }
private[sbt] lazy val versionRangeFlag = sys.props.get("sbt.modversionrange") map {
_.toLowerCase == "true"
} getOrElse true
import collection.JavaConverters._ import collection.JavaConverters._
def addExtra( def addExtra(
@ -281,7 +278,7 @@ object CustomPomParser {
addExtra(dd, dependencyExtra) addExtra(dd, dependencyExtra)
} }
val withVersionRangeMod: Seq[DependencyDescriptor] = val withVersionRangeMod: Seq[DependencyDescriptor] =
if (versionRangeFlag) withExtra map { stripVersionRange } else withExtra if (LMSysProp.modifyVersionRange) withExtra map { stripVersionRange } else withExtra
val unique = IvySbt.mergeDuplicateDefinitions(withVersionRangeMod) val unique = IvySbt.mergeDuplicateDefinitions(withVersionRangeMod)
unique foreach dmd.addDependency unique foreach dmd.addDependency

View File

@ -15,7 +15,8 @@ object ErrorMessageAuthenticator {
private var securityWarningLogged = false private var securityWarningLogged = false
private def originalAuthenticator: Option[Authenticator] = { private def originalAuthenticator: Option[Authenticator] = {
if (isJavaVersion9Plus) getDefaultAuthenticator else getTheAuthenticator if (LMSysProp.isJavaVersion9Plus) getDefaultAuthenticator
else getTheAuthenticator
} }
private[this] def getTheAuthenticator: Option[Authenticator] = { private[this] def getTheAuthenticator: Option[Authenticator] = {
@ -100,15 +101,6 @@ object ErrorMessageAuthenticator {
} }
doInstallIfIvy(originalAuthenticator) doInstallIfIvy(originalAuthenticator)
} }
private[this] def isJavaVersion9Plus = javaVersion > 8
private[this] def javaVersion = {
// See Oracle section 1.5.3 at:
// https://docs.oracle.com/javase/8/docs/technotes/guides/versioning/spec/versioning2.html
val version = sys.props("java.specification.version").split("\\.").map(_.toInt)
if (version(0) == 1) version(1) else version(0)
}
} }
/** /**

View File

@ -4,6 +4,7 @@ package ivy
import org.apache.ivy.plugins.resolver.DependencyResolver import org.apache.ivy.plugins.resolver.DependencyResolver
import org.apache.ivy.core.settings.IvySettings import org.apache.ivy.core.settings.IvySettings
import sbt.util.Logger import sbt.util.Logger
import sbt.internal.librarymanagement.LMSysProp
/** /**
* Represents configurable options for update task. * Represents configurable options for update task.
@ -109,7 +110,7 @@ object UpdateOptions {
interProjectFirst = true, interProjectFirst = true,
latestSnapshots = true, latestSnapshots = true,
cachedResolution = false, cachedResolution = false,
gigahorse = sys.props.get("sbt.gigahorse") map { _.toLowerCase == "true" } getOrElse true, gigahorse = LMSysProp.useGigahorse,
resolverConverter = PartialFunction.empty, resolverConverter = PartialFunction.empty,
moduleResolvers = Map.empty moduleResolvers = Map.empty
) )