diff --git a/MIGRATION.md b/MIGRATION.md index eeeef930d..190310c93 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -6,10 +6,11 @@ Migration notes - `Project(...)` constructor is restricted down to two parameters. Use `project` instead. - `sbt.Plugin` is also gone. Use auto plugins. - The incremental compiler, called Zinc, uses class-based name hashing. -- Zinc drops support for Scala 2.8.x and 2.9.x. +- Zinc drops support for Scala 2.8.x, 2.9.x., 2.11.1 and below. - Removed the pre-0.13.7 *.sbt file parser (previously available under `-Dsbt.parser.simple=true`) - Removed old, hyphen-separated key names (use `publishLocal` instead of `publish-local`) - Removes no-longer-documented old operators `<<=`, `<+=`, and `<++=`. - Renames early command feature from `--` to `early()`. - Log options `-error`, `-warn`, `-info`, `-debug` are added as shorthand for `"early(error)"` etc. - `sbt.Process` and `sbt.ProcessExtra` are gone. Use `scala.sys.process` instead. +- `incOptions.value.withNameHashing(...)` option is removed. diff --git a/main-actions/src/main/scala/sbt/Compiler.scala b/main-actions/src/main/scala/sbt/Compiler.scala index 5a5f70493..f2a1a5f74 100644 --- a/main-actions/src/main/scala/sbt/Compiler.scala +++ b/main-actions/src/main/scala/sbt/Compiler.scala @@ -4,12 +4,12 @@ package sbt import sbt.internal.inc.javac.JavaTools -import sbt.internal.inc.{ AnalyzingCompiler, ComponentCompiler, ScalaInstance } +import sbt.internal.inc.{ AnalyzingCompiler, ComponentCompiler, ScalaInstance, ZincComponentManager, IncrementalCompilerImpl } import xsbti.{ Logger => _, _ } import xsbti.compile.{ ClasspathOptions, Compilers, CompileResult, Inputs } import java.io.File -import sbt.internal.librarymanagement.{ ComponentManager, IvyConfiguration } +import sbt.internal.librarymanagement.IvyConfiguration import sbt.librarymanagement.{ ModuleID, VersionNumber } import sbt.util.Logger import sbt.internal.util.CacheStore @@ -18,12 +18,18 @@ object Compiler { val DefaultMaxErrors = 100 private[sbt] def defaultCompilerBridgeSource(sv: String): ModuleID = VersionNumber(sv) match { + // 2.10 and before case VersionNumber(ns, _, _) if (ns.size == 3) && (ns(0) == 2) && (ns(1) <= 10) => scalaCompilerBridgeSource2_10 + // 2.11 + case VersionNumber(ns, _, _) if (ns.size == 3) && (ns(0) == 2) && (ns(1) == 11) => scalaCompilerBridgeSource2_11 case _ => scalaCompilerBridgeSource2_12 } private[sbt] def scalaCompilerBridgeSource2_10: ModuleID = ModuleID(xsbti.ArtifactInfo.SbtOrganization, "compiler-bridge_2.10", ComponentCompiler.incrementalVersion).withConfigurations(Some("component")).sources() + private[sbt] def scalaCompilerBridgeSource2_11: ModuleID = + ModuleID(xsbti.ArtifactInfo.SbtOrganization, "compiler-bridge_2.11", + ComponentCompiler.incrementalVersion).withConfigurations(Some("component")).sources() private[sbt] def scalaCompilerBridgeSource2_12: ModuleID = ModuleID(xsbti.ArtifactInfo.SbtOrganization, "compiler-bridge_2.12", ComponentCompiler.incrementalVersion).withConfigurations(Some("component")).sources() @@ -125,14 +131,15 @@ object Compiler { def scalaCompiler(instance: ScalaInstance, cpOptions: ClasspathOptions, javaHome: Option[File], ivyConfiguration: IvyConfiguration, fileToStore: File => CacheStore, sourcesModule: ModuleID)(implicit app: AppConfiguration, log: Logger): AnalyzingCompiler = { val launcher = app.provider.scalaProvider.launcher - val componentManager = new ComponentManager(launcher.globalLock, app.provider.components, Option(launcher.ivyHome), log) + val componentManager = new ZincComponentManager(launcher.globalLock, app.provider.components, Option(launcher.ivyHome), log) val provider = ComponentCompiler.interfaceProvider(componentManager, ivyConfiguration, fileToStore, sourcesModule) new AnalyzingCompiler(instance, provider, cpOptions, _ => (), None) } + private val compiler = new IncrementalCompilerImpl def compile(in: Inputs, log: Logger): CompileResult = { - sbt.inc.IncrementalCompilerUtil.defaultIncrementalCompiler.compile(in, log) + compiler.compile(in, log) // import in.inputs.config._ // compile(in, log, new LoggerReporter(maxErrors, log, sourcePositionMapper)) } diff --git a/main-actions/src/main/scala/sbt/Doc.scala b/main-actions/src/main/scala/sbt/Doc.scala index 513525e60..6a1e020d7 100644 --- a/main-actions/src/main/scala/sbt/Doc.scala +++ b/main-actions/src/main/scala/sbt/Doc.scala @@ -15,6 +15,7 @@ import xsbti.Reporter import xsbti.compile.JavaTools import sbt.util.Logger +import sbt.internal.util.ManagedLogger object Doc { import RawCompileLike._ @@ -36,16 +37,16 @@ object Doc { val javaSourcesOnly: File => Boolean = _.getName.endsWith(".java") private[sbt] final class Scaladoc(maximumErrors: Int, compiler: AnalyzingCompiler) extends Doc { - def apply(label: String, sources: Seq[File], classpath: Seq[File], outputDirectory: File, options: Seq[String], log: Logger): Unit = { + def apply(label: String, sources: Seq[File], classpath: Seq[File], outputDirectory: File, options: Seq[String], log: ManagedLogger): Unit = { generate("Scala", label, compiler.doc, sources, classpath, outputDirectory, options, maximumErrors, log) } } } sealed trait Doc { - type Gen = (Seq[File], Seq[File], File, Seq[String], Int, Logger) => Unit + type Gen = (Seq[File], Seq[File], File, Seq[String], Int, ManagedLogger) => Unit - private[sbt] final def generate(variant: String, label: String, docf: Gen, sources: Seq[File], classpath: Seq[File], outputDirectory: File, options: Seq[String], maxErrors: Int, log: Logger): Unit = { + private[sbt] final def generate(variant: String, label: String, docf: Gen, sources: Seq[File], classpath: Seq[File], outputDirectory: File, options: Seq[String], maxErrors: Int, log: ManagedLogger): Unit = { val logSnip = variant + " API documentation" if (sources.isEmpty) log.info("No sources available, skipping " + logSnip + "...") diff --git a/main-actions/src/main/scala/sbt/RawCompileLike.scala b/main-actions/src/main/scala/sbt/RawCompileLike.scala index 85c4e4b5d..1fa3198d5 100644 --- a/main-actions/src/main/scala/sbt/RawCompileLike.scala +++ b/main-actions/src/main/scala/sbt/RawCompileLike.scala @@ -18,9 +18,10 @@ import sbt.internal.util.FileInfo.{ exists, hash, lastModified } import xsbti.compile.ClasspathOptions import sbt.util.Logger +import sbt.internal.util.ManagedLogger object RawCompileLike { - type Gen = (Seq[File], Seq[File], File, Seq[String], Int, Logger) => Unit + type Gen = (Seq[File], Seq[File], File, Seq[String], Int, ManagedLogger) => Unit private def optionFiles(options: Seq[String], fileInputOpts: Seq[String]): List[File] = { diff --git a/main-command/src/main/contraband-scala/CommandSourceFormats.scala b/main-command/src/main/contraband-scala/CommandSourceFormats.scala index 9944196b4..f6285e7ee 100644 --- a/main-command/src/main/contraband-scala/CommandSourceFormats.scala +++ b/main-command/src/main/contraband-scala/CommandSourceFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/main-command/src/main/contraband-scala/ExecFormats.scala b/main-command/src/main/contraband-scala/ExecFormats.scala index 98a0961a4..f690dac01 100644 --- a/main-command/src/main/contraband-scala/ExecFormats.scala +++ b/main-command/src/main/contraband-scala/ExecFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/main-command/src/main/contraband-scala/sbt/CommandSource.scala b/main-command/src/main/contraband-scala/sbt/CommandSource.scala index 08b399ea1..ca7449477 100644 --- a/main-command/src/main/contraband-scala/sbt/CommandSource.scala +++ b/main-command/src/main/contraband-scala/sbt/CommandSource.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/main-command/src/main/contraband-scala/sbt/Exec.scala b/main-command/src/main/contraband-scala/sbt/Exec.scala index ac3323c35..df9f763a5 100644 --- a/main-command/src/main/contraband-scala/sbt/Exec.scala +++ b/main-command/src/main/contraband-scala/sbt/Exec.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala b/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala index 4df971c13..6fb159445 100644 --- a/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala +++ b/main-command/src/main/scala/sbt/internal/client/NetworkClient.scala @@ -11,7 +11,7 @@ import java.util.concurrent.atomic.{ AtomicBoolean, AtomicReference } import scala.collection.mutable.ListBuffer import scala.util.control.NonFatal import sbt.protocol._ -import sbt.internal.util.{ JLine, ChannelLogEntry, ConsoleAppender } +import sbt.internal.util.{ JLine, StringEvent, ConsoleAppender } import sbt.util.Level class NetworkClient(arguments: List[String]) { self => @@ -47,7 +47,7 @@ class NetworkClient(arguments: List[String]) { self => val socket = new Socket(InetAddress.getByName(host), port) new ServerConnection(socket) { override def onEvent(event: EventMessage): Unit = self.onEvent(event) - override def onLogEntry(event: ChannelLogEntry): Unit = self.onLogEntry(event) + override def onLogEntry(event: StringEvent): Unit = self.onLogEntry(event) override def onShutdown(): Unit = { running.set(false) @@ -55,7 +55,7 @@ class NetworkClient(arguments: List[String]) { self => } } - def onLogEntry(event: ChannelLogEntry): Unit = + def onLogEntry(event: StringEvent): Unit = { val level = event.level match { case "debug" => Level.Debug diff --git a/main-command/src/main/scala/sbt/internal/client/ServerConnection.scala b/main-command/src/main/scala/sbt/internal/client/ServerConnection.scala index 793fbf04f..a274548b8 100644 --- a/main-command/src/main/scala/sbt/internal/client/ServerConnection.scala +++ b/main-command/src/main/scala/sbt/internal/client/ServerConnection.scala @@ -8,7 +8,7 @@ package client import java.net.{ SocketTimeoutException, Socket } import java.util.concurrent.atomic.AtomicBoolean import sbt.protocol._ -import sbt.internal.util.ChannelLogEntry +import sbt.internal.util.StringEvent abstract class ServerConnection(connection: Socket) { @@ -41,8 +41,8 @@ abstract class ServerConnection(connection: Socket) { println(s"Got invalid chunk from server: $s \n" + errorDesc) }, _ match { - case event: EventMessage => onEvent(event) - case event: ChannelLogEntry => onLogEntry(event) + case event: EventMessage => onEvent(event) + case event: StringEvent => onLogEntry(event) } ) } @@ -65,7 +65,7 @@ abstract class ServerConnection(connection: Socket) { } def onEvent(event: EventMessage): Unit - def onLogEntry(event: ChannelLogEntry): Unit + def onLogEntry(event: StringEvent): Unit def onShutdown(): Unit diff --git a/main-settings/src/main/scala/sbt/Def.scala b/main-settings/src/main/scala/sbt/Def.scala index 18062bb71..3132d9898 100644 --- a/main-settings/src/main/scala/sbt/Def.scala +++ b/main-settings/src/main/scala/sbt/Def.scala @@ -1,7 +1,8 @@ package sbt import sbt.internal.util.Types.const -import sbt.internal.util.{ Attributed, AttributeKey, Init, Show } +import sbt.internal.util.{ Attributed, AttributeKey, Init } +import sbt.util.Show import sbt.internal.util.complete.Parser import java.io.File import java.net.URI @@ -21,16 +22,16 @@ object Def extends Init[Scope] with TaskMacroExtra { lazy val showFullKey: Show[ScopedKey[_]] = showFullKey(None) def showFullKey(keyNameColor: Option[String]): Show[ScopedKey[_]] = - new Show[ScopedKey[_]] { def apply(key: ScopedKey[_]) = displayFull(key, keyNameColor) } + Show[ScopedKey[_]]((key: ScopedKey[_]) => displayFull(key, keyNameColor)) + + def showRelativeKey(current: ProjectRef, multi: Boolean, keyNameColor: Option[String] = None): Show[ScopedKey[_]] = + Show[ScopedKey[_]]((key: ScopedKey[_]) => + Scope.display(key.scope, colored(key.key.label, keyNameColor), ref => displayRelative(current, multi, ref))) + + def showBuildRelativeKey(currentBuild: URI, multi: Boolean, keyNameColor: Option[String] = None): Show[ScopedKey[_]] = + Show[ScopedKey[_]]((key: ScopedKey[_]) => + Scope.display(key.scope, colored(key.key.label, keyNameColor), ref => displayBuildRelative(currentBuild, multi, ref))) - def showRelativeKey(current: ProjectRef, multi: Boolean, keyNameColor: Option[String] = None): Show[ScopedKey[_]] = new Show[ScopedKey[_]] { - def apply(key: ScopedKey[_]) = - Scope.display(key.scope, colored(key.key.label, keyNameColor), ref => displayRelative(current, multi, ref)) - } - def showBuildRelativeKey(currentBuild: URI, multi: Boolean, keyNameColor: Option[String] = None): Show[ScopedKey[_]] = new Show[ScopedKey[_]] { - def apply(key: ScopedKey[_]) = - Scope.display(key.scope, colored(key.key.label, keyNameColor), ref => displayBuildRelative(currentBuild, multi, ref)) - } def displayRelative(current: ProjectRef, multi: Boolean, project: Reference): String = project match { case BuildRef(current.build) => "{.}/" case `current` => if (multi) current.project + "/" else "" diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 02057f4b1..910f1d6ea 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -25,7 +25,7 @@ import sbt.librarymanagement.{ `package` => _, _ } import sbt.internal.librarymanagement._ import sbt.internal.librarymanagement.syntax._ import sbt.internal.util._ -import sbt.util.{ Level, Logger } +import sbt.util.{ Level, Logger, ShowLines } import scala.xml.NodeSeq import scala.util.control.NonFatal @@ -510,7 +510,7 @@ object Defaults extends BuildCommon { testResultLogger in (Test, test) :== TestResultLogger.SilentWhenNoTests, // https://github.com/sbt/sbt/issues/1185 test := { val trl = (testResultLogger in (Test, test)).value - val taskName = Project.showContextKey(state.value)(resolvedScoped.value) + val taskName = Project.showContextKey(state.value).show(resolvedScoped.value) trl.run(streams.value.log, executeTests.value, taskName) }, testOnly := inputTests(testOnly).evaluated, @@ -595,7 +595,7 @@ object Defaults extends BuildCommon { rel.internalClassDeps(c).map(intlStamp(_, analysis, s + c)) ++ rel.externalDeps(c).map(stamp) + (apis.internal.get(c) match { - case Some(x) => x.compilation.startTime + case Some(x) => x.compilationTimestamp case _ => Long.MinValue }) }.max @@ -627,7 +627,7 @@ object Defaults extends BuildCommon { val modifiedOpts = Tests.Filters(filter(selected)) +: Tests.Argument(frameworkOptions: _*) +: config.options val newConfig = config.copy(options = modifiedOpts) val output = allTestGroupsTask(s, loadedTestFrameworks.value, testLoader.value, testGrouping.value, newConfig, fullClasspath.value, javaHome.value, testForkedParallel.value, javaOptions.value) - val taskName = display(resolvedScoped.value) + val taskName = display.show(resolvedScoped.value) val trl = testResultLogger.value val processed = output.map(out => trl.run(s.log, out, taskName)) processed @@ -1121,7 +1121,7 @@ object Defaults extends BuildCommon { val spms = sourcePositionMappers.value val problems = analysis.infos.allInfos.values.flatMap(i => i.reportedProblems ++ i.unreportedProblems) val reporter = new LoggerReporter(max, streams.value.log, Compiler.foldMappers(spms)) - problems foreach { p => reporter.display(p.position, p.message, p.severity) } + problems foreach { p => reporter.display(p) } } def sbtPluginExtra(m: ModuleID, sbtV: String, scalaV: String): ModuleID = @@ -2005,7 +2005,7 @@ object Classpaths { val analysisOpt = previousCompile.value.analysis dirs map { x => (x, if (analysisOpt.isDefined) analysisOpt.get - else Analysis.empty(true)) + else Analysis.empty) } } } @@ -2027,7 +2027,7 @@ object Classpaths { val analysisOpt = previousCompile.value.analysis Seq(jar) map { x => (x, if (analysisOpt.isDefined) analysisOpt.get - else Analysis.empty(true)) + else Analysis.empty) } } } diff --git a/main/src/main/scala/sbt/EvaluateTask.scala b/main/src/main/scala/sbt/EvaluateTask.scala index 08d2571ea..d10ea5ba8 100644 --- a/main/src/main/scala/sbt/EvaluateTask.scala +++ b/main/src/main/scala/sbt/EvaluateTask.scala @@ -4,8 +4,8 @@ package sbt import sbt.internal.{ Load, BuildStructure, TaskTimings, TaskName, GCUtil } -import sbt.internal.util.{ Attributed, ErrorHandling, HList, RMap, Show, Signals, Types } -import sbt.util.Logger +import sbt.internal.util.{ Attributed, ErrorHandling, HList, RMap, Signals, Types } +import sbt.util.{ Logger, Show } import sbt.librarymanagement.{ Resolver, UpdateReport } import scala.concurrent.duration.Duration @@ -288,12 +288,12 @@ object EvaluateTask { val msgString = (msg.toList ++ ex.toList.map(ErrorHandling.reducedToString)).mkString("\n\t") val log = getStreams(key, streams).log val display = contextDisplay(state, log.ansiCodesSupported) - log.error("(" + display(key) + ") " + msgString) + log.error("(" + display.show(key) + ") " + msgString) } } private[this] def contextDisplay(state: State, highlight: Boolean) = Project.showContextKey(state, if (highlight) Some(RED) else None) def suppressedMessage(key: ScopedKey[_])(implicit display: Show[ScopedKey[_]]): String = - "Stack trace suppressed. Run 'last %s' for the full log.".format(display(key)) + "Stack trace suppressed. Run 'last %s' for the full log.".format(display.show(key)) def getStreams(key: ScopedKey[_], streams: Streams): TaskStreams = streams(ScopedKey(Project.fillTaskAxis(key).scope, Keys.streams.key)) diff --git a/main/src/main/scala/sbt/Extracted.scala b/main/src/main/scala/sbt/Extracted.scala index c32d4cef0..ff3ea9cb2 100644 --- a/main/src/main/scala/sbt/Extracted.scala +++ b/main/src/main/scala/sbt/Extracted.scala @@ -5,7 +5,8 @@ import Project._ import Scope.GlobalScope import Def.{ ScopedKey, Setting } import sbt.internal.util.complete.Parser -import sbt.internal.util.{ AttributeKey, Show } +import sbt.internal.util.AttributeKey +import sbt.util.Show import std.Transform.DummyTaskMap final case class Extracted(structure: BuildStructure, session: SessionSettings, currentRef: ProjectRef)(implicit val showKey: Show[ScopedKey[_]]) { @@ -96,9 +97,9 @@ final case class Extracted(structure: BuildStructure, session: SessionSettings, private[this] def resolve[T](key: ScopedKey[T]): ScopedKey[T] = Project.mapScope(Scope.resolveScope(GlobalScope, currentRef.build, rootProject))(key.scopedKey) private def getOrError[T](scope: Scope, key: AttributeKey[_], value: Option[T])(implicit display: Show[ScopedKey[_]]): T = - value getOrElse sys.error(display(ScopedKey(scope, key)) + " is undefined.") + value getOrElse sys.error(display.show(ScopedKey(scope, key)) + " is undefined.") private def getOrError[T](scope: Scope, key: AttributeKey[T])(implicit display: Show[ScopedKey[_]]): T = - structure.data.get(scope, key) getOrElse sys.error(display(ScopedKey(scope, key)) + " is undefined.") + structure.data.get(scope, key) getOrElse sys.error(display.show(ScopedKey(scope, key)) + " is undefined.") def append(settings: Seq[Setting[_]], state: State): State = { diff --git a/main/src/main/scala/sbt/Project.scala b/main/src/main/scala/sbt/Project.scala index 995a864c9..87a429e2a 100755 --- a/main/src/main/scala/sbt/Project.scala +++ b/main/src/main/scala/sbt/Project.scala @@ -11,11 +11,11 @@ import Keys.{ stateBuildStructure, commands, configuration, historyPath, project import Scope.{ GlobalScope, ThisScope } import Def.{ Flattened, Initialize, ScopedKey, Setting } import sbt.internal.{ Load, BuildStructure, LoadedBuild, LoadedBuildUnit, SettingGraph, SettingCompletions, AddSettings, SessionSettings } -import sbt.internal.util.{ AttributeKey, AttributeMap, Dag, Relation, Settings, Show, ~> } +import sbt.internal.util.{ AttributeKey, AttributeMap, Dag, Relation, Settings, ~> } import sbt.internal.util.Types.{ const, idFun } import sbt.internal.util.complete.DefaultParsers import sbt.librarymanagement.Configuration -import sbt.util.Eval +import sbt.util.{ Eval, Show } import sjsonnew.JsonFormat import language.experimental.macros @@ -522,7 +522,7 @@ object Project extends ProjectExtra { if (scopes.isEmpty) "" else { val (limited, more) = if (scopes.size <= max) (scopes, "\n") else (scopes.take(max), "\n...\n") - limited.map(sk => prefix(sk) + display(sk)).mkString(label + ":\n\t", "\n\t", more) + limited.map(sk => prefix(sk) + display.show(sk)).mkString(label + ":\n\t", "\n\t", more) } data + "\n" + @@ -543,7 +543,7 @@ object Project extends ProjectExtra { } def graphSettings(structure: BuildStructure, actual: Boolean, graphName: String, file: File)(implicit display: Show[ScopedKey[_]]): Unit = { val rel = relation(structure, actual) - val keyToString = display.apply _ + val keyToString = display.show _ DotGraph.generateGraph(file, graphName, rel, keyToString, keyToString) } def relation(structure: BuildStructure, actual: Boolean)(implicit display: Show[ScopedKey[_]]): Relation[ScopedKey[_], ScopedKey[_]] = @@ -564,7 +564,7 @@ object Project extends ProjectExtra { def showUses(defs: Seq[ScopedKey[_]])(implicit display: Show[ScopedKey[_]]): String = showKeys(defs) private[this] def showKeys(s: Seq[ScopedKey[_]])(implicit display: Show[ScopedKey[_]]): String = - s.map(display.apply).sorted.mkString("\n\t", "\n\t", "\n\n") + s.map(display.show).sorted.mkString("\n\t", "\n\t", "\n\n") def definitions(structure: BuildStructure, actual: Boolean, key: AttributeKey[_])(implicit display: Show[ScopedKey[_]]): Seq[Scope] = relation(structure, actual)(display)._1s.toSeq flatMap { sk => if (sk.key == key) sk.scope :: Nil else Nil } diff --git a/main/src/main/scala/sbt/internal/Act.scala b/main/src/main/scala/sbt/internal/Act.scala index eb82de0b4..77a337edc 100644 --- a/main/src/main/scala/sbt/internal/Act.scala +++ b/main/src/main/scala/sbt/internal/Act.scala @@ -12,7 +12,8 @@ import DefaultParsers._ import sbt.internal.util.Types.idFun import java.net.URI import sbt.internal.CommandStrings.{ MultiTaskCommand, ShowCommand } -import sbt.internal.util.{ AttributeEntry, AttributeKey, AttributeMap, IMap, Settings, Show, Util } +import sbt.internal.util.{ AttributeEntry, AttributeKey, AttributeMap, IMap, Settings, Util } +import sbt.util.Show final class ParsedKey(val key: ScopedKey[_], val mask: ScopeMask) @@ -100,7 +101,7 @@ object Act { def noValidKeys = failure("No such key.") def showAmbiguous(keys: Seq[ScopedKey[_]])(implicit show: Show[ScopedKey[_]]): String = - keys.take(3).map(x => show(x)).mkString("", ", ", if (keys.size > 3) ", ..." else "") + keys.take(3).map(x => show.show(x)).mkString("", ", ", if (keys.size > 3) ", ..." else "") def isValid(data: Settings[Scope])(parsed: ParsedKey): Boolean = { @@ -256,7 +257,7 @@ object Act { val preparedPairs = anyKeyValues(structure, kvs) val showConfig = Aggregation.defaultShow(state, showTasks = action == ShowAction) evaluatingParser(state, structure, showConfig)(preparedPairs) map { evaluate => () => { - val keyStrings = preparedPairs.map(pp => showKey(pp.key)).mkString(", ") + val keyStrings = preparedPairs.map(pp => showKey.show(pp.key)).mkString(", ") state.log.debug("Evaluating tasks: " + keyStrings) evaluate() } diff --git a/main/src/main/scala/sbt/internal/Aggregation.scala b/main/src/main/scala/sbt/internal/Aggregation.scala index 6c295562a..f9c538189 100644 --- a/main/src/main/scala/sbt/internal/Aggregation.scala +++ b/main/src/main/scala/sbt/internal/Aggregation.scala @@ -7,8 +7,8 @@ package internal import Def.ScopedKey import Keys.{ showSuccess, showTiming, timingFormat } import sbt.internal.util.complete.Parser -import sbt.internal.util.{ Dag, HList, Relation, Settings, Show, Util } -import sbt.util.Logger +import sbt.internal.util.{ Dag, HList, Relation, Settings, Util } +import sbt.util.{ Logger, Show } import java.net.URI import Parser.{ seq, failure, success } import std.Transform.DummyTaskMap @@ -24,7 +24,7 @@ object Aggregation { xs match { case KeyValue(_, x: Seq[_]) :: Nil => print(x.mkString("* ", "\n* ", "")) case KeyValue(_, x) :: Nil => print(x.toString) - case _ => xs foreach { case KeyValue(key, value) => print(display(key) + "\n\t" + value.toString) } + case _ => xs foreach { case KeyValue(key, value) => print(display.show(key) + "\n\t" + value.toString) } } type Values[T] = Seq[KeyValue[T]] type AnyKeys = Values[_] diff --git a/main/src/main/scala/sbt/internal/CommandExchange.scala b/main/src/main/scala/sbt/internal/CommandExchange.scala index e419f5213..39697fdc3 100644 --- a/main/src/main/scala/sbt/internal/CommandExchange.scala +++ b/main/src/main/scala/sbt/internal/CommandExchange.scala @@ -5,7 +5,7 @@ import java.net.SocketException import java.util.concurrent.ConcurrentLinkedQueue import java.util.concurrent.atomic.AtomicInteger import sbt.internal.server._ -import sbt.internal.util.ChannelLogEntry +import sbt.internal.util.StringEvent import sbt.protocol.{ EventMessage, Serialization, ChannelAcceptedEvent } import scala.collection.mutable.ListBuffer import scala.annotation.tailrec @@ -101,7 +101,7 @@ private[sbt] final class CommandExchange { val toDel: ListBuffer[CommandChannel] = ListBuffer.empty val bytes = Serialization.serializeEvent(event) event match { - case entry: ChannelLogEntry => + case entry: StringEvent => channels.foreach { case c: ConsoleChannel => if (entry.channelName.isEmpty || entry.channelName == Some(c.name)) { diff --git a/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala b/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala index 398f8ef3d..a719af5cc 100644 --- a/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala +++ b/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala @@ -30,7 +30,7 @@ private[sbt] abstract class BackgroundJob { } private[sbt] abstract class AbstractJobHandle extends JobHandle { - override def toString = s"JobHandle(${id}, ${humanReadableName}, ${Def.showFullKey(spawningTask)})" + override def toString = s"JobHandle(${id}, ${humanReadableName}, ${Def.showFullKey.show(spawningTask)})" } private[sbt] abstract class AbstractBackgroundJobService extends BackgroundJobService { diff --git a/main/src/main/scala/sbt/internal/Load.scala b/main/src/main/scala/sbt/internal/Load.scala index 1742dbf7a..76e0f907c 100755 --- a/main/src/main/scala/sbt/internal/Load.scala +++ b/main/src/main/scala/sbt/internal/Load.scala @@ -35,8 +35,8 @@ import Keys.{ update } import tools.nsc.reporters.ConsoleReporter -import sbt.internal.util.{ Attributed, Settings, Show, ~> } -import sbt.util.{ Eval => Ev } +import sbt.internal.util.{ Attributed, Settings, ~> } +import sbt.util.{ Eval => Ev, Show } import sbt.internal.util.Attributed.data import Scope.GlobalScope import sbt.internal.util.Types.const diff --git a/main/src/main/scala/sbt/internal/LogManager.scala b/main/src/main/scala/sbt/internal/LogManager.scala index d30f2be85..ef1b760aa 100644 --- a/main/src/main/scala/sbt/internal/LogManager.scala +++ b/main/src/main/scala/sbt/internal/LogManager.scala @@ -16,7 +16,7 @@ import sbt.internal.util.ManagedLogger import org.apache.logging.log4j.core.Appender sealed abstract class LogManager { - def apply(data: Settings[Scope], state: State, task: ScopedKey[_], writer: PrintWriter): Logger + def apply(data: Settings[Scope], state: State, task: ScopedKey[_], writer: PrintWriter): ManagedLogger def backgroundLog(data: Settings[Scope], state: State, task: ScopedKey[_]): ManagedLogger } @@ -25,7 +25,7 @@ object LogManager { private val generateId: AtomicInteger = new AtomicInteger // This is called by mkStreams - def construct(data: Settings[Scope], state: State): (ScopedKey[_], PrintWriter) => Logger = (task: ScopedKey[_], to: PrintWriter) => + def construct(data: Settings[Scope], state: State): (ScopedKey[_], PrintWriter) => ManagedLogger = (task: ScopedKey[_], to: PrintWriter) => { val manager: LogManager = (logManager in task.scope).get(data) getOrElse { defaultManager(state.globalLogging.console) } manager(data, state, task, to) @@ -47,7 +47,7 @@ object LogManager { def withLoggers( screen: (ScopedKey[_], State) => Appender = (sk, s) => defaultScreen(s.globalLogging.console), - backed: PrintWriter => Appender = defaultBacked(), + backed: PrintWriter => Appender = defaultBacked, relay: Unit => Appender = defaultRelay, extra: ScopedKey[_] => Seq[Appender] = _ => Nil ): LogManager = new DefaultLogManager(screen, backed, relay, extra) @@ -58,7 +58,7 @@ object LogManager { relay: Unit => Appender, extra: ScopedKey[_] => Seq[Appender] ) extends LogManager { - def apply(data: Settings[Scope], state: State, task: ScopedKey[_], to: PrintWriter): Logger = + def apply(data: Settings[Scope], state: State, task: ScopedKey[_], to: PrintWriter): ManagedLogger = defaultLogger(data, state, task, screen(task, state), backed(to), relay(()), extra(task).toList) def backgroundLog(data: Settings[Scope], state: State, task: ScopedKey[_]): ManagedLogger = @@ -67,7 +67,7 @@ object LogManager { // This is the main function that is used to generate the logger for tasks. def defaultLogger(data: Settings[Scope], state: State, task: ScopedKey[_], - console: Appender, backed: Appender, relay: Appender, extra: List[Appender]): Logger = + console: Appender, backed: Appender, relay: Appender, extra: List[Appender]): ManagedLogger = { val execOpt = state.currentCommand val loggerName: String = s"${task.key.label}-${generateId.incrementAndGet}" @@ -103,7 +103,7 @@ object LogManager { def suppressedMessage(key: ScopedKey[_], state: State): SuppressedTraceContext => Option[String] = { lazy val display = Project.showContextKey(state) - def commandBase = "last " + display(unwrapStreamsKey(key)) + def commandBase = "last " + display.show(unwrapStreamsKey(key)) def command(useColor: Boolean) = if (useColor) BLUE + commandBase + RESET else "'" + commandBase + "'" context => Some("Stack trace suppressed: run %s for the full output.".format(command(context.useColor))) } diff --git a/main/src/main/scala/sbt/internal/Output.scala b/main/src/main/scala/sbt/internal/Output.scala index 5bc633820..77582384e 100644 --- a/main/src/main/scala/sbt/internal/Output.scala +++ b/main/src/main/scala/sbt/internal/Output.scala @@ -4,8 +4,8 @@ package sbt package internal -import sbt.internal.util.{ Show, Types } - +import sbt.internal.util.Types +import sbt.util.Show import java.util.regex.Pattern import java.io.File import Keys.Streams @@ -47,7 +47,7 @@ object Output { outputs flatMap { case KeyValue(key, lines) => val flines = f(lines) - if (!single) bold(display(key)) +: flines else flines + if (!single) bold(display.show(key)) +: flines else flines } } diff --git a/main/src/main/scala/sbt/internal/RelayAppender.scala b/main/src/main/scala/sbt/internal/RelayAppender.scala index 704b528f8..792ab626d 100644 --- a/main/src/main/scala/sbt/internal/RelayAppender.scala +++ b/main/src/main/scala/sbt/internal/RelayAppender.scala @@ -30,6 +30,6 @@ class RelayAppender(name: String) extends AbstractAppender(name, null, PatternLa } def appendEvent(level: Level.Value, event: AnyRef): Unit = event match { - case x: ChannelLogEntry => StandardMain.exchange.publishEvent(x: AbstractEntry) + case x: StringEvent => StandardMain.exchange.publishEvent(x: AbstractEntry) } } diff --git a/main/src/main/scala/sbt/internal/SettingCompletions.scala b/main/src/main/scala/sbt/internal/SettingCompletions.scala index 63d7a100d..334b3c1d3 100644 --- a/main/src/main/scala/sbt/internal/SettingCompletions.scala +++ b/main/src/main/scala/sbt/internal/SettingCompletions.scala @@ -1,8 +1,8 @@ package sbt package internal -import sbt.internal.util.{ AttributeKey, complete, Relation, Settings, Show, Types, Util } - +import sbt.internal.util.{ AttributeKey, complete, Relation, Settings, Types, Util } +import sbt.util.Show import sbt.librarymanagement.Configuration import Project._ @@ -71,7 +71,7 @@ private[sbt] object SettingCompletions { private[this] def setSummary(redefined: Set[ScopedKey[_]], affected: Set[ScopedKey[_]], verbose: Boolean)(implicit display: Show[ScopedKey[_]]): String = { val QuietLimit = 3 - def strings(in: Set[ScopedKey[_]]): Seq[String] = in.toSeq.map(sk => display(sk)).sorted + def strings(in: Set[ScopedKey[_]]): Seq[String] = in.toSeq.map(sk => display.show(sk)).sorted def lines(in: Seq[String]): (String, Boolean) = if (in.isEmpty) ("no settings or tasks.", false) diff --git a/main/src/main/scala/sbt/internal/SettingGraph.scala b/main/src/main/scala/sbt/internal/SettingGraph.scala index dfd0e2ec3..34812e37e 100644 --- a/main/src/main/scala/sbt/internal/SettingGraph.scala +++ b/main/src/main/scala/sbt/internal/SettingGraph.scala @@ -4,7 +4,8 @@ package sbt package internal -import sbt.internal.util.{ Show, JLine } +import sbt.internal.util.{ JLine } +import sbt.util.Show import java.io.File import Def.{ compiled, flattenLocals, ScopedKey } @@ -20,12 +21,12 @@ object SettingGraph { { val key = scoped.key val scope = scoped.scope - val definedIn = structure.data.definingScope(scope, key) map { sc => display(ScopedKey(sc, key)) } + val definedIn = structure.data.definingScope(scope, key) map { sc => display.show(ScopedKey(sc, key)) } val depends = cMap.get(scoped) match { case Some(c) => c.dependencies.toSet; case None => Set.empty } // val related = cMap.keys.filter(k => k.key == key && k.scope != scope) // val reverse = reverseDependencies(cMap, scoped) - SettingGraph(display(scoped), definedIn, + SettingGraph(display.show(scoped), definedIn, Project.scopedKeyData(structure, scope, key), key.description, basedir, depends map { (x: ScopedKey[_]) => loop(x, generation + 1) }) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 33c46f818..c58be9818 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -12,9 +12,9 @@ object Dependencies { // sbt modules private val ioVersion = "1.0.0-M9" - private val utilVersion = "1.0.0-M18" - private val lmVersion = "1.0.0-X5" - private val zincVersion = "1.0.0-X8" + private val utilVersion = "1.0.0-M20" + private val lmVersion = "1.0.0-X7" + private val zincVersion = "1.0.0-X11" private val sbtIO = "org.scala-sbt" %% "io" % ioVersion diff --git a/project/contraband.sbt b/project/contraband.sbt deleted file mode 100644 index 88961b8f9..000000000 --- a/project/contraband.sbt +++ /dev/null @@ -1 +0,0 @@ -addSbtPlugin("org.scala-sbt" % "sbt-contraband" % "0.3.0-M3") diff --git a/project/plugins.sbt b/project/plugins.sbt index 6ac2f3ed0..841f96856 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -8,3 +8,4 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-javaversioncheck" % "0.1.0") addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.6.0") addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "0.8.2") addSbtPlugin("me.lessis" % "bintray-sbt" % "0.3.0") +addSbtPlugin("org.scala-sbt" % "sbt-contraband" % "0.3.0-M4") diff --git a/protocol/src/main/contraband-scala/sbt/protocol/ChannelAcceptedEvent.scala b/protocol/src/main/contraband-scala/sbt/protocol/ChannelAcceptedEvent.scala index f0dd2233d..1fab5ef06 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/ChannelAcceptedEvent.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/ChannelAcceptedEvent.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala b/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala index 26c102a47..22e1155fa 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/CommandMessage.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala b/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala index c564c7fa0..e58496a35 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/EventMessage.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/ExecCommand.scala b/protocol/src/main/contraband-scala/sbt/protocol/ExecCommand.scala index c484cc2a9..eb2acdfcf 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/ExecCommand.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/ExecCommand.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/ExecStatusEvent.scala b/protocol/src/main/contraband-scala/sbt/protocol/ExecStatusEvent.scala index f92b4bae9..1416484e9 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/ExecStatusEvent.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/ExecStatusEvent.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/ExecutionEvent.scala b/protocol/src/main/contraband-scala/sbt/protocol/ExecutionEvent.scala index 611b1845f..8c697b328 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/ExecutionEvent.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/ExecutionEvent.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/LogEvent.scala b/protocol/src/main/contraband-scala/sbt/protocol/LogEvent.scala index 79e239e6a..90bdce4e7 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/LogEvent.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/LogEvent.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/SettingQuery.scala b/protocol/src/main/contraband-scala/sbt/protocol/SettingQuery.scala index a0408cffb..7d05822f1 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/SettingQuery.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/SettingQuery.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala b/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala index ce844ff43..0c7878968 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/SettingQueryResponse.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/ChannelAcceptedEventFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/ChannelAcceptedEventFormats.scala index 1bcb80ce7..4a0912416 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/ChannelAcceptedEventFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/ChannelAcceptedEventFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/CommandMessageFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/CommandMessageFormats.scala index 5dc704932..844cc4a65 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/CommandMessageFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/CommandMessageFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/EventMessageFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/EventMessageFormats.scala index 345b60771..41ffd6dc9 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/EventMessageFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/EventMessageFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecCommandFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecCommandFormats.scala index c58bdf800..510bb0187 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecCommandFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecCommandFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecStatusEventFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecStatusEventFormats.scala index d95508389..37c1bd842 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecStatusEventFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecStatusEventFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecutionEventFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecutionEventFormats.scala index 285fcb6c0..4e997598f 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecutionEventFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/ExecutionEventFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/JsonProtocol.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/JsonProtocol.scala index 7741b72e7..e2a840a52 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/JsonProtocol.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/JsonProtocol.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/LogEventFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/LogEventFormats.scala index 861776178..b4b67388e 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/LogEventFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/LogEventFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryFormats.scala index 774db9104..617197ed1 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryResponseFormats.scala b/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryResponseFormats.scala index b6555f1c6..ce7f7a217 100644 --- a/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryResponseFormats.scala +++ b/protocol/src/main/contraband-scala/sbt/protocol/codec/SettingQueryResponseFormats.scala @@ -1,5 +1,5 @@ /** - * This code is generated using sbt-datatype. + * This code is generated using [[http://www.scala-sbt.org/contraband/ sbt-contraband]]. */ // DO NOT EDIT MANUALLY diff --git a/protocol/src/main/scala/sbt/protocol/Serialization.scala b/protocol/src/main/scala/sbt/protocol/Serialization.scala index 72cce8124..54c0508bc 100644 --- a/protocol/src/main/scala/sbt/protocol/Serialization.scala +++ b/protocol/src/main/scala/sbt/protocol/Serialization.scala @@ -9,7 +9,7 @@ import sjsonnew.support.scalajson.unsafe.{ Parser, Converter, CompactPrinter } import scala.json.ast.unsafe.{ JValue, JObject, JString } import java.nio.ByteBuffer import scala.util.{ Success, Failure } -import sbt.internal.util.ChannelLogEntry +import sbt.internal.util.StringEvent object Serialization { def serializeEvent[A: JsonFormat](event: A): Array[Byte] = @@ -59,9 +59,9 @@ object Serialization { Parser.parseFromByteBuffer(buffer) match { case Success(json) => detectType(json) match { - case Some("ChannelLogEntry") => + case Some("StringEvent") => import sbt.internal.util.codec.JsonProtocol._ - Converter.fromJson[ChannelLogEntry](json) match { + Converter.fromJson[StringEvent](json) match { case Success(event) => Right(event) case Failure(e) => Left(e.getMessage) } diff --git a/sbt-allsources.sh b/sbt-allsources.sh new file mode 100755 index 000000000..a67b8e370 --- /dev/null +++ b/sbt-allsources.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +sbt -Dsbtio.path=../io -Dsbtutil.path=../util -Dsbtlm.path=../librarymanagement -Dsbtzinc.path=../zinc "$@" diff --git a/sbt/src/main/scala/Import.scala b/sbt/src/main/scala/Import.scala index e0b8db19d..ef3a6f84f 100644 --- a/sbt/src/main/scala/Import.scala +++ b/sbt/src/main/scala/Import.scala @@ -43,6 +43,10 @@ trait Import { type SetLevel = sbt.util.SetLevel type SetSuccess = sbt.util.SetSuccess type SetTrace = sbt.util.SetTrace + val Show = sbt.util.Show + type Show[T] = sbt.util.Show[T] + val ShowLines = sbt.util.ShowLines + type ShowLines[A] = sbt.util.ShowLines[A] type Success = sbt.util.Success type Trace = sbt.util.Trace @@ -141,10 +145,6 @@ trait Import { val ScalaKeywords = sbt.internal.util.ScalaKeywords type Settings[S] = sbt.internal.util.Settings[S] type SharedAttributeKey[T] = sbt.internal.util.SharedAttributeKey[T] - val Show = sbt.internal.util.Show - type Show[T] = sbt.internal.util.Show[T] - val ShowLines = sbt.internal.util.ShowLines - type ShowLines[A] = sbt.internal.util.ShowLines[A] val Signals = sbt.internal.util.Signals val SimpleReader = sbt.internal.util.SimpleReader type SimpleReader = sbt.internal.util.SimpleReader diff --git a/sbt/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt b/sbt/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt index c590b6d8f..76fe81985 100644 --- a/sbt/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt +++ b/sbt/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt @@ -1,8 +1,8 @@ name := "foo" -scalaVersion := "2.10.4" +scalaVersion := "2.10.6" -crossScalaVersions := List("2.10.4", "2.11.0") +crossScalaVersions := List("2.10.6", "2.11.8") incOptions := incOptions.value.withClassfileManagerType( xsbti.Maybe.just(new xsbti.compile.TransactionalManagerType( diff --git a/sbt/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt b/sbt/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt deleted file mode 100644 index 8a38ef414..000000000 --- a/sbt/src/sbt-test/source-dependencies/backtick-quoted-names/build.sbt +++ /dev/null @@ -1 +0,0 @@ -incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt/src/sbt-test/source-dependencies/macro-annotation/build.sbt b/sbt/src/sbt-test/source-dependencies/macro-annotation/build.sbt index 4243856d5..12a8459cc 100644 --- a/sbt/src/sbt-test/source-dependencies/macro-annotation/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/macro-annotation/build.sbt @@ -5,8 +5,7 @@ val commonSettings = Seq( scalaVersion := "2.11.4", resolvers += Resolver.sonatypeRepo("snapshots"), resolvers += Resolver.sonatypeRepo("releases"), - addCompilerPlugin("org.scalamacros" % "paradise" % paradiseVersion cross CrossVersion.full), - incOptions := incOptions.value.withNameHashing(true) + addCompilerPlugin("org.scalamacros" % "paradise" % paradiseVersion cross CrossVersion.full) ) lazy val root = (project in file(".")). diff --git a/sbt/src/sbt-test/source-dependencies/macro/build.sbt b/sbt/src/sbt-test/source-dependencies/macro/build.sbt index 1e81806a5..264dd3d57 100644 --- a/sbt/src/sbt-test/source-dependencies/macro/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/macro/build.sbt @@ -1,7 +1,6 @@ val defaultSettings = Seq( scalaVersion := "2.10.6", - libraryDependencies += scalaVersion("org.scala-lang" % "scala-reflect" % _ ).value //, - //incOptions := incOptions.value.withNameHashing(true) + libraryDependencies += scalaVersion("org.scala-lang" % "scala-reflect" % _ ).value ) lazy val root = (project in file(".")). diff --git a/sbt/src/sbt-test/source-dependencies/same-file-used-names/build.sbt b/sbt/src/sbt-test/source-dependencies/same-file-used-names/build.sbt deleted file mode 100644 index 8a38ef414..000000000 --- a/sbt/src/sbt-test/source-dependencies/same-file-used-names/build.sbt +++ /dev/null @@ -1 +0,0 @@ -incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt/src/sbt-test/source-dependencies/struct/pending b/sbt/src/sbt-test/source-dependencies/struct/test similarity index 50% rename from sbt/src/sbt-test/source-dependencies/struct/pending rename to sbt/src/sbt-test/source-dependencies/struct/test index 72a7a8ebd..4effcedde 100644 --- a/sbt/src/sbt-test/source-dependencies/struct/pending +++ b/sbt/src/sbt-test/source-dependencies/struct/test @@ -1,6 +1,3 @@ -# Marked as pending because name hashing doesn't support structural types -# in some cases. See: https://github.com/sbt/sbt/issues/1545 - > compile # modify A.scala so that it does not conform to the structural type in B.scala diff --git a/sbt/src/sbt-test/source-dependencies/trait-member-modified/build.sbt b/sbt/src/sbt-test/source-dependencies/trait-member-modified/build.sbt index 77dc6c5b6..9675b95c8 100644 --- a/sbt/src/sbt-test/source-dependencies/trait-member-modified/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/trait-member-modified/build.sbt @@ -14,7 +14,7 @@ TaskKey[Unit]("checkCompilations") := { val allCompilations = analysis.compilations.allCompilations val recompiledFiles: Seq[Set[java.io.File]] = allCompilations map { c => val recompiledFiles = analysis.apis.internal.collect { - case (cn, api) if api.compilation.startTime == c.startTime => findFile(cn) + case (cn, api) if api.compilationTimestamp == c.startTime => findFile(cn) } recompiledFiles.toSet } diff --git a/sbt/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt b/sbt/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt index 9ef581972..ef7386f4c 100644 --- a/sbt/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt @@ -22,7 +22,7 @@ TaskKey[Unit]("checkCompilations") := { val allCompilations = analysis.compilations.allCompilations val recompiledFiles: Seq[Set[java.io.File]] = allCompilations map { c => val recompiledFiles = analysis.apis.internal.collect { - case (cn, api) if api.compilation.startTime == c.startTime => findFile(cn) + case (cn, api) if api.compilationTimestamp == c.startTime => findFile(cn) } recompiledFiles.toSet } diff --git a/sbt/src/sbt-test/source-dependencies/type-alias/build.sbt b/sbt/src/sbt-test/source-dependencies/type-alias/build.sbt index c5a1099aa..00edfde1d 100644 --- a/sbt/src/sbt-test/source-dependencies/type-alias/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/type-alias/build.sbt @@ -1,3 +1 @@ logLevel in compile := Level.Debug - -incOptions := incOptions.value.withNameHashing(true) diff --git a/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt b/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt index 4edba5005..54ff69556 100644 --- a/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt +++ b/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt @@ -4,7 +4,7 @@ lazy val OtherScala = config("other-scala").hide configs(OtherScala) -libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.11.1" % OtherScala.name +libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.11.8" % OtherScala.name managedClasspath in OtherScala := Classpaths.managedJars(OtherScala, classpathTypes.value, update.value) @@ -13,7 +13,7 @@ scalaInstance := { val rawJars = (managedClasspath in OtherScala).value.map(_.data) val scalaHome = (target.value / "scala-home") def removeVersion(name: String): String = - name.replaceAll("\\-2.11.1", "") + name.replaceAll("\\-2.11.8", "") for(jar <- rawJars) { val tjar = scalaHome / s"lib/${removeVersion(jar.getName)}" IO.copyFile(jar, tjar) @@ -27,6 +27,6 @@ libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test" libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3.3" % "test" -scalaVersion := "2.11.0" +scalaVersion := "2.11.8" ivyScala := ivyScala.value map (_.withOverrideScalaVersion(sbtPlugin.value)) diff --git a/tasks-standard/src/main/scala/sbt/std/Streams.scala b/tasks-standard/src/main/scala/sbt/std/Streams.scala index 6e23bfb3a..7e6257f5f 100644 --- a/tasks-standard/src/main/scala/sbt/std/Streams.scala +++ b/tasks-standard/src/main/scala/sbt/std/Streams.scala @@ -23,7 +23,7 @@ import sbt.internal.io.DeferredWriter import sbt.io.IO import sbt.io.syntax._ -import sbt.util.Logger +import sbt.internal.util.ManagedLogger import sjsonnew.{ IsoString, SupportConverter } import sbt.internal.util.{ CacheStoreFactory, DirectoryStoreFactory, Input, Output, PlainInput, PlainOutput } @@ -76,10 +76,10 @@ sealed trait TaskStreams[Key] { // default logger /** Obtains the default logger. */ - final lazy val log: Logger = log(default) + final lazy val log: ManagedLogger = log(default) /** Creates a Logger that logs to stream with ID `sid`.*/ - def log(sid: String): Logger + def log(sid: String): ManagedLogger private[this] def getID(s: Option[String]) = s getOrElse default } @@ -120,7 +120,7 @@ object Streams { synchronized { streams.values.foreach(_.close()); streams.clear() } } - def apply[Key, J: IsoString](taskDirectory: Key => File, name: Key => String, mkLogger: (Key, PrintWriter) => Logger, converter: SupportConverter[J]): Streams[Key] = new Streams[Key] { + def apply[Key, J: IsoString](taskDirectory: Key => File, name: Key => String, mkLogger: (Key, PrintWriter) => ManagedLogger, converter: SupportConverter[J]): Streams[Key] = new Streams[Key] { def apply(a: Key): ManagedStreams[Key] = new ManagedStreams[Key] { private[this] var opened: List[Closeable] = Nil @@ -153,7 +153,7 @@ object Streams { lazy val cacheStoreFactory: CacheStoreFactory = new DirectoryStoreFactory(cacheDirectory, converter) - def log(sid: String): Logger = mkLogger(a, text(sid)) + def log(sid: String): ManagedLogger = mkLogger(a, text(sid)) def make[T <: Closeable](a: Key, sid: String)(f: File => T): T = synchronized { checkOpen()