From ee272d780ec65466c927d85d27021e216c93950e Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 6 May 2016 16:01:49 -0400 Subject: [PATCH 01/10] Reorganize directory structure --- build.sbt | 18 ++++------- .../src/main/scala/sbt/CacheIvy.scala | 0 .../src/main/scala/sbt/Compiler.scala | 0 .../src/main/scala/sbt/Console.scala | 0 .../src/main/scala/sbt/Doc.scala | 0 .../src/main/scala/sbt/DotGraph.scala | 0 .../src/main/scala/sbt/ForkTests.scala | 0 .../src/main/scala/sbt/Package.scala | 0 .../src/main/scala/sbt/RawCompileLike.scala | 0 .../src/main/scala/sbt/Sync.scala | 0 .../src/main/scala/sbt/TestResultLogger.scala | 0 .../src/main/scala/sbt/Tests.scala | 0 .../src/main/scala/sbt/compiler/Eval.scala | 0 .../src/test/scala/sbt/CacheIvyTest.scala | 0 .../test/scala/sbt/compiler/EvalTest.scala | 0 .../main/scala/sbt/BasicCommandStrings.scala | 0 .../src/main/scala/sbt/BasicCommands.scala | 0 .../src/main/scala/sbt/BasicKeys.scala | 0 .../src/main/scala/sbt/Command.scala | 0 .../src/main/scala/sbt/CommandUtil.scala | 0 .../main/scala/sbt/ExceptionCategory.scala | 0 .../src/main/scala/sbt/Highlight.scala | 0 .../src/main/scala/sbt/MainControl.scala | 0 .../src/main/scala/sbt/MainLoop.scala | 0 .../src/main/scala/sbt/State.scala | 0 .../src/main/scala/sbt/Watched.scala | 0 .../src/main/scala/xsbt/IPC.scala | 0 .../src/main/scala/sbt/Append.scala | 0 .../src/main/scala/sbt/ConfigKey.scala | 0 .../src/main/scala/sbt/Def.scala | 0 .../src/main/scala/sbt/DelegateIndex.scala | 0 .../src/main/scala/sbt/InputTask.scala | 0 .../src/main/scala/sbt/KeyRanks.scala | 0 .../src/main/scala/sbt/Previous.scala | 0 .../src/main/scala/sbt/Reference.scala | 0 .../src/main/scala/sbt/Remove.scala | 0 .../src/main/scala/sbt/Scope.scala | 0 .../src/main/scala/sbt/ScopeAxis.scala | 0 .../src/main/scala/sbt/ScopeMask.scala | 0 .../src/main/scala/sbt/Structure.scala | 0 .../src/main/scala/sbt/std/InputConvert.scala | 0 .../src/main/scala/sbt/std/InputWrapper.scala | 0 .../src/main/scala/sbt/std/KeyMacro.scala | 0 .../src/main/scala/sbt/std/SettingMacro.scala | 0 .../src/main/scala/sbt/std/TaskMacro.scala | 0 .../src/test/scala/ScopedKeySpec.scala | 0 .../src/test/scala/UsageTest.scala | 0 {sbt/notes => notes}/0.10.0.markdown | 0 {sbt/notes => notes}/0.10.1.markdown | 0 {sbt/notes => notes}/0.11.0.markdown | 0 {sbt/notes => notes}/0.11.3.markdown | 0 notes/0.13.10/internal-tracking.md | 32 ------------------- sbt/notes/about.markdown | 1 - {tasks/standard => tasks-standard}/NOTICE | 0 .../src/main/scala/sbt/Action.scala | 0 .../src/main/scala/sbt/std/Streams.scala | 0 .../src/main/scala/sbt/std/System.scala | 0 .../src/main/scala/sbt/std/TaskExtra.scala | 0 .../src/test/scala/Execute.scala | 0 .../src/test/scala/TaskGen.scala | 0 .../src/test/scala/TaskRunnerCircular.scala | 0 .../src/test/scala/TaskRunnerFork.scala | 0 .../src/test/scala/TaskSerial.scala | 0 .../src/test/scala/Test.scala | 0 .../src/test/scala/TestRunnerCall.scala | 0 .../src/test/scala/TestRunnerSort.scala | 0 .../src/test/scala/checkResult.scala | 0 67 files changed, 7 insertions(+), 44 deletions(-) rename {main/actions => main-actions}/src/main/scala/sbt/CacheIvy.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/Compiler.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/Console.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/Doc.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/DotGraph.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/ForkTests.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/Package.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/RawCompileLike.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/Sync.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/TestResultLogger.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/Tests.scala (100%) rename {main/actions => main-actions}/src/main/scala/sbt/compiler/Eval.scala (100%) rename {main/actions => main-actions}/src/test/scala/sbt/CacheIvyTest.scala (100%) rename {main/actions => main-actions}/src/test/scala/sbt/compiler/EvalTest.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/BasicCommandStrings.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/BasicCommands.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/BasicKeys.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/Command.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/CommandUtil.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/ExceptionCategory.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/Highlight.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/MainControl.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/MainLoop.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/State.scala (100%) rename {main/command => main-command}/src/main/scala/sbt/Watched.scala (100%) rename {main/command => main-command}/src/main/scala/xsbt/IPC.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/Append.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/ConfigKey.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/Def.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/DelegateIndex.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/InputTask.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/KeyRanks.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/Previous.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/Reference.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/Remove.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/Scope.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/ScopeAxis.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/ScopeMask.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/Structure.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/std/InputConvert.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/std/InputWrapper.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/std/KeyMacro.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/std/SettingMacro.scala (100%) rename {main/settings => main-settings}/src/main/scala/sbt/std/TaskMacro.scala (100%) rename {main/settings => main-settings}/src/test/scala/ScopedKeySpec.scala (100%) rename {main/settings => main-settings}/src/test/scala/UsageTest.scala (100%) rename {sbt/notes => notes}/0.10.0.markdown (100%) rename {sbt/notes => notes}/0.10.1.markdown (100%) rename {sbt/notes => notes}/0.11.0.markdown (100%) rename {sbt/notes => notes}/0.11.3.markdown (100%) delete mode 100644 notes/0.13.10/internal-tracking.md delete mode 100644 sbt/notes/about.markdown rename {tasks/standard => tasks-standard}/NOTICE (100%) rename {tasks/standard => tasks-standard}/src/main/scala/sbt/Action.scala (100%) rename {tasks/standard => tasks-standard}/src/main/scala/sbt/std/Streams.scala (100%) rename {tasks/standard => tasks-standard}/src/main/scala/sbt/std/System.scala (100%) rename {tasks/standard => tasks-standard}/src/main/scala/sbt/std/TaskExtra.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/Execute.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/TaskGen.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/TaskRunnerCircular.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/TaskRunnerFork.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/TaskSerial.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/Test.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/TestRunnerCall.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/TestRunnerSort.scala (100%) rename {tasks/standard => tasks-standard}/src/test/scala/checkResult.scala (100%) diff --git a/build.sbt b/build.sbt index 55266ed69..36379001b 100644 --- a/build.sbt +++ b/build.sbt @@ -109,7 +109,7 @@ lazy val testAgentProj = (project in file("testing") / "agent"). ) // Basic task engine -lazy val taskProj = (project in tasksPath). +lazy val taskProj = (project in file("tasks")). settings( testedBaseSettings, name := "Tasks", @@ -117,7 +117,7 @@ lazy val taskProj = (project in tasksPath). ) // Standard task system. This provides map, flatMap, join, and more on top of the basic task model. -lazy val stdTaskProj = (project in tasksPath / "standard"). +lazy val stdTaskProj = (project in file("tasks-standard")). dependsOn (taskProj % "compile;test->test"). settings( testedBaseSettings, @@ -153,7 +153,7 @@ lazy val scriptedPluginProj = (project in scriptedPath / "plugin"). ) // Implementation and support code for defining actions. -lazy val actionsProj = (project in mainPath / "actions"). +lazy val actionsProj = (project in file("main-actions")). dependsOn(runProj, stdTaskProj, taskProj, testingProj). settings( testedBaseSettings, @@ -164,7 +164,7 @@ lazy val actionsProj = (project in mainPath / "actions"). ) // General command support and core commands not specific to a build system -lazy val commandProj = (project in mainPath / "command"). +lazy val commandProj = (project in file("main-command")). settings( testedBaseSettings, name := "Command", @@ -173,7 +173,7 @@ lazy val commandProj = (project in mainPath / "command"). ) // Fixes scope=Scope for Setting (core defined in collectionProj) to define the settings system used in build definitions -lazy val mainSettingsProj = (project in mainPath / "settings"). +lazy val mainSettingsProj = (project in file("main-settings")). dependsOn(commandProj, stdTaskProj). settings( testedBaseSettings, @@ -183,7 +183,7 @@ lazy val mainSettingsProj = (project in mainPath / "settings"). ) // The main integration project for sbt. It brings all of the Projsystems together, configures them, and provides for overriding conventions. -lazy val mainProj = (project in mainPath). +lazy val mainProj = (project in file("main")). dependsOn(actionsProj, mainSettingsProj, runProj, commandProj). settings( testedBaseSettings, @@ -195,7 +195,7 @@ lazy val mainProj = (project in mainPath). // Strictly for bringing implicits and aliases from subsystems into the top-level sbt namespace through a single package object // technically, we need a dependency on all of mainProj's dependencies, but we don't do that since this is strictly an integration project // with the sole purpose of providing certain identifiers without qualification (with a package object) -lazy val sbtProj = (project in sbtPath). +lazy val sbtProj = (project in file("sbt")). dependsOn(mainProj, scriptedSbtProj % "test->test"). settings( baseSettings, @@ -298,10 +298,6 @@ def fullDocSettings = Util.baseScalacOptions ++ Docs.settings ++ Sxr.settings ++ ) /* Nested Projproject paths */ -def sbtPath = file("sbt") -def tasksPath = file("tasks") -def launchPath = file("launch") -def mainPath = file("main") lazy val safeUnitTests = taskKey[Unit]("Known working tests (for both 2.10 and 2.11)") lazy val safeProjects: ScopeFilter = ScopeFilter( diff --git a/main/actions/src/main/scala/sbt/CacheIvy.scala b/main-actions/src/main/scala/sbt/CacheIvy.scala similarity index 100% rename from main/actions/src/main/scala/sbt/CacheIvy.scala rename to main-actions/src/main/scala/sbt/CacheIvy.scala diff --git a/main/actions/src/main/scala/sbt/Compiler.scala b/main-actions/src/main/scala/sbt/Compiler.scala similarity index 100% rename from main/actions/src/main/scala/sbt/Compiler.scala rename to main-actions/src/main/scala/sbt/Compiler.scala diff --git a/main/actions/src/main/scala/sbt/Console.scala b/main-actions/src/main/scala/sbt/Console.scala similarity index 100% rename from main/actions/src/main/scala/sbt/Console.scala rename to main-actions/src/main/scala/sbt/Console.scala diff --git a/main/actions/src/main/scala/sbt/Doc.scala b/main-actions/src/main/scala/sbt/Doc.scala similarity index 100% rename from main/actions/src/main/scala/sbt/Doc.scala rename to main-actions/src/main/scala/sbt/Doc.scala diff --git a/main/actions/src/main/scala/sbt/DotGraph.scala b/main-actions/src/main/scala/sbt/DotGraph.scala similarity index 100% rename from main/actions/src/main/scala/sbt/DotGraph.scala rename to main-actions/src/main/scala/sbt/DotGraph.scala diff --git a/main/actions/src/main/scala/sbt/ForkTests.scala b/main-actions/src/main/scala/sbt/ForkTests.scala similarity index 100% rename from main/actions/src/main/scala/sbt/ForkTests.scala rename to main-actions/src/main/scala/sbt/ForkTests.scala diff --git a/main/actions/src/main/scala/sbt/Package.scala b/main-actions/src/main/scala/sbt/Package.scala similarity index 100% rename from main/actions/src/main/scala/sbt/Package.scala rename to main-actions/src/main/scala/sbt/Package.scala diff --git a/main/actions/src/main/scala/sbt/RawCompileLike.scala b/main-actions/src/main/scala/sbt/RawCompileLike.scala similarity index 100% rename from main/actions/src/main/scala/sbt/RawCompileLike.scala rename to main-actions/src/main/scala/sbt/RawCompileLike.scala diff --git a/main/actions/src/main/scala/sbt/Sync.scala b/main-actions/src/main/scala/sbt/Sync.scala similarity index 100% rename from main/actions/src/main/scala/sbt/Sync.scala rename to main-actions/src/main/scala/sbt/Sync.scala diff --git a/main/actions/src/main/scala/sbt/TestResultLogger.scala b/main-actions/src/main/scala/sbt/TestResultLogger.scala similarity index 100% rename from main/actions/src/main/scala/sbt/TestResultLogger.scala rename to main-actions/src/main/scala/sbt/TestResultLogger.scala diff --git a/main/actions/src/main/scala/sbt/Tests.scala b/main-actions/src/main/scala/sbt/Tests.scala similarity index 100% rename from main/actions/src/main/scala/sbt/Tests.scala rename to main-actions/src/main/scala/sbt/Tests.scala diff --git a/main/actions/src/main/scala/sbt/compiler/Eval.scala b/main-actions/src/main/scala/sbt/compiler/Eval.scala similarity index 100% rename from main/actions/src/main/scala/sbt/compiler/Eval.scala rename to main-actions/src/main/scala/sbt/compiler/Eval.scala diff --git a/main/actions/src/test/scala/sbt/CacheIvyTest.scala b/main-actions/src/test/scala/sbt/CacheIvyTest.scala similarity index 100% rename from main/actions/src/test/scala/sbt/CacheIvyTest.scala rename to main-actions/src/test/scala/sbt/CacheIvyTest.scala diff --git a/main/actions/src/test/scala/sbt/compiler/EvalTest.scala b/main-actions/src/test/scala/sbt/compiler/EvalTest.scala similarity index 100% rename from main/actions/src/test/scala/sbt/compiler/EvalTest.scala rename to main-actions/src/test/scala/sbt/compiler/EvalTest.scala diff --git a/main/command/src/main/scala/sbt/BasicCommandStrings.scala b/main-command/src/main/scala/sbt/BasicCommandStrings.scala similarity index 100% rename from main/command/src/main/scala/sbt/BasicCommandStrings.scala rename to main-command/src/main/scala/sbt/BasicCommandStrings.scala diff --git a/main/command/src/main/scala/sbt/BasicCommands.scala b/main-command/src/main/scala/sbt/BasicCommands.scala similarity index 100% rename from main/command/src/main/scala/sbt/BasicCommands.scala rename to main-command/src/main/scala/sbt/BasicCommands.scala diff --git a/main/command/src/main/scala/sbt/BasicKeys.scala b/main-command/src/main/scala/sbt/BasicKeys.scala similarity index 100% rename from main/command/src/main/scala/sbt/BasicKeys.scala rename to main-command/src/main/scala/sbt/BasicKeys.scala diff --git a/main/command/src/main/scala/sbt/Command.scala b/main-command/src/main/scala/sbt/Command.scala similarity index 100% rename from main/command/src/main/scala/sbt/Command.scala rename to main-command/src/main/scala/sbt/Command.scala diff --git a/main/command/src/main/scala/sbt/CommandUtil.scala b/main-command/src/main/scala/sbt/CommandUtil.scala similarity index 100% rename from main/command/src/main/scala/sbt/CommandUtil.scala rename to main-command/src/main/scala/sbt/CommandUtil.scala diff --git a/main/command/src/main/scala/sbt/ExceptionCategory.scala b/main-command/src/main/scala/sbt/ExceptionCategory.scala similarity index 100% rename from main/command/src/main/scala/sbt/ExceptionCategory.scala rename to main-command/src/main/scala/sbt/ExceptionCategory.scala diff --git a/main/command/src/main/scala/sbt/Highlight.scala b/main-command/src/main/scala/sbt/Highlight.scala similarity index 100% rename from main/command/src/main/scala/sbt/Highlight.scala rename to main-command/src/main/scala/sbt/Highlight.scala diff --git a/main/command/src/main/scala/sbt/MainControl.scala b/main-command/src/main/scala/sbt/MainControl.scala similarity index 100% rename from main/command/src/main/scala/sbt/MainControl.scala rename to main-command/src/main/scala/sbt/MainControl.scala diff --git a/main/command/src/main/scala/sbt/MainLoop.scala b/main-command/src/main/scala/sbt/MainLoop.scala similarity index 100% rename from main/command/src/main/scala/sbt/MainLoop.scala rename to main-command/src/main/scala/sbt/MainLoop.scala diff --git a/main/command/src/main/scala/sbt/State.scala b/main-command/src/main/scala/sbt/State.scala similarity index 100% rename from main/command/src/main/scala/sbt/State.scala rename to main-command/src/main/scala/sbt/State.scala diff --git a/main/command/src/main/scala/sbt/Watched.scala b/main-command/src/main/scala/sbt/Watched.scala similarity index 100% rename from main/command/src/main/scala/sbt/Watched.scala rename to main-command/src/main/scala/sbt/Watched.scala diff --git a/main/command/src/main/scala/xsbt/IPC.scala b/main-command/src/main/scala/xsbt/IPC.scala similarity index 100% rename from main/command/src/main/scala/xsbt/IPC.scala rename to main-command/src/main/scala/xsbt/IPC.scala diff --git a/main/settings/src/main/scala/sbt/Append.scala b/main-settings/src/main/scala/sbt/Append.scala similarity index 100% rename from main/settings/src/main/scala/sbt/Append.scala rename to main-settings/src/main/scala/sbt/Append.scala diff --git a/main/settings/src/main/scala/sbt/ConfigKey.scala b/main-settings/src/main/scala/sbt/ConfigKey.scala similarity index 100% rename from main/settings/src/main/scala/sbt/ConfigKey.scala rename to main-settings/src/main/scala/sbt/ConfigKey.scala diff --git a/main/settings/src/main/scala/sbt/Def.scala b/main-settings/src/main/scala/sbt/Def.scala similarity index 100% rename from main/settings/src/main/scala/sbt/Def.scala rename to main-settings/src/main/scala/sbt/Def.scala diff --git a/main/settings/src/main/scala/sbt/DelegateIndex.scala b/main-settings/src/main/scala/sbt/DelegateIndex.scala similarity index 100% rename from main/settings/src/main/scala/sbt/DelegateIndex.scala rename to main-settings/src/main/scala/sbt/DelegateIndex.scala diff --git a/main/settings/src/main/scala/sbt/InputTask.scala b/main-settings/src/main/scala/sbt/InputTask.scala similarity index 100% rename from main/settings/src/main/scala/sbt/InputTask.scala rename to main-settings/src/main/scala/sbt/InputTask.scala diff --git a/main/settings/src/main/scala/sbt/KeyRanks.scala b/main-settings/src/main/scala/sbt/KeyRanks.scala similarity index 100% rename from main/settings/src/main/scala/sbt/KeyRanks.scala rename to main-settings/src/main/scala/sbt/KeyRanks.scala diff --git a/main/settings/src/main/scala/sbt/Previous.scala b/main-settings/src/main/scala/sbt/Previous.scala similarity index 100% rename from main/settings/src/main/scala/sbt/Previous.scala rename to main-settings/src/main/scala/sbt/Previous.scala diff --git a/main/settings/src/main/scala/sbt/Reference.scala b/main-settings/src/main/scala/sbt/Reference.scala similarity index 100% rename from main/settings/src/main/scala/sbt/Reference.scala rename to main-settings/src/main/scala/sbt/Reference.scala diff --git a/main/settings/src/main/scala/sbt/Remove.scala b/main-settings/src/main/scala/sbt/Remove.scala similarity index 100% rename from main/settings/src/main/scala/sbt/Remove.scala rename to main-settings/src/main/scala/sbt/Remove.scala diff --git a/main/settings/src/main/scala/sbt/Scope.scala b/main-settings/src/main/scala/sbt/Scope.scala similarity index 100% rename from main/settings/src/main/scala/sbt/Scope.scala rename to main-settings/src/main/scala/sbt/Scope.scala diff --git a/main/settings/src/main/scala/sbt/ScopeAxis.scala b/main-settings/src/main/scala/sbt/ScopeAxis.scala similarity index 100% rename from main/settings/src/main/scala/sbt/ScopeAxis.scala rename to main-settings/src/main/scala/sbt/ScopeAxis.scala diff --git a/main/settings/src/main/scala/sbt/ScopeMask.scala b/main-settings/src/main/scala/sbt/ScopeMask.scala similarity index 100% rename from main/settings/src/main/scala/sbt/ScopeMask.scala rename to main-settings/src/main/scala/sbt/ScopeMask.scala diff --git a/main/settings/src/main/scala/sbt/Structure.scala b/main-settings/src/main/scala/sbt/Structure.scala similarity index 100% rename from main/settings/src/main/scala/sbt/Structure.scala rename to main-settings/src/main/scala/sbt/Structure.scala diff --git a/main/settings/src/main/scala/sbt/std/InputConvert.scala b/main-settings/src/main/scala/sbt/std/InputConvert.scala similarity index 100% rename from main/settings/src/main/scala/sbt/std/InputConvert.scala rename to main-settings/src/main/scala/sbt/std/InputConvert.scala diff --git a/main/settings/src/main/scala/sbt/std/InputWrapper.scala b/main-settings/src/main/scala/sbt/std/InputWrapper.scala similarity index 100% rename from main/settings/src/main/scala/sbt/std/InputWrapper.scala rename to main-settings/src/main/scala/sbt/std/InputWrapper.scala diff --git a/main/settings/src/main/scala/sbt/std/KeyMacro.scala b/main-settings/src/main/scala/sbt/std/KeyMacro.scala similarity index 100% rename from main/settings/src/main/scala/sbt/std/KeyMacro.scala rename to main-settings/src/main/scala/sbt/std/KeyMacro.scala diff --git a/main/settings/src/main/scala/sbt/std/SettingMacro.scala b/main-settings/src/main/scala/sbt/std/SettingMacro.scala similarity index 100% rename from main/settings/src/main/scala/sbt/std/SettingMacro.scala rename to main-settings/src/main/scala/sbt/std/SettingMacro.scala diff --git a/main/settings/src/main/scala/sbt/std/TaskMacro.scala b/main-settings/src/main/scala/sbt/std/TaskMacro.scala similarity index 100% rename from main/settings/src/main/scala/sbt/std/TaskMacro.scala rename to main-settings/src/main/scala/sbt/std/TaskMacro.scala diff --git a/main/settings/src/test/scala/ScopedKeySpec.scala b/main-settings/src/test/scala/ScopedKeySpec.scala similarity index 100% rename from main/settings/src/test/scala/ScopedKeySpec.scala rename to main-settings/src/test/scala/ScopedKeySpec.scala diff --git a/main/settings/src/test/scala/UsageTest.scala b/main-settings/src/test/scala/UsageTest.scala similarity index 100% rename from main/settings/src/test/scala/UsageTest.scala rename to main-settings/src/test/scala/UsageTest.scala diff --git a/sbt/notes/0.10.0.markdown b/notes/0.10.0.markdown similarity index 100% rename from sbt/notes/0.10.0.markdown rename to notes/0.10.0.markdown diff --git a/sbt/notes/0.10.1.markdown b/notes/0.10.1.markdown similarity index 100% rename from sbt/notes/0.10.1.markdown rename to notes/0.10.1.markdown diff --git a/sbt/notes/0.11.0.markdown b/notes/0.11.0.markdown similarity index 100% rename from sbt/notes/0.11.0.markdown rename to notes/0.11.0.markdown diff --git a/sbt/notes/0.11.3.markdown b/notes/0.11.3.markdown similarity index 100% rename from sbt/notes/0.11.3.markdown rename to notes/0.11.3.markdown diff --git a/notes/0.13.10/internal-tracking.md b/notes/0.13.10/internal-tracking.md deleted file mode 100644 index eacdd2dec..000000000 --- a/notes/0.13.10/internal-tracking.md +++ /dev/null @@ -1,32 +0,0 @@ - - [@eed3si9n]: https://github.com/eed3si9n - [2266]: https://github.com/sbt/sbt/issues/2266 - [2354]: https://github.com/sbt/sbt/pull/2354 - -### Improvements - -- Adds `trackInternalDependencies` and `exportToInternal` keys. See below. - -### Inter-project dependency tracking - -sbt 0.13.10 adds `trackInternalDependencies` and `exportToInternal` settings. These can be used to control whether to trigger compilation of a dependent subprojects when you call `compile`. Both keys will take one of three values: `TrackLevel.NoTracking`, `TrackLevel.TrackIfMissing`, and `TrackLevel.TrackAlways`. By default they are both set to `TrackLevel.TrackAlways`. - -When `trackInternalDependencies` is set to `TrackLevel.TrackIfMissing`, sbt will no longer try to compile internal (inter-project) dependencies automatically, unless there are no `*.class` files (or JAR file when `exportJars` is `true`) in the output directory. When the setting is set to `TrackLevel.NoTracking`, the compilation of internal dependencies will be skipped. Note that the classpath will still be appended, and dependency graph will still show them as dependencies. The motivation is to save the I/O overhead of checking for the changes on a build with many subprojects during development. Here's how to set all subprojects to `TrackIfMissing`. - - lazy val root = (project in file(".")). - aggregate(....). - settings( - inThisBuild(Seq( - trackInternalDependencies := TrackLevel.TrackIfMissing, - exportJars := true - )) - ) - -The `exportToInternal` setting allows the dependee subprojects to opt out of the internal tracking, which might be useful if you want to track most subprojects except for a few. The intersection of the `trackInternalDependencies` and `exportToInternal` settings will be used to determine the actual track level. Here's an example to opt-out one project: - - lazy val dontTrackMe = (project in file("dontTrackMe")). - settings( - exportToInternal := TrackLevel.NoTracking - ) - -[#2266][2266]/[#2354][2354] by [@eed3si9n][@eed3si9n] diff --git a/sbt/notes/about.markdown b/sbt/notes/about.markdown deleted file mode 100644 index 29124d5ee..000000000 --- a/sbt/notes/about.markdown +++ /dev/null @@ -1 +0,0 @@ -[sbt](http://scala-sbt.org) is a Scala build tool. \ No newline at end of file diff --git a/tasks/standard/NOTICE b/tasks-standard/NOTICE similarity index 100% rename from tasks/standard/NOTICE rename to tasks-standard/NOTICE diff --git a/tasks/standard/src/main/scala/sbt/Action.scala b/tasks-standard/src/main/scala/sbt/Action.scala similarity index 100% rename from tasks/standard/src/main/scala/sbt/Action.scala rename to tasks-standard/src/main/scala/sbt/Action.scala diff --git a/tasks/standard/src/main/scala/sbt/std/Streams.scala b/tasks-standard/src/main/scala/sbt/std/Streams.scala similarity index 100% rename from tasks/standard/src/main/scala/sbt/std/Streams.scala rename to tasks-standard/src/main/scala/sbt/std/Streams.scala diff --git a/tasks/standard/src/main/scala/sbt/std/System.scala b/tasks-standard/src/main/scala/sbt/std/System.scala similarity index 100% rename from tasks/standard/src/main/scala/sbt/std/System.scala rename to tasks-standard/src/main/scala/sbt/std/System.scala diff --git a/tasks/standard/src/main/scala/sbt/std/TaskExtra.scala b/tasks-standard/src/main/scala/sbt/std/TaskExtra.scala similarity index 100% rename from tasks/standard/src/main/scala/sbt/std/TaskExtra.scala rename to tasks-standard/src/main/scala/sbt/std/TaskExtra.scala diff --git a/tasks/standard/src/test/scala/Execute.scala b/tasks-standard/src/test/scala/Execute.scala similarity index 100% rename from tasks/standard/src/test/scala/Execute.scala rename to tasks-standard/src/test/scala/Execute.scala diff --git a/tasks/standard/src/test/scala/TaskGen.scala b/tasks-standard/src/test/scala/TaskGen.scala similarity index 100% rename from tasks/standard/src/test/scala/TaskGen.scala rename to tasks-standard/src/test/scala/TaskGen.scala diff --git a/tasks/standard/src/test/scala/TaskRunnerCircular.scala b/tasks-standard/src/test/scala/TaskRunnerCircular.scala similarity index 100% rename from tasks/standard/src/test/scala/TaskRunnerCircular.scala rename to tasks-standard/src/test/scala/TaskRunnerCircular.scala diff --git a/tasks/standard/src/test/scala/TaskRunnerFork.scala b/tasks-standard/src/test/scala/TaskRunnerFork.scala similarity index 100% rename from tasks/standard/src/test/scala/TaskRunnerFork.scala rename to tasks-standard/src/test/scala/TaskRunnerFork.scala diff --git a/tasks/standard/src/test/scala/TaskSerial.scala b/tasks-standard/src/test/scala/TaskSerial.scala similarity index 100% rename from tasks/standard/src/test/scala/TaskSerial.scala rename to tasks-standard/src/test/scala/TaskSerial.scala diff --git a/tasks/standard/src/test/scala/Test.scala b/tasks-standard/src/test/scala/Test.scala similarity index 100% rename from tasks/standard/src/test/scala/Test.scala rename to tasks-standard/src/test/scala/Test.scala diff --git a/tasks/standard/src/test/scala/TestRunnerCall.scala b/tasks-standard/src/test/scala/TestRunnerCall.scala similarity index 100% rename from tasks/standard/src/test/scala/TestRunnerCall.scala rename to tasks-standard/src/test/scala/TestRunnerCall.scala diff --git a/tasks/standard/src/test/scala/TestRunnerSort.scala b/tasks-standard/src/test/scala/TestRunnerSort.scala similarity index 100% rename from tasks/standard/src/test/scala/TestRunnerSort.scala rename to tasks-standard/src/test/scala/TestRunnerSort.scala diff --git a/tasks/standard/src/test/scala/checkResult.scala b/tasks-standard/src/test/scala/checkResult.scala similarity index 100% rename from tasks/standard/src/test/scala/checkResult.scala rename to tasks-standard/src/test/scala/checkResult.scala From 6304b24916d1604c3f04a82ffbe2dfcd3212884b Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 6 May 2016 16:04:24 -0400 Subject: [PATCH 02/10] Remove old specification file from this location --- api.specification | 286 ----------------------------------------- scripted.specification | 42 ------ 2 files changed, 328 deletions(-) delete mode 100644 api.specification delete mode 100644 scripted.specification diff --git a/api.specification b/api.specification deleted file mode 100644 index 210bc07e3..000000000 --- a/api.specification +++ /dev/null @@ -1,286 +0,0 @@ -= Introduction = - -The API discovery component of xsbt analyzes the source code of a project and extracts the API. This discovery component operates as a phase during normal compilation. This phase exists in the 'compiler-interface' subproject and is discussed in section 'API Compiler Phase'. The API of a source file is discussed in 'API Specification'. - -The discovery phase provides a representation of the API in the form of a data structure, which is discussed in the section 'API Data Structure'. This data structure is a simple hierarchy of Java classes and enums generated from a definition file. The generated data structure exists in the 'interface' project under the 'xsbti.api' package. - -The file that defines the hierarchy is processed by a small datatype generating subproject called 'datatype'. This subproject defines a basic syntax for creating an immutable data structure hierarchy in Java. The output is in Java in order to use the data structure across Scala versions. - -Finally, the data structure needs to be persisted. This is currently implemented with standard Java serialization, but will likely use SBinary for a custom implementation for efficiency. - -= API Specification = - -This section specifies what the API of a source file is. Familiarity with the specification for Scala is assumed. For this specification, let 'classes' include classes, traits, objects, and package objects (2.8+ only). - -Loosely, the API consists of the signatures in a source file. This includes packages and types of classes in a source. The type of a class includes its fully qualified name, type parameters, base classes, and member signatures. - -Equality of APIs is determined by straightforward structural equality except for type parameter definitions and references. - * The ID of a type parameter does not affect equality between two type parameters. The mapping between IDs of equal type parameters is recorded, however. - * When comparing two type parameter references, the comparison is deferred until initial equality checking (all other equality checking) is done. Then, the IDs are compared according to the mapping determined for type parameters in the initial check. - -== Top Level Constructs == -The top level contributions to the API in a source file are packages and top-level classes. Packages in Scala can be nested, but how they are nested is not important for the API of a source file. That only affects scope within that source file [VERIFY]. A top level class is a class that is not enclosed in another class or a method. - -The public API of a source file is then: - * The set of fully qualified package names defined in the file. This includes packages without any classes in them or package objects defined for them. - * The API of the set of top level classes. The API of a class is defined in 'Class API' below. - -== Definitions == -A definition introduces a new named class or a class member. Class members include vars, vals, defs, and types. A definition has modifiers, including access restrictions. Other attributes of definitions are specific to the type of definition. The access modifiers are treated here separately and the effective modifiers are considered. For example, traits and abstract members are always considered to have the 'abstract' modifier. Synthetic refers to whether a definition was generated by the compiler. - -The API of a definition is - * The definition's name, which is fully-qualified if it is a class. - * The list of annotations on the definition - * The state of the following modifiers: abstract, override, final, sealed, implicit, lazy, synthetic - * The access restrictions of the definition, one of: - * public - * protected with qualifier - * private with qualifier - A qualifier part is either empty, 'this', or the fully qualified name of an enclosing package or class. - * The API specific to the definition, described below - -=== Field-like API === -A field is a val or a var. Fields contribute setter and getter methods, but the API they contribute cannot be completely defined by these. The presence of a val or var affect the rules for overriding. - -The field-specific API (contributed in addition to the parts common to all definitions) is then: - * Whether the field is a val or var. - * The type of the field. - * The API of associated setters and getters. - -=== Type Parameters === - Type parameters are not a definition, but they are used by methods, classes, and type members. The important aspects of a type parameter are its position in its defining parameter list and its upper and lower bounds, which are types. The actual name of a type parameter is not important, but it needs to be uniquely referenced within a source file. - -The API contributed by a type parameter section is: - * The API of each type parameter in the type parameter section, in order. The number of type parameters is implicit here. - * The API of a type parameter is: - * A unique ID, which is not significant on its own, but is used to refer to this parameter in types. (the ID is relative, not absolute) - * The lower bound, a type. - * The upper bound, a type. - -=== Method API === -A method is a def. A def consists of type parameters, value parameters and a return type. The value parameters come in sections (parameter lists) and the last section may be declared 'implicit'. A value parameter consists of a name (2.8+ only), a type, and whether a default is specified (2.8+ only). Additionally, a value parameter may be repeated or by-name. - -The API specific to a method (contributed in addition to the parts common to all definitions) is: - * The API contributed by its type parameter section, described in the Type Parameters section previously. - * The return type. - * The API contributed by its value parameter lists, in order. The number of lists is implicit in this definition. - * The API of a value parameter list is: - * Whether the list is marked implicit. - * The API of its value parameters, in order. The number of value parameters is implicit here. - * The API of a value parameter is: - * The parameter name (2.8+ only) - * The parameter type. Types are described later - * The modifier for the parameter type. This can be either 'no modifier', 'by-name', or 'repeated'. - * Whether the parameter has default defined (2.8+ only) - -=== Type Member API === -Type members consist of alias types and abstract types. Each can have type parameters. - -The API specific to an alias type (contributed in addition to the parts common to all definitions) is: - * The API contributed by its type parameter section, described in the Type Parameters section previously. - * The type aliased. - -The API specific to an abstract type (contributed in addition to the parts common to all definitions) is: - * The API contributed by its type parameter section, described in the Type Parameters section previously. - * The lower bound, a type. - * The upper bound, a type. - -=== Class API === -A class has a self type, whether it is a trait, class, object, or package object, and a structure. Its structure includes its base classes and its members, both declared and inherited. - -The API specific to a class (contributed in addition to the parts common to all definitions) is: - * The self type of the class. - * Whether the class is a trait, class, object, or package object. - * The structure, which is described by a structural type. - -== Types == - -Types can be described as simple, annotated, structural, or existential. Within simple types are projections, singletons, type variable references, parameterized types. Types are well described in the Scala specification. They are described here because they are essential to defining the API of a source file. - -The following sections briefly describe the contents of the different types. - -=== Projection === - * A prefix, which is a simple type - * An ID, which is a String - -=== Type Variable Reference === - * The unique ID of the referenced type variable - -=== Singleton === - * The path underlying the singleton. - -=== Parameterized === - * The type arguments, which is an ordered list of simple types. - * The base type, which is a simple type. - -=== Annotated === - * A list of annotations - * The base type, which is a simple type - -=== Structural === - * The base class types, in linearization order. - * The declared members. These are definitions, described above. - * The inherited members. These are definitions, described above. - -=== Existential === - * The base type - * The clause, which is a type parameter section, described previously - -=== Polymorphic === - * The base type - * The type parameter section, described previously - -= API Data Structure = - -This section and explains the data structure representing the API of a source file described in the previous section. - -As mentioned in the introduction, the data structure is defined by the 'definition' file in the 'interface' subproject. Code from the 'datatype' subproject processes this file and generates Java sources in 'src_managed' in the 'interface' subproject. The explanation includes listings from the definition file. These listings are current as of November 24, 2009. - -The top-level datatype is `Source`. It represents the API in a single source file. Packages are listed separately from definitions for two reasons. First, packages cannot be inferred from definitions because a source file can introduce a package without a top-level definition in that package. A reasonable alternative would have been including Definitions in Packages. However, it is anticipated that the most common operation will be to iterate directly over definitions. -{{{ -Source - packages : Package* - definitions: Definition* -}}} - -A package is represented as a simple String. More structure is not required as explained in the API specification section. -{{{ -Package - name: String -}}} - -Definitions are represented by straightforward subclasses of a Definition class. vals and vars are FieldLike subclasses that differ only by their class name. The remaining definition variants all have type parameters and so they share a common parent that provides this information. Class definitions are represented by a single class and the variants (traits, objects, ...) are distinguished by the 'definitionType' field. The 'selfType' field can be an instance of the special Type EmptyType, which indicates that the self type is not different from the normal self type. -{{{ -Definition - name: String - access: Access - modifiers: Modifiers - annotations: Annotation* - FieldLike - tpe : Type - Val - Var - ParameterizedDefinition - typeParameters: TypeParameter* - Def - valueParameters: ParameterList* - returnType: Type - ClassLike - definitionType: DefinitionType - selfType: Type - structure: Structure - TypeMember - TypeAlias - tpe: Type - TypeDeclaration - lowerBound: Type - upperBound: Type -}}} - -Types are fairly straightforward representations as well. They are intended to correspond closely to the types defined in the Scala specification. Note that function, infix, and tuple types translate to parameterized types and type designators translate to type projections. Compound types and refinements are represented by the Structure class. -{{{ -Type - SimpleType - Projection - prefix : SimpleType - id : String - ParameterRef - id: Int - Singleton - path: Path - EmptyType - Parameterized - baseType : SimpleType - typeArguments: Type* - Annotated - baseType : SimpleType - annotations : Annotation* - Structure - parents : Type* - declarations: Definition* - inherited: Definition* - Existential - baseType : Type - clause: TypeParameter* - Polymorphic - baseType : Type - clause: TypeParameter* -}}} - -There is one point to note about the access hierarchy. It includes a Pkg class, which represents Java's package private access. This is only used for Java sources. -{{{ -Access - Public - Qualified - qualifier: Qualifier - Protected - Private - Pkg -Qualifier - Unqualified - ThisQualifier - IdQualifier - value: String -}}} - -Modifiers are straightforward except that abstract is split into abstract and deferred, according to the Scala compiler's internal representation. Abstract applies to traits and abstract classes, while deferred applies to class members. -{{{ -Modifiers - isAbstract: Boolean - isDeferred: Boolean - isOverride: Boolean - isFinal: Boolean - isSealed: Boolean - isImplicit: Boolean - isLazy: Boolean - isSynthetic: Boolean - isMacro: Boolean -}}} - -{{{ -ParameterList - parameters: MethodParameter* - isImplicit: Boolean -MethodParameter - name: String - tpe: Type - hasDefault: Boolean - modifier: ParameterModifier - -TypeParameter - id: Int - typeParameters : TypeParameter* - variance: Variance - lowerBound: Type - upperBound: Type -}}} - -The representation of annotations does not express the full information that the compiler has about annotations. The arguments to an annotation are constant expressions. This could be represented in this data structure, but this is not currently done. Rather, the arguments are converted to a String in an unspecified manner. -{{{ -Annotation - base: SimpleType - arguments: String* -}}} - -enum Variance : Contravariant, Covariant, Invariant -enum ParameterModifier : Repeated, Plain, ByName -enum DefinitionType : Trait, ClassDef, Module, PackageModule - -Path - components: PathComponent* - -PathComponent - Super - qualifier: Path - This - Id - id: String -}}} - -= API Compiler Phase = - -= Data Structure Generator = - -= API Data Structure Persistence = - -The data structure is persisted by standard Java serialization on Source. This is done for simplicity and will be changed to use a more efficient encoding. \ No newline at end of file diff --git a/scripted.specification b/scripted.specification deleted file mode 100644 index b92d4aae8..000000000 --- a/scripted.specification +++ /dev/null @@ -1,42 +0,0 @@ -Scripted test framework specification: - -This framework is intended to be a lightweight interface to a simple scripting syntax. The framework parses statements of a simple form: -{{{ - statement ::= ws* startChar ws* successIndicator ws* word (ws word)* nl - ws ::= (' ' | '\t') ('\\' nl )? - word ::= [^ \n\r\[\]]+ - successIndicator ::= '+' | '-' - nl = '\n' | '\r' '\n' | '\r' | EOF -}}} -Whitespace is used to separate words and may optionally be used between other terminals. To continue a statement on a new line, use a space followed by a backslash \ where whitespace is allowed. For example -Single line comments are supported of the form: -{{{ - comment ::= '#' [^ \n\r]* nl -}}} - -The framework uses handlers to interpret statements. A handler is an instance of the following interface: - -{{{ -trait StatementHandler -{ - type State - def initialState: State - def apply(command: String, arguments: List[String], state: State): State -} -}}} - -The String and List[String] arguments define the command to execute. State is the state carried throughout the execution of the script. The type State is defined by the handler and is specific to the handler (no other handlers see the state). - -A handler processes the inputs and either returns the new state S to continue testing with or throws an exception to indicate failure. - -The test framework is used by creating an instance of ScriptedRunner, which requires a map from characters to handlers. A script starts a statement with the character associated with a handler to select the handler to interpret the rest of the statement. - -{{{ -class ScriptedRunner(handlers: Map[Char, StatementHandler]) extends NotNull -{ - // file assumed to be UTF-8 - def apply(file: File): Option[String] = ... - def apply(script: String): Option[String] = ... - def apply(reader: Reader): Option[String] = ... -} -}}} \ No newline at end of file From ce3926fbed9159309d816b48b5d93d295bbc26d5 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 6 May 2016 17:32:26 -0400 Subject: [PATCH 03/10] Bring EvaluateConfigurations and DslEntry to internal --- main/src/main/scala/sbt/BuildUtil.scala | 2 +- main/src/main/scala/sbt/Main.scala | 2 +- main/src/main/scala/sbt/Script.scala | 2 +- main/src/main/scala/sbt/SessionSettings.scala | 2 +- main/src/main/scala/sbt/dsl/package.scala | 17 ----- main/src/main/scala/sbt/internal/DslAst.scala | 65 +++++++++++++++++++ .../EvaluateConfigurations.scala | 29 +++++---- .../parser/SbtParser.scala | 6 +- .../parser/SbtRefactorings.scala | 4 +- .../src/main/scala/sbt/internals/DslAst.scala | 65 ------------------- .../sbt/internal/parser/AbstractSpec.scala | 5 ++ .../parser/CheckIfParsedSpec.scala | 6 +- .../parser/CommentedXmlSpec.scala | 2 +- .../parser/EmbeddedXmlSpec.scala | 2 +- .../parser/ErrorSpec.scala | 5 +- .../EvaluateConfigurationsOriginal.scala | 5 +- .../parser/NewFormatSpec.scala | 5 +- .../parser/SessionSettingsSpec.scala | 2 +- .../parser/SplitExpressions.scala | 4 +- .../parser/SplitExpressionsBehavior.scala | 4 +- .../parser/SplitExpressionsFilesTest.scala | 2 +- .../parser/SplitExpressionsTest.scala | 5 +- .../sbt/internals/parser/AbstractSpec.scala | 5 -- sbt/src/main/scala/syntax.scala | 6 ++ 24 files changed, 125 insertions(+), 127 deletions(-) delete mode 100644 main/src/main/scala/sbt/dsl/package.scala create mode 100644 main/src/main/scala/sbt/internal/DslAst.scala rename main/src/main/scala/sbt/{ => internal}/EvaluateConfigurations.scala (95%) rename main/src/main/scala/sbt/{internals => internal}/parser/SbtParser.scala (98%) rename main/src/main/scala/sbt/{internals => internal}/parser/SbtRefactorings.scala (97%) delete mode 100644 main/src/main/scala/sbt/internals/DslAst.scala create mode 100644 main/src/test/scala/sbt/internal/parser/AbstractSpec.scala rename main/src/test/scala/sbt/{internals => internal}/parser/CheckIfParsedSpec.scala (94%) rename main/src/test/scala/sbt/{internals => internal}/parser/CommentedXmlSpec.scala (98%) rename main/src/test/scala/sbt/{internals => internal}/parser/EmbeddedXmlSpec.scala (99%) rename main/src/test/scala/sbt/{internals => internal}/parser/ErrorSpec.scala (97%) rename main/src/test/scala/sbt/{internals => internal}/parser/EvaluateConfigurationsOriginal.scala (86%) rename main/src/test/scala/sbt/{internals => internal}/parser/NewFormatSpec.scala (93%) rename main/src/test/scala/sbt/{internals => internal}/parser/SessionSettingsSpec.scala (98%) rename main/src/test/scala/sbt/{internals => internal}/parser/SplitExpressions.scala (80%) rename main/src/test/scala/sbt/{internals => internal}/parser/SplitExpressionsBehavior.scala (98%) rename main/src/test/scala/sbt/{internals => internal}/parser/SplitExpressionsFilesTest.scala (99%) rename main/src/test/scala/sbt/{internals => internal}/parser/SplitExpressionsTest.scala (87%) delete mode 100644 main/src/test/scala/sbt/internals/parser/AbstractSpec.scala diff --git a/main/src/main/scala/sbt/BuildUtil.scala b/main/src/main/scala/sbt/BuildUtil.scala index 297e50a13..b18902146 100644 --- a/main/src/main/scala/sbt/BuildUtil.scala +++ b/main/src/main/scala/sbt/BuildUtil.scala @@ -72,7 +72,7 @@ object BuildUtil { } } - def baseImports: Seq[String] = "import scala.xml.{TopScope=>$scope}" :: "import sbt._, Keys._, dsl._, syntax._" :: Nil + def baseImports: Seq[String] = "import scala.xml.{TopScope=>$scope}" :: "import sbt._, Keys._, syntax._" :: Nil def getImports(unit: BuildUnit): Seq[String] = unit.plugins.detected.imports ++ unit.definitions.dslDefinitions.imports diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index 8c2dd791c..a949c97da 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -3,7 +3,7 @@ */ package sbt -import sbt.internal.Load +import sbt.internal.{ Load, EvaluateConfigurations } import sbt.internal.util.{ AttributeKey, AttributeMap, complete, ConsoleOut, GlobalLogging, LineRange, MainLogging, SimpleReader, Types } import sbt.util.{ Level, Logger } diff --git a/main/src/main/scala/sbt/Script.scala b/main/src/main/scala/sbt/Script.scala index 0bc037590..a84363dc0 100644 --- a/main/src/main/scala/sbt/Script.scala +++ b/main/src/main/scala/sbt/Script.scala @@ -3,7 +3,7 @@ */ package sbt -import sbt.internal.Load +import sbt.internal.{ Load, EvaluateConfigurations } import sbt.librarymanagement.Configurations import sbt.util.Level diff --git a/main/src/main/scala/sbt/SessionSettings.scala b/main/src/main/scala/sbt/SessionSettings.scala index 771afe74e..73c02368b 100755 --- a/main/src/main/scala/sbt/SessionSettings.scala +++ b/main/src/main/scala/sbt/SessionSettings.scala @@ -12,7 +12,7 @@ import Types.Endo import compiler.Eval import SessionSettings._ -import sbt.internals.parser.SbtRefactorings +import sbt.internal.parser.SbtRefactorings import sbt.io.IO diff --git a/main/src/main/scala/sbt/dsl/package.scala b/main/src/main/scala/sbt/dsl/package.scala deleted file mode 100644 index 637f3528c..000000000 --- a/main/src/main/scala/sbt/dsl/package.scala +++ /dev/null @@ -1,17 +0,0 @@ -package sbt - -import sbt.librarymanagement.Configuration - -import internals.{ - DslEntry, - DslConfigs, - DslEnablePlugins, - DslDisablePlugins -} - -package object dsl { - def enablePlugins(ps: AutoPlugin*): DslEntry = DslEnablePlugins(ps) - def disablePlugins(ps: AutoPlugin*): DslEntry = DslDisablePlugins(ps) - def configs(cs: Configuration*): DslEntry = DslConfigs(cs) - -} diff --git a/main/src/main/scala/sbt/internal/DslAst.scala b/main/src/main/scala/sbt/internal/DslAst.scala new file mode 100644 index 000000000..9098a54cc --- /dev/null +++ b/main/src/main/scala/sbt/internal/DslAst.scala @@ -0,0 +1,65 @@ +package sbt +package internal + +import sbt.internal.util.RangePosition + +import sbt.librarymanagement.Configuration + +import Def._ + +/** This reprsents a `Setting` expression configured by the sbt DSL. */ +sealed trait DslEntry { + /** Called by the parser. Sets the position where this entry was defined in the build.sbt file. */ + def withPos(pos: RangePosition): DslEntry +} +object DslEntry { + implicit def fromSettingsDef(inc: SettingsDefinition): DslEntry = + DslSetting(inc) + implicit def fromSettingsDef(inc: Seq[Setting[_]]): DslEntry = + DslSetting(inc) + + /** Represents a DSL entry which adds settings to the current project. */ + sealed trait ProjectSettings extends DslEntry { + def toSettings: Seq[Setting[_]] + } + object ProjectSettings { + def unapply(e: DslEntry): Option[Seq[Setting[_]]] = + e match { + case e: ProjectSettings => Some(e.toSettings) + case _ => None + } + } + + /** Represents a DSL entry which manipulates the current project. */ + sealed trait ProjectManipulation extends DslEntry { + def toFunction: Project => Project + // TODO - Should we store this? + final def withPos(pos: RangePosition): DslEntry = this + } + object ProjectManipulation { + def unapply(e: DslEntry): Option[Project => Project] = + e match { + case e: ProjectManipulation => Some(e.toFunction) + case _ => None + } + } + + /** this represents an actually Setting[_] or Seq[Setting[_]] configured by the sbt DSL. */ + case class DslSetting(settings: SettingsDefinition) extends ProjectSettings { + def toSettings = settings.settings + final def withPos(pos: RangePosition): DslEntry = DslSetting(settings.settings.map(_.withPos(pos))) + } + /** this represents an `enablePlugins()` in the sbt DSL */ + case class DslEnablePlugins(plugins: Seq[AutoPlugin]) extends ProjectManipulation { + override val toFunction: Project => Project = _.enablePlugins(plugins: _*) + } + /** this represents an `disablePlugins()` in the sbt DSL */ + case class DslDisablePlugins(plugins: Seq[AutoPlugin]) extends ProjectManipulation { + override val toFunction: Project => Project = _.disablePlugins(plugins: _*) + } + /** Represents registering a set of configurations with the current project. */ + case class DslConfigs(cs: Seq[Configuration]) extends ProjectManipulation { + override val toFunction: Project => Project = _.configs(cs: _*) + } + +} diff --git a/main/src/main/scala/sbt/EvaluateConfigurations.scala b/main/src/main/scala/sbt/internal/EvaluateConfigurations.scala similarity index 95% rename from main/src/main/scala/sbt/EvaluateConfigurations.scala rename to main/src/main/scala/sbt/internal/EvaluateConfigurations.scala index c9ab5d275..4f2c9b327 100644 --- a/main/src/main/scala/sbt/EvaluateConfigurations.scala +++ b/main/src/main/scala/sbt/internal/EvaluateConfigurations.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import sbt.internal.util.{ complete, AttributeEntry, AttributeKey, LineRange, MessageOnlyException, RangePosition, Settings } @@ -10,7 +11,7 @@ import compiler.{ Eval, EvalImports } import complete.DefaultParsers.validID import Def.{ ScopedKey, Setting } import Scope.GlobalScope -import sbt.internals.parser.SbtParser +import sbt.internal.parser.SbtParser import scala.annotation.tailrec @@ -27,7 +28,7 @@ import sbt.io.IO * * */ -object EvaluateConfigurations { +private[sbt] object EvaluateConfigurations { type LazyClassLoaded[T] = ClassLoader => T @@ -130,15 +131,15 @@ object EvaluateConfigurations { } val (settingsRaw, manipulationsRaw) = dslEntries map (_.result apply loader) partition { - case internals.ProjectSettings(_) => true - case _ => false + case DslEntry.ProjectSettings(_) => true + case _ => false } val settings = settingsRaw flatMap { - case internals.ProjectSettings(settings) => settings - case _ => Nil + case DslEntry.ProjectSettings(settings) => settings + case _ => Nil } val manipulations = manipulationsRaw map { - case internals.ProjectManipulation(f) => f + case DslEntry.ProjectManipulation(f) => f } // TODO -get project manipulations. new LoadedSbtFile(settings, projects, importDefs, manipulations, definitions, allGeneratedFiles) @@ -158,8 +159,8 @@ object EvaluateConfigurations { * The name of the class we cast DSL "setting" (vs. definition) lines to. */ val SettingsDefinitionName = { - val _ = classOf[sbt.internals.DslEntry] // this line exists to try to provide a compile-time error when the following line needs to be changed - "sbt.internals.DslEntry" + val _ = classOf[DslEntry] // this line exists to try to provide a compile-time error when the following line needs to be changed + "sbt.internal.DslEntry" } /** @@ -171,10 +172,10 @@ object EvaluateConfigurations { * @param expression The scala expression we're compiling * @param range The original position in source of the expression, for error messages. * - * @return A method that given an sbt classloader, can return the actual [[internals.DslEntry]] defined by + * @return A method that given an sbt classloader, can return the actual [[sbt.internal.DslEntry]] defined by * the expression, and the sequence of .class files generated. */ - private[sbt] def evaluateDslEntry(eval: Eval, name: String, imports: Seq[(String, Int)], expression: String, range: LineRange): TrackedEvalResult[internals.DslEntry] = { + private[sbt] def evaluateDslEntry(eval: Eval, name: String, imports: Seq[(String, Int)], expression: String, range: LineRange): TrackedEvalResult[DslEntry] = { // TODO - Should we try to namespace these between.sbt files? IF they hash to the same value, they may actually be // exactly the same setting, so perhaps we don't care? val result = try { @@ -186,7 +187,7 @@ object EvaluateConfigurations { TrackedEvalResult(result.generated, loader => { val pos = RangePosition(name, range shift 1) - result.getValue(loader).asInstanceOf[internals.DslEntry].withPos(pos) + result.getValue(loader).asInstanceOf[DslEntry].withPos(pos) }) } @@ -207,8 +208,8 @@ object EvaluateConfigurations { def evaluateSetting(eval: Eval, name: String, imports: Seq[(String, Int)], expression: String, range: LineRange): LazyClassLoaded[Seq[Setting[_]]] = { evaluateDslEntry(eval, name, imports, expression, range).result andThen { - case internals.ProjectSettings(values) => values - case _ => Nil + case DslEntry.ProjectSettings(values) => values + case _ => Nil } } private[this] def isSpace = (c: Char) => Character isWhitespace c diff --git a/main/src/main/scala/sbt/internals/parser/SbtParser.scala b/main/src/main/scala/sbt/internal/parser/SbtParser.scala similarity index 98% rename from main/src/main/scala/sbt/internals/parser/SbtParser.scala rename to main/src/main/scala/sbt/internal/parser/SbtParser.scala index bf2289665..22e6e5ca0 100644 --- a/main/src/main/scala/sbt/internals/parser/SbtParser.scala +++ b/main/src/main/scala/sbt/internal/parser/SbtParser.scala @@ -1,12 +1,12 @@ package sbt -package internals +package internal package parser import sbt.internal.util.{ LineRange, MessageOnlyException } import java.io.File -import sbt.internals.parser.SbtParser._ +import sbt.internal.parser.SbtParser._ import scala.reflect.runtime.universe._ @@ -60,7 +60,7 @@ private[sbt] case class SbtParser(file: File, lines: Seq[String]) extends Parsed val (imports, settings, settingsTrees) = splitExpressions(file, lines) private def splitExpressions(file: File, lines: Seq[String]): (Seq[(String, Int)], Seq[(String, LineRange)], Seq[(String, Tree)]) = { - import sbt.internals.parser.MissingBracketHandler._ + import sbt.internal.parser.MissingBracketHandler._ import scala.compat.Platform.EOL import scala.reflect.runtime._ diff --git a/main/src/main/scala/sbt/internals/parser/SbtRefactorings.scala b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala similarity index 97% rename from main/src/main/scala/sbt/internals/parser/SbtRefactorings.scala rename to main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala index f04a64829..75accb120 100644 --- a/main/src/main/scala/sbt/internals/parser/SbtRefactorings.scala +++ b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala @@ -1,12 +1,12 @@ package sbt -package internals +package internal package parser import scala.reflect.runtime.universe._ private[sbt] object SbtRefactorings { - import sbt.internals.parser.SbtParser.{ END_OF_LINE, FAKE_FILE } + import sbt.internal.parser.SbtParser.{ END_OF_LINE, FAKE_FILE } import sbt.SessionSettings.{ SessionSetting, SbtConfigFile } val EMPTY_STRING = "" diff --git a/main/src/main/scala/sbt/internals/DslAst.scala b/main/src/main/scala/sbt/internals/DslAst.scala deleted file mode 100644 index d56641e16..000000000 --- a/main/src/main/scala/sbt/internals/DslAst.scala +++ /dev/null @@ -1,65 +0,0 @@ -package sbt -package internals - -import sbt.internal.util.RangePosition - -import sbt.librarymanagement.Configuration - -import Def._ - -/** This reprsents a `Setting` expression configured by the sbt DSL. */ -sealed trait DslEntry { - /** Called by the parser. Sets the position where this entry was defined in the build.sbt file. */ - def withPos(pos: RangePosition): DslEntry -} -object DslEntry { - implicit def fromSettingsDef(inc: SettingsDefinition): DslEntry = - DslSetting(inc) - implicit def fromSettingsDef(inc: Seq[Setting[_]]): DslEntry = - DslSetting(inc) -} - -/** Represents a DSL entry which adds settings to the current project. */ -sealed trait ProjectSettings extends DslEntry { - def toSettings: Seq[Setting[_]] -} -object ProjectSettings { - def unapply(e: DslEntry): Option[Seq[Setting[_]]] = - e match { - case e: ProjectSettings => Some(e.toSettings) - case _ => None - } -} - -/** Represents a DSL entry which manipulates the current project. */ -sealed trait ProjectManipulation extends DslEntry { - def toFunction: Project => Project - // TODO - Should we store this? - final def withPos(pos: RangePosition): DslEntry = this -} -object ProjectManipulation { - def unapply(e: DslEntry): Option[Project => Project] = - e match { - case e: ProjectManipulation => Some(e.toFunction) - case _ => None - } -} - -/** this represents an actually Setting[_] or Seq[Setting[_]] configured by the sbt DSL. */ -case class DslSetting(settings: SettingsDefinition) extends ProjectSettings { - def toSettings = settings.settings - final def withPos(pos: RangePosition): DslEntry = DslSetting(settings.settings.map(_.withPos(pos))) -} -/** this represents an `enablePlugins()` in the sbt DSL */ -case class DslEnablePlugins(plugins: Seq[AutoPlugin]) extends ProjectManipulation { - override val toFunction: Project => Project = _.enablePlugins(plugins: _*) -} -/** this represents an `disablePlugins()` in the sbt DSL */ -case class DslDisablePlugins(plugins: Seq[AutoPlugin]) extends ProjectManipulation { - override val toFunction: Project => Project = _.disablePlugins(plugins: _*) -} -/** Represents registering a set of configurations with the current project. */ -case class DslConfigs(cs: Seq[Configuration]) extends ProjectManipulation { - override val toFunction: Project => Project = _.configs(cs: _*) -} - diff --git a/main/src/test/scala/sbt/internal/parser/AbstractSpec.scala b/main/src/test/scala/sbt/internal/parser/AbstractSpec.scala new file mode 100644 index 000000000..cb0377b0a --- /dev/null +++ b/main/src/test/scala/sbt/internal/parser/AbstractSpec.scala @@ -0,0 +1,5 @@ +package sbt.internal.parser + +import org.specs2.mutable._ + +trait AbstractSpec extends Specification with SplitExpression \ No newline at end of file diff --git a/main/src/test/scala/sbt/internals/parser/CheckIfParsedSpec.scala b/main/src/test/scala/sbt/internal/parser/CheckIfParsedSpec.scala similarity index 94% rename from main/src/test/scala/sbt/internals/parser/CheckIfParsedSpec.scala rename to main/src/test/scala/sbt/internal/parser/CheckIfParsedSpec.scala index 2a9fdc71e..d3bc24510 100644 --- a/main/src/test/scala/sbt/internals/parser/CheckIfParsedSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/CheckIfParsedSpec.scala @@ -1,6 +1,6 @@ -package sbt.internals.parser - -import sbt.EvaluateConfigurations +package sbt +package internal +package parser abstract class CheckIfParsedSpec(implicit val splitter: SplitExpressions.SplitExpression = EvaluateConfigurations.splitExpressions) extends AbstractSpec { diff --git a/main/src/test/scala/sbt/internals/parser/CommentedXmlSpec.scala b/main/src/test/scala/sbt/internal/parser/CommentedXmlSpec.scala similarity index 98% rename from main/src/test/scala/sbt/internals/parser/CommentedXmlSpec.scala rename to main/src/test/scala/sbt/internal/parser/CommentedXmlSpec.scala index 22a91de10..d4e6b9f90 100644 --- a/main/src/test/scala/sbt/internals/parser/CommentedXmlSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/CommentedXmlSpec.scala @@ -1,4 +1,4 @@ -package sbt.internals.parser +package sbt.internal.parser class CommentedXmlSpec extends CheckIfParsedSpec { diff --git a/main/src/test/scala/sbt/internals/parser/EmbeddedXmlSpec.scala b/main/src/test/scala/sbt/internal/parser/EmbeddedXmlSpec.scala similarity index 99% rename from main/src/test/scala/sbt/internals/parser/EmbeddedXmlSpec.scala rename to main/src/test/scala/sbt/internal/parser/EmbeddedXmlSpec.scala index af50ed110..b054e73e2 100644 --- a/main/src/test/scala/sbt/internals/parser/EmbeddedXmlSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/EmbeddedXmlSpec.scala @@ -1,4 +1,4 @@ -package sbt.internals.parser +package sbt.internal.parser import sbt.internal.util.MessageOnlyException diff --git a/main/src/test/scala/sbt/internals/parser/ErrorSpec.scala b/main/src/test/scala/sbt/internal/parser/ErrorSpec.scala similarity index 97% rename from main/src/test/scala/sbt/internals/parser/ErrorSpec.scala rename to main/src/test/scala/sbt/internal/parser/ErrorSpec.scala index 36aa3eb38..15751c094 100644 --- a/main/src/test/scala/sbt/internals/parser/ErrorSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/ErrorSpec.scala @@ -1,9 +1,10 @@ -package sbt.internals.parser +package sbt +package internal +package parser import java.io.File import org.specs2.ScalaCheck -import sbt.EvaluateConfigurations import sbt.internal.util.MessageOnlyException import scala.io.Source diff --git a/main/src/test/scala/sbt/internals/parser/EvaluateConfigurationsOriginal.scala b/main/src/test/scala/sbt/internal/parser/EvaluateConfigurationsOriginal.scala similarity index 86% rename from main/src/test/scala/sbt/internals/parser/EvaluateConfigurationsOriginal.scala rename to main/src/test/scala/sbt/internal/parser/EvaluateConfigurationsOriginal.scala index d884b7401..01de4b3b5 100644 --- a/main/src/test/scala/sbt/internals/parser/EvaluateConfigurationsOriginal.scala +++ b/main/src/test/scala/sbt/internal/parser/EvaluateConfigurationsOriginal.scala @@ -1,8 +1,9 @@ -package sbt.internals.parser +package sbt +package internal +package parser import java.io.File -import sbt.EvaluateConfigurations import sbt.internal.util.LineRange import scala.annotation.tailrec diff --git a/main/src/test/scala/sbt/internals/parser/NewFormatSpec.scala b/main/src/test/scala/sbt/internal/parser/NewFormatSpec.scala similarity index 93% rename from main/src/test/scala/sbt/internals/parser/NewFormatSpec.scala rename to main/src/test/scala/sbt/internal/parser/NewFormatSpec.scala index a540c318b..89a2749d7 100644 --- a/main/src/test/scala/sbt/internals/parser/NewFormatSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/NewFormatSpec.scala @@ -1,10 +1,11 @@ -package sbt.internals.parser +package sbt +package internal +package parser import java.io.File import org.junit.runner.RunWith import org.specs2.runner.JUnitRunner -import sbt.EvaluateConfigurations import scala.io.Source diff --git a/main/src/test/scala/sbt/internals/parser/SessionSettingsSpec.scala b/main/src/test/scala/sbt/internal/parser/SessionSettingsSpec.scala similarity index 98% rename from main/src/test/scala/sbt/internals/parser/SessionSettingsSpec.scala rename to main/src/test/scala/sbt/internal/parser/SessionSettingsSpec.scala index aa5007020..cb7488290 100644 --- a/main/src/test/scala/sbt/internals/parser/SessionSettingsSpec.scala +++ b/main/src/test/scala/sbt/internal/parser/SessionSettingsSpec.scala @@ -1,5 +1,5 @@ package sbt -package internals +package internal package parser import java.io.{ File, FilenameFilter } diff --git a/main/src/test/scala/sbt/internals/parser/SplitExpressions.scala b/main/src/test/scala/sbt/internal/parser/SplitExpressions.scala similarity index 80% rename from main/src/test/scala/sbt/internals/parser/SplitExpressions.scala rename to main/src/test/scala/sbt/internal/parser/SplitExpressions.scala index 3ef22988f..75b31f312 100644 --- a/main/src/test/scala/sbt/internals/parser/SplitExpressions.scala +++ b/main/src/test/scala/sbt/internal/parser/SplitExpressions.scala @@ -1,4 +1,6 @@ -package sbt.internals.parser +package sbt +package internal +package parser import java.io.File diff --git a/main/src/test/scala/sbt/internals/parser/SplitExpressionsBehavior.scala b/main/src/test/scala/sbt/internal/parser/SplitExpressionsBehavior.scala similarity index 98% rename from main/src/test/scala/sbt/internals/parser/SplitExpressionsBehavior.scala rename to main/src/test/scala/sbt/internal/parser/SplitExpressionsBehavior.scala index ffd535bec..8889735d4 100644 --- a/main/src/test/scala/sbt/internals/parser/SplitExpressionsBehavior.scala +++ b/main/src/test/scala/sbt/internal/parser/SplitExpressionsBehavior.scala @@ -1,4 +1,6 @@ -package sbt.internals.parser +package sbt +package internal +package parser import java.io.File diff --git a/main/src/test/scala/sbt/internals/parser/SplitExpressionsFilesTest.scala b/main/src/test/scala/sbt/internal/parser/SplitExpressionsFilesTest.scala similarity index 99% rename from main/src/test/scala/sbt/internals/parser/SplitExpressionsFilesTest.scala rename to main/src/test/scala/sbt/internal/parser/SplitExpressionsFilesTest.scala index 9cbc909ca..df68deaf0 100644 --- a/main/src/test/scala/sbt/internals/parser/SplitExpressionsFilesTest.scala +++ b/main/src/test/scala/sbt/internal/parser/SplitExpressionsFilesTest.scala @@ -1,5 +1,5 @@ package sbt -package internals +package internal package parser import java.io.File diff --git a/main/src/test/scala/sbt/internals/parser/SplitExpressionsTest.scala b/main/src/test/scala/sbt/internal/parser/SplitExpressionsTest.scala similarity index 87% rename from main/src/test/scala/sbt/internals/parser/SplitExpressionsTest.scala rename to main/src/test/scala/sbt/internal/parser/SplitExpressionsTest.scala index 82dfdf0b2..11bbe757c 100644 --- a/main/src/test/scala/sbt/internals/parser/SplitExpressionsTest.scala +++ b/main/src/test/scala/sbt/internal/parser/SplitExpressionsTest.scala @@ -1,7 +1,8 @@ -package sbt.internals.parser +package sbt +package internal +package parser import org.specs2.mutable.Specification -import sbt.EvaluateConfigurations class SplitExpressionsTest extends Specification with SplitExpressionsBehavior { diff --git a/main/src/test/scala/sbt/internals/parser/AbstractSpec.scala b/main/src/test/scala/sbt/internals/parser/AbstractSpec.scala deleted file mode 100644 index 6068bed9b..000000000 --- a/main/src/test/scala/sbt/internals/parser/AbstractSpec.scala +++ /dev/null @@ -1,5 +0,0 @@ -package sbt.internals.parser - -import org.specs2.mutable._ - -trait AbstractSpec extends Specification with SplitExpression \ No newline at end of file diff --git a/sbt/src/main/scala/syntax.scala b/sbt/src/main/scala/syntax.scala index 838eb123a..041f9e0f7 100644 --- a/sbt/src/main/scala/syntax.scala +++ b/sbt/src/main/scala/syntax.scala @@ -1,5 +1,7 @@ package sbt +import sbt.internal.DslEntry + object syntax extends syntax abstract class syntax extends IOSyntax0 with sbt.std.TaskExtra with sbt.internal.util.Types with sbt.ProcessExtra @@ -45,6 +47,10 @@ abstract class syntax extends IOSyntax0 with sbt.std.TaskExtra with sbt.internal def settingKey[T](description: String): SettingKey[T] = macro std.KeyMacro.settingKeyImpl[T] def taskKey[T](description: String): TaskKey[T] = macro std.KeyMacro.taskKeyImpl[T] def inputKey[T](description: String): InputKey[T] = macro std.KeyMacro.inputKeyImpl[T] + + def enablePlugins(ps: AutoPlugin*): DslEntry = DslEntry.DslEnablePlugins(ps) + def disablePlugins(ps: AutoPlugin*): DslEntry = DslEntry.DslDisablePlugins(ps) + def configs(cs: Configuration*): DslEntry = DslEntry.DslConfigs(cs) } // Todo share this this io.syntax From 0cc9488632ede428ce87f4d1909bb700e8a3df12 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 6 May 2016 19:21:13 -0400 Subject: [PATCH 04/10] Bring BuildStructure and others into internal --- main/src/main/scala/sbt/Cross.scala | 3 +- main/src/main/scala/sbt/Defaults.scala | 5 +- main/src/main/scala/sbt/EvaluateTask.scala | 2 +- main/src/main/scala/sbt/Extracted.scala | 2 +- main/src/main/scala/sbt/Keys.scala | 1 + main/src/main/scala/sbt/Main.scala | 7 +- main/src/main/scala/sbt/Project.scala | 4 +- main/src/main/scala/sbt/ScopeFilter.scala | 2 +- .../sbt/{ => internal}/APIMappings.scala | 1 + .../main/scala/sbt/{ => internal}/Act.scala | 3 +- .../sbt/{ => internal}/AddSettings.scala | 2 +- .../sbt/{ => internal}/Aggregation.scala | 7 +- .../{ => internal}/BuildDependencies.scala | 1 + .../sbt/{ => internal}/BuildStructure.scala | 2 +- .../scala/sbt/{ => internal}/BuildUtil.scala | 2 +- .../sbt/{ => internal}/CommandStrings.scala | 1 + .../sbt/{ => internal}/ConsoleProject.scala | 1 + .../scala/sbt/{ => internal}/GCUtil.scala | 1 + .../sbt/{ => internal}/GlobalPlugin.scala | 3 +- .../{ => internal}/GroupedAutoPlugins.scala | 3 +- .../scala/sbt/{ => internal}/Inspect.scala | 1 + .../scala/sbt/{ => internal}/IvyConsole.scala | 2 +- .../scala/sbt/{ => internal}/KeyIndex.scala | 11 +- main/src/main/scala/sbt/internal/Load.scala | 114 +++++++++--------- .../sbt/{ => internal}/LoadedSbtFile.scala | 1 + .../scala/sbt/{ => internal}/Output.scala | 1 + .../sbt/{ => internal}/PluginDiscovery.scala | 3 +- .../sbt/{ => internal}/PluginManagement.scala | 1 + .../sbt/{ => internal}/PluginsDebug.scala | 1 + .../{ => internal}/ProjectNavigation.scala | 2 +- .../scala/sbt/{ => internal}/Resolve.scala | 1 + .../sbt/{ => internal}/RetrieveUnit.scala | 1 + .../scala/sbt/{ => internal}/Script.scala | 2 +- .../sbt/{ => internal}/SessionSettings.scala | 1 + .../{ => internal}/SettingCompletions.scala | 2 +- .../sbt/{ => internal}/SettingGraph.scala | 1 + .../scala/sbt/{ => internal}/TaskName.scala | 1 + .../sbt/{ => internal}/TaskSequential.scala | 1 + .../sbt/{ => internal}/TaskTimings.scala | 1 + .../sbt/internal/parser/SbtRefactorings.scala | 2 +- main/src/test/scala/Delegates.scala | 2 +- main/src/test/scala/ParseKey.scala | 1 + main/src/test/scala/PluginCommandTest.scala | 2 +- .../scala/{ => sbt/internal}/TestBuild.scala | 1 + 44 files changed, 118 insertions(+), 91 deletions(-) rename main/src/main/scala/sbt/{ => internal}/APIMappings.scala (98%) rename main/src/main/scala/sbt/{ => internal}/Act.scala (99%) rename main/src/main/scala/sbt/{ => internal}/AddSettings.scala (99%) rename main/src/main/scala/sbt/{ => internal}/Aggregation.scala (98%) rename main/src/main/scala/sbt/{ => internal}/BuildDependencies.scala (98%) rename main/src/main/scala/sbt/{ => internal}/BuildStructure.scala (99%) rename main/src/main/scala/sbt/{ => internal}/BuildUtil.scala (99%) rename main/src/main/scala/sbt/{ => internal}/CommandStrings.scala (99%) rename main/src/main/scala/sbt/{ => internal}/ConsoleProject.scala (99%) rename main/src/main/scala/sbt/{ => internal}/GCUtil.scala (98%) rename main/src/main/scala/sbt/{ => internal}/GlobalPlugin.scala (98%) rename main/src/main/scala/sbt/{ => internal}/GroupedAutoPlugins.scala (97%) rename main/src/main/scala/sbt/{ => internal}/Inspect.scala (99%) rename main/src/main/scala/sbt/{ => internal}/IvyConsole.scala (99%) rename main/src/main/scala/sbt/{ => internal}/KeyIndex.scala (94%) rename main/src/main/scala/sbt/{ => internal}/LoadedSbtFile.scala (99%) rename main/src/main/scala/sbt/{ => internal}/Output.scala (99%) rename main/src/main/scala/sbt/{ => internal}/PluginDiscovery.scala (98%) rename main/src/main/scala/sbt/{ => internal}/PluginManagement.scala (99%) rename main/src/main/scala/sbt/{ => internal}/PluginsDebug.scala (99%) rename main/src/main/scala/sbt/{ => internal}/ProjectNavigation.scala (99%) rename main/src/main/scala/sbt/{ => internal}/Resolve.scala (98%) rename main/src/main/scala/sbt/{ => internal}/RetrieveUnit.scala (98%) rename main/src/main/scala/sbt/{ => internal}/Script.scala (98%) rename main/src/main/scala/sbt/{ => internal}/SessionSettings.scala (99%) rename main/src/main/scala/sbt/{ => internal}/SettingCompletions.scala (99%) rename main/src/main/scala/sbt/{ => internal}/SettingGraph.scala (99%) rename main/src/main/scala/sbt/{ => internal}/TaskName.scala (96%) rename main/src/main/scala/sbt/{ => internal}/TaskSequential.scala (99%) rename main/src/main/scala/sbt/{ => internal}/TaskTimings.scala (99%) rename main/src/test/scala/{ => sbt/internal}/TestBuild.scala (99%) diff --git a/main/src/main/scala/sbt/Cross.scala b/main/src/main/scala/sbt/Cross.scala index 9a17aeddf..174e2f248 100644 --- a/main/src/main/scala/sbt/Cross.scala +++ b/main/src/main/scala/sbt/Cross.scala @@ -4,12 +4,13 @@ package sbt import Keys._ +import sbt.internal.{ GCUtil, CommandStrings } import sbt.internal.util.complete.{ DefaultParsers, Parser } import sbt.internal.util.AttributeKey import DefaultParsers._ import Def.{ ScopedKey, Setting } import Scope.GlobalScope -import CommandStrings.{ CrossCommand, crossHelp, SwitchCommand, switchHelp } +import sbt.internal.CommandStrings.{ CrossCommand, crossHelp, SwitchCommand, switchHelp } import java.io.File import sbt.internal.inc.ScalaInstance diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 3f11a295b..dbc15d80a 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -4,6 +4,8 @@ package sbt import scala.concurrent.duration.{ FiniteDuration, Duration } +import sbt.internal.{ OldPlugin, Aggregation, LoadedBuild, BuildUtil, PluginDiscovery, APIMappings, BuildDependencies, GCUtil, TaskSequential } +import sbt.internal.ConsoleProject import sbt.internal.util.Attributed import sbt.internal.util.Attributed.data import Scope.{ fillTaskAxis, GlobalScope, ThisScope } @@ -23,7 +25,6 @@ import sbt.internal.inc.{ Analysis, ClassfileManager, ClasspathOptions, Compiler import testing.{ Framework, Runner, AnnotatedFingerprint, SubclassFingerprint } import sbt.librarymanagement.{ `package` => _, _ } -import sbt.internal.OldPlugin import sbt.internal.librarymanagement._ import sbt.internal.librarymanagement.syntax._ import sbt.internal.util._ @@ -39,7 +40,7 @@ import java.util.concurrent.{ TimeUnit, Callable } import sbinary.DefaultProtocol.StringFormat import sbt.internal.util.Cache.seqFormat import sbt.util.Logger -import CommandStrings.ExportStream +import sbt.internal.CommandStrings.ExportStream import xsbti.Maybe import sbt.util.InterfaceUtil.{ f1, o2m } diff --git a/main/src/main/scala/sbt/EvaluateTask.scala b/main/src/main/scala/sbt/EvaluateTask.scala index ade1a731b..ab9526e08 100644 --- a/main/src/main/scala/sbt/EvaluateTask.scala +++ b/main/src/main/scala/sbt/EvaluateTask.scala @@ -3,7 +3,7 @@ */ package sbt -import sbt.internal.Load +import sbt.internal.{ Load, BuildStructure, TaskTimings, TaskName, GCUtil } import sbt.internal.util.{ ErrorHandling, RMap, Show, Signals, Types } import sbt.util.Logger import sbt.librarymanagement.{ Resolver, UpdateReport } diff --git a/main/src/main/scala/sbt/Extracted.scala b/main/src/main/scala/sbt/Extracted.scala index a5174504c..fc2f17795 100644 --- a/main/src/main/scala/sbt/Extracted.scala +++ b/main/src/main/scala/sbt/Extracted.scala @@ -1,6 +1,6 @@ package sbt -import sbt.internal.Load +import sbt.internal.{ Load, BuildStructure, Act, Aggregation, SessionSettings } import Project._ import Scope.GlobalScope import Def.{ ScopedKey, Setting } diff --git a/main/src/main/scala/sbt/Keys.scala b/main/src/main/scala/sbt/Keys.scala index ad21453b3..980c99021 100644 --- a/main/src/main/scala/sbt/Keys.scala +++ b/main/src/main/scala/sbt/Keys.scala @@ -19,6 +19,7 @@ import testing.Framework import sbt.internal.util.Types.Id import KeyRanks._ +import sbt.internal.{ BuildStructure, LoadedBuild, PluginDiscovery, BuildDependencies, SessionSettings } import sbt.io.FileFilter import sbt.internal.io.WatchState import sbt.internal.util.AttributeKey diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index a949c97da..b3e2f2901 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -3,7 +3,8 @@ */ package sbt -import sbt.internal.{ Load, EvaluateConfigurations } +import sbt.internal.{ Load, EvaluateConfigurations, LoadedBuildUnit, Aggregation, BuildStructure, Act, Inspect, BuildUnit, Output, PluginsDebug } +import sbt.internal.{ SettingCompletions, CommandStrings, IvyConsole, ProjectNavigation, Script, SessionSettings } import sbt.internal.util.{ AttributeKey, AttributeMap, complete, ConsoleOut, GlobalLogging, LineRange, MainLogging, SimpleReader, Types } import sbt.util.{ Level, Logger } @@ -31,7 +32,7 @@ final class xMain extends xsbti.AppMain { import BasicCommands.early import BasicCommandStrings.runEarly import BuiltinCommands.{ initialize, defaults } - import CommandStrings.{ BootCommand, DefaultsCommand, InitCommand } + import sbt.internal.CommandStrings.{ BootCommand, DefaultsCommand, InitCommand } runManaged(initialState(configuration, Seq(defaults, early), runEarly(DefaultsCommand) :: runEarly(InitCommand) :: BootCommand :: Nil) @@ -79,7 +80,7 @@ object StandardMain { } import DefaultParsers._ -import CommandStrings._ +import sbt.internal.CommandStrings._ import BasicCommandStrings._ import BasicCommands._ import CommandUtil._ diff --git a/main/src/main/scala/sbt/Project.scala b/main/src/main/scala/sbt/Project.scala index c283ec7dd..456e6e20e 100755 --- a/main/src/main/scala/sbt/Project.scala +++ b/main/src/main/scala/sbt/Project.scala @@ -10,7 +10,7 @@ import Project._ import Keys.{ appConfiguration, stateBuildStructure, commands, configuration, historyPath, projectCommand, sessionSettings, shellPrompt, thisProject, thisProjectRef, watch } import Scope.{ GlobalScope, ThisScope } import Def.{ Flattened, Initialize, ScopedKey, Setting } -import sbt.internal.Load +import sbt.internal.{ Load, BuildStructure, LoadedBuild, LoadedBuildUnit, SettingGraph, SettingCompletions, AddSettings, SessionSettings } import sbt.internal.util.Eval import sbt.internal.util.Types.{ const, idFun } import sbt.internal.util.complete.DefaultParsers @@ -354,7 +354,7 @@ object Project extends ProjectExtra { def isProjectLoaded(state: State): Boolean = (state has sessionSettings) && (state has stateBuildStructure) def extract(state: State): Extracted = extract(session(state), structure(state)) - def extract(se: SessionSettings, st: BuildStructure): Extracted = Extracted(st, se, se.current)(showContextKey(se, st)) + private[sbt] def extract(se: SessionSettings, st: BuildStructure): Extracted = Extracted(st, se, se.current)(showContextKey(se, st)) def getProjectForReference(ref: Reference, structure: BuildStructure): Option[ResolvedProject] = ref match { case pr: ProjectRef => getProject(pr, structure); case _ => None } diff --git a/main/src/main/scala/sbt/ScopeFilter.scala b/main/src/main/scala/sbt/ScopeFilter.scala index 9ed999c7b..b171f3ee4 100644 --- a/main/src/main/scala/sbt/ScopeFilter.scala +++ b/main/src/main/scala/sbt/ScopeFilter.scala @@ -1,6 +1,6 @@ package sbt -import sbt.internal.Load +import sbt.internal.{ Load, LoadedBuildUnit } import sbt.internal.util.{ AttributeKey, Dag, Types } import sbt.librarymanagement.Configuration diff --git a/main/src/main/scala/sbt/APIMappings.scala b/main/src/main/scala/sbt/internal/APIMappings.scala similarity index 98% rename from main/src/main/scala/sbt/APIMappings.scala rename to main/src/main/scala/sbt/internal/APIMappings.scala index f807684b0..b9e4dfc7c 100644 --- a/main/src/main/scala/sbt/APIMappings.scala +++ b/main/src/main/scala/sbt/internal/APIMappings.scala @@ -1,4 +1,5 @@ package sbt +package internal import java.io.File import java.net.{ MalformedURLException, URL } diff --git a/main/src/main/scala/sbt/Act.scala b/main/src/main/scala/sbt/internal/Act.scala similarity index 99% rename from main/src/main/scala/sbt/Act.scala rename to main/src/main/scala/sbt/internal/Act.scala index a5d09921c..a5fb38c91 100644 --- a/main/src/main/scala/sbt/Act.scala +++ b/main/src/main/scala/sbt/internal/Act.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import Def.{ showRelativeKey, ScopedKey } import Project.showContextKey @@ -11,7 +12,7 @@ import Aggregation.{ KeyValue, Values } import DefaultParsers._ import sbt.internal.util.Types.idFun import java.net.URI -import CommandStrings.{ MultiTaskCommand, ShowCommand } +import sbt.internal.CommandStrings.{ MultiTaskCommand, ShowCommand } import sbt.internal.util.{ AttributeEntry, AttributeKey, AttributeMap, IMap, Settings, Show, Util } final class ParsedKey(val key: ScopedKey[_], val mask: ScopeMask) diff --git a/main/src/main/scala/sbt/AddSettings.scala b/main/src/main/scala/sbt/internal/AddSettings.scala similarity index 99% rename from main/src/main/scala/sbt/AddSettings.scala rename to main/src/main/scala/sbt/internal/AddSettings.scala index 2c4165a29..cec7eb19e 100644 --- a/main/src/main/scala/sbt/AddSettings.scala +++ b/main/src/main/scala/sbt/internal/AddSettings.scala @@ -1,7 +1,7 @@ package sbt +package internal import sbt.internal.util.Types.const -import sbt.internal.OldPlugin import java.io.File /** diff --git a/main/src/main/scala/sbt/Aggregation.scala b/main/src/main/scala/sbt/internal/Aggregation.scala similarity index 98% rename from main/src/main/scala/sbt/Aggregation.scala rename to main/src/main/scala/sbt/internal/Aggregation.scala index 45bf254bb..20ebdd228 100644 --- a/main/src/main/scala/sbt/Aggregation.scala +++ b/main/src/main/scala/sbt/internal/Aggregation.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import Def.ScopedKey import Keys.{ aggregate, showSuccess, showTiming, timingFormat } @@ -9,14 +10,14 @@ import sbt.internal.util.complete.Parser import sbt.internal.util.{ Dag, HList, Relation, Settings, Show, Util } import sbt.util.Logger import java.net.URI -import Parser._ +import Parser.{ seq, failure, success } import collection.mutable import std.Transform.{ DummyTaskMap, TaskAndValue } sealed trait Aggregation final object Aggregation { final case class ShowConfig(settingValues: Boolean, taskValues: Boolean, print: String => Unit, success: Boolean) - final case class Complete[T](start: Long, stop: Long, results: Result[Seq[KeyValue[T]]], state: State) + final case class Complete[T](start: Long, stop: Long, results: sbt.Result[Seq[KeyValue[T]]], state: State) final case class KeyValue[+T](key: ScopedKey[_], value: T) def defaultShow(state: State, showTasks: Boolean): ShowConfig = ShowConfig(settingValues = true, taskValues = showTasks, s => state.log.info(s), success = true) @@ -44,7 +45,7 @@ final object Aggregation { def showRun[T](complete: Complete[T], show: ShowConfig)(implicit display: Show[ScopedKey[_]]): Unit = { import complete._ val log = state.log - val extracted = Project extract state + val extracted = Project.extract(state) val success = results match { case Value(_) => true; case Inc(_) => false } results.toEither.right.foreach { r => if (show.taskValues) printSettings(r, show.print) } if (show.success) printSuccess(start, stop, extracted, success, log) diff --git a/main/src/main/scala/sbt/BuildDependencies.scala b/main/src/main/scala/sbt/internal/BuildDependencies.scala similarity index 98% rename from main/src/main/scala/sbt/BuildDependencies.scala rename to main/src/main/scala/sbt/internal/BuildDependencies.scala index 2d71e1788..45a618d58 100644 --- a/main/src/main/scala/sbt/BuildDependencies.scala +++ b/main/src/main/scala/sbt/internal/BuildDependencies.scala @@ -1,4 +1,5 @@ package sbt +package internal import sbt.internal.util.Types.idFun import sbt.internal.util.Dag diff --git a/main/src/main/scala/sbt/BuildStructure.scala b/main/src/main/scala/sbt/internal/BuildStructure.scala similarity index 99% rename from main/src/main/scala/sbt/BuildStructure.scala rename to main/src/main/scala/sbt/internal/BuildStructure.scala index 217233a54..eef94a6cc 100644 --- a/main/src/main/scala/sbt/BuildStructure.scala +++ b/main/src/main/scala/sbt/internal/BuildStructure.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import java.io.File import java.net.URI @@ -9,7 +10,6 @@ import Def.{ displayFull, ScopedKey, ScopeLocal, Setting } import BuildPaths.outputDirectory import Scope.GlobalScope import BuildStreams.Streams -import sbt.internal.{ BuildDef, Load, OldPlugin } import sbt.io.syntax._ import sbt.internal.util.{ Attributed, AttributeEntry, AttributeKey, AttributeMap, Settings } import sbt.internal.util.Attributed.data diff --git a/main/src/main/scala/sbt/BuildUtil.scala b/main/src/main/scala/sbt/internal/BuildUtil.scala similarity index 99% rename from main/src/main/scala/sbt/BuildUtil.scala rename to main/src/main/scala/sbt/internal/BuildUtil.scala index b18902146..126b60857 100644 --- a/main/src/main/scala/sbt/BuildUtil.scala +++ b/main/src/main/scala/sbt/internal/BuildUtil.scala @@ -1,7 +1,7 @@ package sbt +package internal import sbt.internal.util.{ Relation, Settings, Dag } -import sbt.internal.Load import java.net.URI diff --git a/main/src/main/scala/sbt/CommandStrings.scala b/main/src/main/scala/sbt/internal/CommandStrings.scala similarity index 99% rename from main/src/main/scala/sbt/CommandStrings.scala rename to main/src/main/scala/sbt/internal/CommandStrings.scala index 94d23526e..18a85f657 100644 --- a/main/src/main/scala/sbt/CommandStrings.scala +++ b/main/src/main/scala/sbt/internal/CommandStrings.scala @@ -2,6 +2,7 @@ * Copyright 2010 Mark Harrah */ package sbt +package internal import sbt.io.Path diff --git a/main/src/main/scala/sbt/ConsoleProject.scala b/main/src/main/scala/sbt/internal/ConsoleProject.scala similarity index 99% rename from main/src/main/scala/sbt/ConsoleProject.scala rename to main/src/main/scala/sbt/internal/ConsoleProject.scala index 4158e3364..a10cb4147 100644 --- a/main/src/main/scala/sbt/ConsoleProject.scala +++ b/main/src/main/scala/sbt/internal/ConsoleProject.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import sbt.util.Logger import java.io.File diff --git a/main/src/main/scala/sbt/GCUtil.scala b/main/src/main/scala/sbt/internal/GCUtil.scala similarity index 98% rename from main/src/main/scala/sbt/GCUtil.scala rename to main/src/main/scala/sbt/internal/GCUtil.scala index c25668a44..c8793335c 100644 --- a/main/src/main/scala/sbt/GCUtil.scala +++ b/main/src/main/scala/sbt/internal/GCUtil.scala @@ -1,4 +1,5 @@ package sbt +package internal import java.util.concurrent.atomic.AtomicLong import scala.concurrent.duration._ diff --git a/main/src/main/scala/sbt/GlobalPlugin.scala b/main/src/main/scala/sbt/internal/GlobalPlugin.scala similarity index 98% rename from main/src/main/scala/sbt/GlobalPlugin.scala rename to main/src/main/scala/sbt/internal/GlobalPlugin.scala index 07c72da47..fde91a7d7 100644 --- a/main/src/main/scala/sbt/GlobalPlugin.scala +++ b/main/src/main/scala/sbt/internal/GlobalPlugin.scala @@ -1,9 +1,8 @@ package sbt +package internal import sbt.librarymanagement.{ Configuration, Configurations, ModuleID, Resolver, SbtArtifacts, UpdateReport } import sbt.internal.util.Attributed - -import sbt.internal.{ Load, LoadBuildConfiguration } import Def.{ ScopedKey, Setting } import Scoped._ import Keys._ diff --git a/main/src/main/scala/sbt/GroupedAutoPlugins.scala b/main/src/main/scala/sbt/internal/GroupedAutoPlugins.scala similarity index 97% rename from main/src/main/scala/sbt/GroupedAutoPlugins.scala rename to main/src/main/scala/sbt/internal/GroupedAutoPlugins.scala index 0dfcbb716..defaf7ed3 100644 --- a/main/src/main/scala/sbt/GroupedAutoPlugins.scala +++ b/main/src/main/scala/sbt/internal/GroupedAutoPlugins.scala @@ -1,4 +1,5 @@ package sbt +package internal import Def.Setting import java.net.URI @@ -15,4 +16,4 @@ private[sbt] object GroupedAutoPlugins { val all: Seq[AutoPlugin] = byBuild.values.toSeq.flatten.distinct new GroupedAutoPlugins(all, byBuild) } -} \ No newline at end of file +} diff --git a/main/src/main/scala/sbt/Inspect.scala b/main/src/main/scala/sbt/internal/Inspect.scala similarity index 99% rename from main/src/main/scala/sbt/Inspect.scala rename to main/src/main/scala/sbt/internal/Inspect.scala index 6413ce2cb..a8ffb3111 100644 --- a/main/src/main/scala/sbt/Inspect.scala +++ b/main/src/main/scala/sbt/internal/Inspect.scala @@ -1,4 +1,5 @@ package sbt +package internal import sbt.internal.util.{ AttributeKey, complete, Types } diff --git a/main/src/main/scala/sbt/IvyConsole.scala b/main/src/main/scala/sbt/internal/IvyConsole.scala similarity index 99% rename from main/src/main/scala/sbt/IvyConsole.scala rename to main/src/main/scala/sbt/internal/IvyConsole.scala index 2b06f0c5b..3db965653 100644 --- a/main/src/main/scala/sbt/IvyConsole.scala +++ b/main/src/main/scala/sbt/internal/IvyConsole.scala @@ -2,8 +2,8 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal -import sbt.internal.Load import sbt.internal.util.Attributed import sbt.util.{ Level, Logger } diff --git a/main/src/main/scala/sbt/KeyIndex.scala b/main/src/main/scala/sbt/internal/KeyIndex.scala similarity index 94% rename from main/src/main/scala/sbt/KeyIndex.scala rename to main/src/main/scala/sbt/internal/KeyIndex.scala index 39d3eb3bb..a293d6929 100644 --- a/main/src/main/scala/sbt/KeyIndex.scala +++ b/main/src/main/scala/sbt/internal/KeyIndex.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import sbt.internal.util.Relation @@ -68,32 +69,32 @@ trait ExtendableKeyIndex extends KeyIndex { def addAggregated(scoped: ScopedKey[_], extra: BuildUtil[_]): ExtendableKeyIndex } // task axis <-> key -private final class AKeyIndex(val data: Relation[Option[AttributeKey[_]], String]) { +private[sbt] final class AKeyIndex(val data: Relation[Option[AttributeKey[_]], String]) { def add(task: Option[AttributeKey[_]], key: AttributeKey[_]): AKeyIndex = new AKeyIndex(data + (task, key.rawLabel) + (task, key.label)) def keys(task: Option[AttributeKey[_]]): Set[String] = data.forward(task) def allKeys: Set[String] = data._2s.toSet def tasks: Set[AttributeKey[_]] = data._1s.flatten.toSet def tasks(key: String): Set[AttributeKey[_]] = data.reverse(key).flatten.toSet } -private final class ConfigIndex(val data: Map[Option[String], AKeyIndex]) { +private[sbt] final class ConfigIndex(val data: Map[Option[String], AKeyIndex]) { def add(config: Option[String], task: Option[AttributeKey[_]], key: AttributeKey[_]): ConfigIndex = new ConfigIndex(data updated (config, keyIndex(config).add(task, key))) def keyIndex(conf: Option[String]): AKeyIndex = getOr(data, conf, emptyAKeyIndex) def configs: Set[String] = keySet(data) } -private final class ProjectIndex(val data: Map[Option[String], ConfigIndex]) { +private[sbt] final class ProjectIndex(val data: Map[Option[String], ConfigIndex]) { def add(id: Option[String], config: Option[String], task: Option[AttributeKey[_]], key: AttributeKey[_]): ProjectIndex = new ProjectIndex(data updated (id, confIndex(id).add(config, task, key))) def confIndex(id: Option[String]): ConfigIndex = getOr(data, id, emptyConfigIndex) def projects: Set[String] = keySet(data) } -private final class BuildIndex(val data: Map[Option[URI], ProjectIndex]) { +private[sbt] final class BuildIndex(val data: Map[Option[URI], ProjectIndex]) { def add(build: Option[URI], project: Option[String], config: Option[String], task: Option[AttributeKey[_]], key: AttributeKey[_]): BuildIndex = new BuildIndex(data updated (build, projectIndex(build).add(project, config, task, key))) def projectIndex(build: Option[URI]): ProjectIndex = getOr(data, build, emptyProjectIndex) def builds: Set[URI] = keySet(data) } -private final class KeyIndex0(val data: BuildIndex) extends ExtendableKeyIndex { +private[sbt] final class KeyIndex0(val data: BuildIndex) extends ExtendableKeyIndex { def buildURIs: Set[URI] = data.builds def projects(uri: URI): Set[String] = data.projectIndex(Some(uri)).projects def exists(proj: Option[ResolvedReference]): Boolean = diff --git a/main/src/main/scala/sbt/internal/Load.scala b/main/src/main/scala/sbt/internal/Load.scala index f02d566ef..bcf646b90 100755 --- a/main/src/main/scala/sbt/internal/Load.scala +++ b/main/src/main/scala/sbt/internal/Load.scala @@ -34,7 +34,7 @@ import xsbti.compile.Compilers private[sbt] object Load { // note that there is State passed in but not pulled out - def defaultLoad(state: State, baseDirectory: File, log: Logger, isPlugin: Boolean = false, topLevelExtras: List[URI] = Nil): (() => Eval, sbt.BuildStructure) = + def defaultLoad(state: State, baseDirectory: File, log: Logger, isPlugin: Boolean = false, topLevelExtras: List[URI] = Nil): (() => Eval, BuildStructure) = { val globalBase = getGlobalBase(state) val base = baseDirectory.getCanonicalFile @@ -111,7 +111,7 @@ private[sbt] object Load { } else config - def defaultDelegates: sbt.LoadedBuild => Scope => Seq[Scope] = (lb: sbt.LoadedBuild) => { + def defaultDelegates: LoadedBuild => Scope => Seq[Scope] = (lb: LoadedBuild) => { val rootProject = getRootProject(lb.units) def resolveRef(project: Reference): ResolvedReference = Scope.resolveReference(lb.root, rootProject, project) Scope.delegates( @@ -125,15 +125,15 @@ private[sbt] object Load { (project, extra) => Nil ) } - def configInherit(lb: sbt.LoadedBuild, ref: ResolvedReference, config: ConfigKey, rootProject: URI => String): Seq[ConfigKey] = + def configInherit(lb: LoadedBuild, ref: ResolvedReference, config: ConfigKey, rootProject: URI => String): Seq[ConfigKey] = ref match { case pr: ProjectRef => configInheritRef(lb, pr, config) case BuildRef(uri) => configInheritRef(lb, ProjectRef(uri, rootProject(uri)), config) } - def configInheritRef(lb: sbt.LoadedBuild, ref: ProjectRef, config: ConfigKey): Seq[ConfigKey] = + def configInheritRef(lb: LoadedBuild, ref: ProjectRef, config: ConfigKey): Seq[ConfigKey] = configurationOpt(lb.units, ref.build, ref.project, config).toList.flatMap(_.extendsConfigs).map(c => ConfigKey(c.name)) - def projectInherit(lb: sbt.LoadedBuild, ref: ProjectRef): Seq[ProjectRef] = + def projectInherit(lb: LoadedBuild, ref: ProjectRef): Seq[ProjectRef] = getProject(lb.units, ref.build, ref.project).delegates // build, load, and evaluate all units. @@ -145,7 +145,7 @@ private[sbt] object Load { // 6) Load all configurations using build definitions and plugins (their classpaths and loaded instances). // 7) Combine settings from projects, plugins, and configurations // 8) Evaluate settings - def apply(rootBase: File, s: State, config: LoadBuildConfiguration): (() => Eval, sbt.BuildStructure) = + def apply(rootBase: File, s: State, config: LoadBuildConfiguration): (() => Eval, BuildStructure) = { // load, which includes some resolution, but can't fill in project IDs yet, so follow with full resolution val loaded = resolveProjects(load(rootBase, s, config)) @@ -157,7 +157,7 @@ private[sbt] object Load { Project.checkTargets(data) foreach sys.error val index = structureIndex(data, settings, loaded.extra(data), projects) val streams = mkStreams(projects, loaded.root, data) - (rootEval, new sbt.BuildStructure(projects, loaded.root, settings, data, index, streams, delegates, config.scopeLocal)) + (rootEval, new BuildStructure(projects, loaded.root, settings, data, index, streams, delegates, config.scopeLocal)) } // map dependencies on the special tasks: @@ -190,7 +190,7 @@ private[sbt] object Load { def setDefinitionKey[T](tk: Task[T], key: ScopedKey[_]): Task[T] = if (isDummy(tk)) tk else Task(tk.info.set(Keys.taskDefinitionKey, key), tk.work) - def structureIndex(data: Settings[Scope], settings: Seq[Setting[_]], extra: KeyIndex => BuildUtil[_], projects: Map[URI, LoadedBuildUnit]): sbt.StructureIndex = + def structureIndex(data: Settings[Scope], settings: Seq[Setting[_]], extra: KeyIndex => BuildUtil[_], projects: Map[URI, LoadedBuildUnit]): StructureIndex = { val keys = Index.allKeys(settings) val attributeKeys = Index.attributeKeys(data) ++ keys.map(_.key) @@ -198,21 +198,21 @@ private[sbt] object Load { val projectsMap = projects.mapValues(_.defined.keySet) val keyIndex = KeyIndex(scopedKeys, projectsMap) val aggIndex = KeyIndex.aggregate(scopedKeys, extra(keyIndex), projectsMap) - new sbt.StructureIndex(Index.stringToKeyMap(attributeKeys), Index.taskToKeyMap(data), Index.triggers(data), keyIndex, aggIndex) + new StructureIndex(Index.stringToKeyMap(attributeKeys), Index.taskToKeyMap(data), Index.triggers(data), keyIndex, aggIndex) } // Reevaluates settings after modifying them. Does not recompile or reload any build components. - def reapply(newSettings: Seq[Setting[_]], structure: sbt.BuildStructure)(implicit display: Show[ScopedKey[_]]): sbt.BuildStructure = + def reapply(newSettings: Seq[Setting[_]], structure: BuildStructure)(implicit display: Show[ScopedKey[_]]): BuildStructure = { val transformed = finalTransforms(newSettings) val newData = Def.make(transformed)(structure.delegates, structure.scopeLocal, display) val newIndex = structureIndex(newData, transformed, index => BuildUtil(structure.root, structure.units, index, newData), structure.units) val newStreams = mkStreams(structure.units, structure.root, newData) - new sbt.BuildStructure(units = structure.units, root = structure.root, settings = transformed, data = newData, index = newIndex, streams = newStreams, delegates = structure.delegates, scopeLocal = structure.scopeLocal) + new BuildStructure(units = structure.units, root = structure.root, settings = transformed, data = newData, index = newIndex, streams = newStreams, delegates = structure.delegates, scopeLocal = structure.scopeLocal) } def isProjectThis(s: Setting[_]) = s.key.scope.project match { case This | Select(ThisProject) => true; case _ => false } - def buildConfigurations(loaded: sbt.LoadedBuild, rootProject: URI => String, injectSettings: InjectSettings): Seq[Setting[_]] = + def buildConfigurations(loaded: LoadedBuild, rootProject: URI => String, injectSettings: InjectSettings): Seq[Setting[_]] = { ((loadedBuild in GlobalScope :== loaded) +: transformProjectOnly(loaded.root, rootProject, injectSettings.global)) ++ @@ -237,7 +237,7 @@ private[sbt] object Load { } } @deprecated("Does not account for AutoPlugins and will be made private.", "0.13.2") - def pluginGlobalSettings(loaded: sbt.LoadedBuild): Seq[Setting[_]] = + def pluginGlobalSettings(loaded: LoadedBuild): Seq[Setting[_]] = loaded.units.toSeq flatMap { case (_, build) => build.unit.plugins.detected.plugins.values flatMap { _.globalSettings } @@ -249,13 +249,13 @@ private[sbt] object Load { Project.transform(Scope.resolveScope(thisScope, uri, rootProject), settings) def projectScope(project: Reference): Scope = Scope(Select(project), Global, Global, Global) - def lazyEval(unit: sbt.BuildUnit): () => Eval = + def lazyEval(unit: BuildUnit): () => Eval = { lazy val eval = mkEval(unit) () => eval } - def mkEval(unit: sbt.BuildUnit): Eval = mkEval(unit.definitions, unit.plugins, unit.plugins.pluginData.scalacOptions) - def mkEval(defs: sbt.LoadedDefinitions, plugs: sbt.LoadedPlugins, options: Seq[String]): Eval = + def mkEval(unit: BuildUnit): Eval = mkEval(unit.definitions, unit.plugins, unit.plugins.pluginData.scalacOptions) + def mkEval(defs: LoadedDefinitions, plugs: LoadedPlugins, options: Seq[String]): Eval = mkEval(defs.target ++ plugs.classpath, defs.base, options) def mkEval(classpath: Seq[File], base: File, options: Seq[String]): Eval = new Eval(options, classpath, s => new ConsoleReporter(s), Some(evalOutputDirectory(base))) @@ -288,7 +288,7 @@ private[sbt] object Load { if (srcs.isEmpty) const(LoadedSbtFile.empty) else EvaluateConfigurations(eval(), srcs, imports) - def load(file: File, s: State, config: LoadBuildConfiguration): sbt.PartBuild = + def load(file: File, s: State, config: LoadBuildConfiguration): PartBuild = load(file, builtinLoader(s, config.copy(pluginManagement = config.pluginManagement.shift, extraBuilds = Nil)), config.extraBuilds.toList) def builtinLoader(s: State, config: LoadBuildConfiguration): BuildLoader = { @@ -298,19 +298,19 @@ private[sbt] object Load { val components = BuildLoader.components(resolver, build, full = BuildLoader.componentLoader) BuildLoader(components, fail, s, config) } - def load(file: File, loaders: BuildLoader, extra: List[URI]): sbt.PartBuild = loadURI(IO.directoryURI(file), loaders, extra) - def loadURI(uri: URI, loaders: BuildLoader, extra: List[URI]): sbt.PartBuild = + def load(file: File, loaders: BuildLoader, extra: List[URI]): PartBuild = loadURI(IO.directoryURI(file), loaders, extra) + def loadURI(uri: URI, loaders: BuildLoader, extra: List[URI]): PartBuild = { IO.assertAbsolute(uri) val (referenced, map, newLoaders) = loadAll(uri :: extra, Map.empty, loaders, Map.empty) checkAll(referenced, map) - val build = new sbt.PartBuild(uri, map) + val build = new PartBuild(uri, map) newLoaders transformAll build } - def addOverrides(unit: sbt.BuildUnit, loaders: BuildLoader): BuildLoader = + def addOverrides(unit: BuildUnit, loaders: BuildLoader): BuildLoader = loaders updatePluginManagement PluginManagement.extractOverrides(unit.plugins.fullClasspath) - def addResolvers(unit: sbt.BuildUnit, isRoot: Boolean, loaders: BuildLoader): BuildLoader = + def addResolvers(unit: BuildUnit, isRoot: Boolean, loaders: BuildLoader): BuildLoader = unit.definitions.builds.flatMap(_.buildLoaders).toList match { case Nil => loaders case x :: xs => @@ -319,7 +319,7 @@ private[sbt] object Load { if (isRoot) loaders.setRoot(resolver) else loaders.addNonRoot(unit.uri, resolver) } - def loaded(unit: sbt.BuildUnit): (sbt.PartBuildUnit, List[ProjectReference]) = + def loaded(unit: BuildUnit): (PartBuildUnit, List[ProjectReference]) = { val defined = projects(unit) if (defined.isEmpty) sys.error("No projects defined in build unit " + unit) @@ -332,16 +332,16 @@ private[sbt] object Load { val explicitRoots = unit.definitions.builds.flatMap(_.rootProject) val projectsInRoot = if (explicitRoots.isEmpty) defined.filter(isRoot) else explicitRoots val rootProjects = if (projectsInRoot.isEmpty) defined.head :: Nil else projectsInRoot - (new sbt.PartBuildUnit(unit, defined.map(d => (d.id, d)).toMap, rootProjects.map(_.id), buildSettings(unit)), externals) + (new PartBuildUnit(unit, defined.map(d => (d.id, d)).toMap, rootProjects.map(_.id), buildSettings(unit)), externals) } - def buildSettings(unit: sbt.BuildUnit): Seq[Setting[_]] = + def buildSettings(unit: BuildUnit): Seq[Setting[_]] = { val buildScope = GlobalScope.copy(project = Select(BuildRef(unit.uri))) val resolve = Scope.resolveBuildScope(buildScope, unit.uri) Project.transform(resolve, unit.definitions.builds.flatMap(_.settings)) } - @tailrec def loadAll(bases: List[URI], references: Map[URI, List[ProjectReference]], loaders: BuildLoader, builds: Map[URI, sbt.PartBuildUnit]): (Map[URI, List[ProjectReference]], Map[URI, sbt.PartBuildUnit], BuildLoader) = + @tailrec def loadAll(bases: List[URI], references: Map[URI, List[ProjectReference]], loaders: BuildLoader, builds: Map[URI, PartBuildUnit]): (Map[URI, List[ProjectReference]], Map[URI, PartBuildUnit], BuildLoader) = bases match { case b :: bs => if (builds contains b) @@ -368,7 +368,7 @@ private[sbt] object Load { else if (!base.exists) IO createDirectory base } - def resolveAll(builds: Map[URI, sbt.PartBuildUnit]): Map[URI, sbt.LoadedBuildUnit] = + def resolveAll(builds: Map[URI, PartBuildUnit]): Map[URI, LoadedBuildUnit] = { val rootProject = getRootProject(builds) builds map { @@ -376,7 +376,7 @@ private[sbt] object Load { (uri, unit.resolveRefs(ref => Scope.resolveProjectRef(uri, rootProject, ref))) } } - def checkAll(referenced: Map[URI, List[ProjectReference]], builds: Map[URI, sbt.PartBuildUnit]): Unit = { + def checkAll(referenced: Map[URI, List[ProjectReference]], builds: Map[URI, PartBuildUnit]): Unit = { val rootProject = getRootProject(builds) for ((uri, refs) <- referenced; ref <- refs) { val ProjectRef(refURI, refID) = Scope.resolveProjectRef(uri, rootProject, ref) @@ -398,7 +398,7 @@ private[sbt] object Load { } p => p.copy(base = resolve(p.base)) } - def resolveProjects(loaded: sbt.PartBuild): sbt.LoadedBuild = + def resolveProjects(loaded: PartBuild): LoadedBuild = { val rootProject = getRootProject(loaded.units) val units = loaded.units map { @@ -406,15 +406,15 @@ private[sbt] object Load { IO.assertAbsolute(uri) (uri, resolveProjects(uri, unit, rootProject)) } - new sbt.LoadedBuild(loaded.root, units) + new LoadedBuild(loaded.root, units) } - def resolveProjects(uri: URI, unit: sbt.PartBuildUnit, rootProject: URI => String): sbt.LoadedBuildUnit = + def resolveProjects(uri: URI, unit: PartBuildUnit, rootProject: URI => String): LoadedBuildUnit = { IO.assertAbsolute(uri) val resolve = (_: Project).resolve(ref => Scope.resolveProjectRef(uri, rootProject, ref)) - new sbt.LoadedBuildUnit(unit.unit, unit.defined mapValues resolve, unit.rootProjects, unit.buildSettings) + new LoadedBuildUnit(unit.unit, unit.defined mapValues resolve, unit.rootProjects, unit.buildSettings) } - def projects(unit: sbt.BuildUnit): Seq[Project] = + def projects(unit: BuildUnit): Seq[Project] = { // we don't have the complete build graph loaded, so we don't have the rootProject function yet. // Therefore, we use resolveProjectBuild instead of resolveProjectRef. After all builds are loaded, we can fully resolve ProjectReferences. @@ -422,14 +422,14 @@ private[sbt] object Load { // although the default loader will resolve the project base directory, other loaders may not, so run resolveBase here as well unit.definitions.projects.map(resolveBuild compose resolveBase(unit.localBase)) } - def getRootProject(map: Map[URI, sbt.BuildUnitBase]): URI => String = + def getRootProject(map: Map[URI, BuildUnitBase]): URI => String = uri => getBuild(map, uri).rootProjects.headOption getOrElse emptyBuild(uri) - def getConfiguration(map: Map[URI, sbt.LoadedBuildUnit], uri: URI, id: String, conf: ConfigKey): Configuration = + def getConfiguration(map: Map[URI, LoadedBuildUnit], uri: URI, id: String, conf: ConfigKey): Configuration = configurationOpt(map, uri, id, conf) getOrElse noConfiguration(uri, id, conf.name) - def configurationOpt(map: Map[URI, sbt.LoadedBuildUnit], uri: URI, id: String, conf: ConfigKey): Option[Configuration] = + def configurationOpt(map: Map[URI, LoadedBuildUnit], uri: URI, id: String, conf: ConfigKey): Option[Configuration] = getProject(map, uri, id).configurations.find(_.name == conf.name) - def getProject(map: Map[URI, sbt.LoadedBuildUnit], uri: URI, id: String): ResolvedProject = + def getProject(map: Map[URI, LoadedBuildUnit], uri: URI, id: String): ResolvedProject = getBuild(map, uri).defined.getOrElse(id, noProject(uri, id)) def getBuild[T](map: Map[URI, T], uri: URI): T = map.getOrElse(uri, noBuild(uri)) @@ -439,7 +439,7 @@ private[sbt] object Load { def noProject(uri: URI, id: String) = sys.error(s"No project '$id' defined in '$uri'.") def noConfiguration(uri: URI, id: String, conf: String) = sys.error(s"No configuration '$conf' defined in project '$id' in '$uri'") - def loadUnit(uri: URI, localBase: File, s: State, config: LoadBuildConfiguration): sbt.BuildUnit = + def loadUnit(uri: URI, localBase: File, s: State, config: LoadBuildConfiguration): BuildUnit = { val normBase = localBase.getCanonicalFile val defDir = projectStandard(normBase) @@ -485,8 +485,8 @@ private[sbt] object Load { val valDefinitions = memoSettings.values.foldLeft(DefinedSbtValues.empty) { (prev, sbtFile) => prev.zip(sbtFile.definitions) } - val loadedDefs = new sbt.LoadedDefinitions(defDir, Nil, plugs.loader, defs, loadedProjects, plugs.detected.builds.names, valDefinitions) - new sbt.BuildUnit(uri, normBase, loadedDefs, plugs) + val loadedDefs = new LoadedDefinitions(defDir, Nil, plugs.loader, defs, loadedProjects, plugs.detected.builds.names, valDefinitions) + new BuildUnit(uri, normBase, loadedDefs, plugs) } private[this] def autoID(localBase: File, context: PluginManagement.Context, existingIDs: Seq[String]): String = @@ -545,7 +545,7 @@ private[sbt] object Load { private[this] def loadTransitive( newProjects: Seq[Project], buildBase: File, - plugins: sbt.LoadedPlugins, + plugins: LoadedPlugins, eval: () => Eval, injectSettings: InjectSettings, acc: Seq[Project], @@ -651,7 +651,7 @@ private[sbt] object Load { private[this] def resolveProject( rawProject: Project, configFiles: Seq[LoadedSbtFile], - loadedPlugins: sbt.LoadedPlugins, + loadedPlugins: LoadedPlugins, globalUserSettings: InjectSettings, memoSettings: mutable.Map[File, LoadedSbtFile], log: Logger): Project = { @@ -714,7 +714,7 @@ private[sbt] object Load { private[this] def discoverProjects( auto: AddSettings, projectBase: File, - loadedPlugins: sbt.LoadedPlugins, + loadedPlugins: LoadedPlugins, eval: () => Eval, memoSettings: mutable.Map[File, LoadedSbtFile]): DiscoveredProjects = { @@ -791,7 +791,7 @@ private[sbt] object Load { case Some(gp) => config.copy(injectSettings = config.injectSettings.copy(project = gp.inject)) case None => config } - def plugins(dir: File, s: State, config: LoadBuildConfiguration): sbt.LoadedPlugins = + def plugins(dir: File, s: State, config: LoadBuildConfiguration): LoadedPlugins = if (hasDefinition(dir)) buildPlugins(dir, s, enableSbtPlugin(activateGlobalPlugin(config))) else @@ -802,12 +802,12 @@ private[sbt] object Load { import sbt.io.syntax._ (dir * -GlobFilter(DefaultTargetName)).get.nonEmpty } - def noPlugins(dir: File, config: LoadBuildConfiguration): sbt.LoadedPlugins = + def noPlugins(dir: File, config: LoadBuildConfiguration): LoadedPlugins = loadPluginDefinition(dir, config, PluginData(config.globalPluginClasspath, None, None)) - def buildPlugins(dir: File, s: State, config: LoadBuildConfiguration): sbt.LoadedPlugins = + def buildPlugins(dir: File, s: State, config: LoadBuildConfiguration): LoadedPlugins = loadPluginDefinition(dir, config, buildPluginDefinition(dir, s, config)) - def loadPluginDefinition(dir: File, config: LoadBuildConfiguration, pluginData: PluginData): sbt.LoadedPlugins = + def loadPluginDefinition(dir: File, config: LoadBuildConfiguration, pluginData: PluginData): LoadedPlugins = { val (definitionClasspath, pluginLoader) = pluginDefinitionLoader(config, pluginData) loadPlugins(dir, pluginData.copy(dependencyClasspath = definitionClasspath), pluginLoader) @@ -852,8 +852,8 @@ private[sbt] object Load { def loadDefinition(loader: ClassLoader, definition: String): BuildDef = ModuleUtilities.getObject(definition, loader).asInstanceOf[BuildDef] - def loadPlugins(dir: File, data: PluginData, loader: ClassLoader): sbt.LoadedPlugins = - new sbt.LoadedPlugins(dir, data, loader, PluginDiscovery.discoverAll(data, loader)) + def loadPlugins(dir: File, data: PluginData, loader: ClassLoader): LoadedPlugins = + new LoadedPlugins(dir, data, loader, PluginDiscovery.discoverAll(data, loader)) @deprecated("Use PluginDiscovery.onClasspath", "0.13.2") def onClasspath(classpath: Seq[File])(url: URL): Boolean = @@ -866,17 +866,17 @@ private[sbt] object Load { def discover(analysis: Analysis, subclasses: String*): Seq[String] = PluginDiscovery.sourceModuleNames(analysis, subclasses: _*) - def initialSession(structure: sbt.BuildStructure, rootEval: () => Eval, s: State): SessionSettings = { + def initialSession(structure: BuildStructure, rootEval: () => Eval, s: State): SessionSettings = { val session = s get Keys.sessionSettings val currentProject = session map (_.currentProject) getOrElse Map.empty val currentBuild = session map (_.currentBuild) filter (uri => structure.units.keys exists (uri ==)) getOrElse structure.root new SessionSettings(currentBuild, projectMap(structure, currentProject), structure.settings, Map.empty, Nil, rootEval) } - def initialSession(structure: sbt.BuildStructure, rootEval: () => Eval): SessionSettings = + def initialSession(structure: BuildStructure, rootEval: () => Eval): SessionSettings = new SessionSettings(structure.root, projectMap(structure, Map.empty), structure.settings, Map.empty, Nil, rootEval) - def projectMap(structure: sbt.BuildStructure, current: Map[URI, String]): Map[URI, String] = + def projectMap(structure: BuildStructure, current: Map[URI, String]): Map[URI, String] = { val units = structure.units val getRoot = getRootProject(units) @@ -893,7 +893,7 @@ private[sbt] object Load { @deprecated("Use BuildUtil.baseImports", "0.13.0") def baseImports = BuildUtil.baseImports @deprecated("Use BuildUtil.checkCycles", "0.13.0") - def checkCycles(units: Map[URI, sbt.LoadedBuildUnit]): Unit = BuildUtil.checkCycles(units) + def checkCycles(units: Map[URI, LoadedBuildUnit]): Unit = BuildUtil.checkCycles(units) @deprecated("Use BuildUtil.importAll", "0.13.0") def importAll(values: Seq[String]): Seq[String] = BuildUtil.importAll(values) @deprecated("Use BuildUtil.importAllRoot", "0.13.0") @@ -901,7 +901,7 @@ private[sbt] object Load { @deprecated("Use BuildUtil.rootedNames", "0.13.0") def rootedName(s: String): String = BuildUtil.rootedName(s) @deprecated("Use BuildUtil.getImports", "0.13.0") - def getImports(unit: sbt.BuildUnit): Seq[String] = BuildUtil.getImports(unit) + def getImports(unit: BuildUnit): Seq[String] = BuildUtil.getImports(unit) def referenced[PR <: ProjectReference](definitions: Seq[ProjectDefinition[PR]]): Seq[PR] = definitions flatMap { _.referenced } @@ -909,7 +909,7 @@ private[sbt] object Load { final case class InjectSettings(global: Seq[Setting[_]], project: Seq[Setting[_]], projectLoaded: ClassLoader => Seq[Setting[_]]) @deprecated("Use BuildUtil.apply", "0.13.0") - def buildUtil(root: URI, units: Map[URI, sbt.LoadedBuildUnit], keyIndex: KeyIndex, data: Settings[Scope]): BuildUtil[ResolvedProject] = BuildUtil(root, units, keyIndex, data) + def buildUtil(root: URI, units: Map[URI, LoadedBuildUnit], keyIndex: KeyIndex, data: Settings[Scope]): BuildUtil[ResolvedProject] = BuildUtil(root, units, keyIndex, data) } final case class LoadBuildConfiguration( @@ -917,9 +917,9 @@ final case class LoadBuildConfiguration( classpath: Seq[Attributed[File]], loader: ClassLoader, compilers: Compilers, - evalPluginDef: (sbt.BuildStructure, State) => PluginData, + evalPluginDef: (BuildStructure, State) => PluginData, definesClass: DefinesClass, - delegates: sbt.LoadedBuild => Scope => Seq[Scope], + delegates: LoadedBuild => Scope => Seq[Scope], scopeLocal: ScopeLocal, pluginManagement: PluginManagement, injectSettings: Load.InjectSettings, diff --git a/main/src/main/scala/sbt/LoadedSbtFile.scala b/main/src/main/scala/sbt/internal/LoadedSbtFile.scala similarity index 99% rename from main/src/main/scala/sbt/LoadedSbtFile.scala rename to main/src/main/scala/sbt/internal/LoadedSbtFile.scala index 58b0152fa..dbf0d6bfe 100644 --- a/main/src/main/scala/sbt/LoadedSbtFile.scala +++ b/main/src/main/scala/sbt/internal/LoadedSbtFile.scala @@ -1,4 +1,5 @@ package sbt +package internal import Def.Setting import java.io.File diff --git a/main/src/main/scala/sbt/Output.scala b/main/src/main/scala/sbt/internal/Output.scala similarity index 99% rename from main/src/main/scala/sbt/Output.scala rename to main/src/main/scala/sbt/internal/Output.scala index 56c77cd61..ea10d0487 100644 --- a/main/src/main/scala/sbt/Output.scala +++ b/main/src/main/scala/sbt/internal/Output.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import sbt.internal.util.{ Show, Types } diff --git a/main/src/main/scala/sbt/PluginDiscovery.scala b/main/src/main/scala/sbt/internal/PluginDiscovery.scala similarity index 98% rename from main/src/main/scala/sbt/PluginDiscovery.scala rename to main/src/main/scala/sbt/internal/PluginDiscovery.scala index 2f8525e5b..6eb9e2b49 100644 --- a/main/src/main/scala/sbt/PluginDiscovery.scala +++ b/main/src/main/scala/sbt/internal/PluginDiscovery.scala @@ -1,7 +1,8 @@ package sbt +package internal import sbt.internal.util.Attributed -import sbt.internal.{ BuildDef, IncompatiblePluginsException, OldPlugin } +// import sbt.internal.{ BuildDef, IncompatiblePluginsException, OldPlugin } import java.io.File import java.net.URL import Attributed.data diff --git a/main/src/main/scala/sbt/PluginManagement.scala b/main/src/main/scala/sbt/internal/PluginManagement.scala similarity index 99% rename from main/src/main/scala/sbt/PluginManagement.scala rename to main/src/main/scala/sbt/internal/PluginManagement.scala index faf2e81f4..965880238 100644 --- a/main/src/main/scala/sbt/PluginManagement.scala +++ b/main/src/main/scala/sbt/internal/PluginManagement.scala @@ -1,4 +1,5 @@ package sbt +package internal import Keys.Classpath import Def.Setting diff --git a/main/src/main/scala/sbt/PluginsDebug.scala b/main/src/main/scala/sbt/internal/PluginsDebug.scala similarity index 99% rename from main/src/main/scala/sbt/PluginsDebug.scala rename to main/src/main/scala/sbt/internal/PluginsDebug.scala index 69c513f68..77d44ca3b 100644 --- a/main/src/main/scala/sbt/PluginsDebug.scala +++ b/main/src/main/scala/sbt/internal/PluginsDebug.scala @@ -1,4 +1,5 @@ package sbt +package internal import sbt.internal.util.{ AttributeKey, Dag, Relation, Util } import sbt.util.Logger diff --git a/main/src/main/scala/sbt/ProjectNavigation.scala b/main/src/main/scala/sbt/internal/ProjectNavigation.scala similarity index 99% rename from main/src/main/scala/sbt/ProjectNavigation.scala rename to main/src/main/scala/sbt/internal/ProjectNavigation.scala index a7dfd28de..60dce55be 100644 --- a/main/src/main/scala/sbt/ProjectNavigation.scala +++ b/main/src/main/scala/sbt/internal/ProjectNavigation.scala @@ -2,8 +2,8 @@ * Copyright 2008, 2009, 2010, 2011 Mark Harrah */ package sbt +package internal -import sbt.internal.Load import sbt.internal.util.complete import ProjectNavigation._ diff --git a/main/src/main/scala/sbt/Resolve.scala b/main/src/main/scala/sbt/internal/Resolve.scala similarity index 98% rename from main/src/main/scala/sbt/Resolve.scala rename to main/src/main/scala/sbt/internal/Resolve.scala index 9d12f382c..22e46bddf 100644 --- a/main/src/main/scala/sbt/Resolve.scala +++ b/main/src/main/scala/sbt/internal/Resolve.scala @@ -1,4 +1,5 @@ package sbt +package internal import sbt.internal.util.AttributeKey diff --git a/main/src/main/scala/sbt/RetrieveUnit.scala b/main/src/main/scala/sbt/internal/RetrieveUnit.scala similarity index 98% rename from main/src/main/scala/sbt/RetrieveUnit.scala rename to main/src/main/scala/sbt/internal/RetrieveUnit.scala index 1ad7bcd2a..9fa715030 100644 --- a/main/src/main/scala/sbt/RetrieveUnit.scala +++ b/main/src/main/scala/sbt/internal/RetrieveUnit.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import java.io.File import java.net.URI diff --git a/main/src/main/scala/sbt/Script.scala b/main/src/main/scala/sbt/internal/Script.scala similarity index 98% rename from main/src/main/scala/sbt/Script.scala rename to main/src/main/scala/sbt/internal/Script.scala index a84363dc0..b44debebd 100644 --- a/main/src/main/scala/sbt/Script.scala +++ b/main/src/main/scala/sbt/internal/Script.scala @@ -2,8 +2,8 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal -import sbt.internal.{ Load, EvaluateConfigurations } import sbt.librarymanagement.Configurations import sbt.util.Level diff --git a/main/src/main/scala/sbt/SessionSettings.scala b/main/src/main/scala/sbt/internal/SessionSettings.scala similarity index 99% rename from main/src/main/scala/sbt/SessionSettings.scala rename to main/src/main/scala/sbt/internal/SessionSettings.scala index 73c02368b..9ad788620 100755 --- a/main/src/main/scala/sbt/SessionSettings.scala +++ b/main/src/main/scala/sbt/internal/SessionSettings.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah */ package sbt +package internal import sbt.internal.util.{ complete, LineRange, RangePosition, Types } diff --git a/main/src/main/scala/sbt/SettingCompletions.scala b/main/src/main/scala/sbt/internal/SettingCompletions.scala similarity index 99% rename from main/src/main/scala/sbt/SettingCompletions.scala rename to main/src/main/scala/sbt/internal/SettingCompletions.scala index e1b8b16a1..9f95d6033 100644 --- a/main/src/main/scala/sbt/SettingCompletions.scala +++ b/main/src/main/scala/sbt/internal/SettingCompletions.scala @@ -1,6 +1,6 @@ package sbt +package internal -import sbt.internal.Load import sbt.internal.util.{ AttributeKey, complete, Relation, Settings, Show, Types, Util } import sbt.librarymanagement.Configuration diff --git a/main/src/main/scala/sbt/SettingGraph.scala b/main/src/main/scala/sbt/internal/SettingGraph.scala similarity index 99% rename from main/src/main/scala/sbt/SettingGraph.scala rename to main/src/main/scala/sbt/internal/SettingGraph.scala index 784b140ef..bdce207a5 100644 --- a/main/src/main/scala/sbt/SettingGraph.scala +++ b/main/src/main/scala/sbt/internal/SettingGraph.scala @@ -2,6 +2,7 @@ * Copyright 2011 Mark Harrah, Eugene Yokota */ package sbt +package internal import sbt.internal.util.Show diff --git a/main/src/main/scala/sbt/TaskName.scala b/main/src/main/scala/sbt/internal/TaskName.scala similarity index 96% rename from main/src/main/scala/sbt/TaskName.scala rename to main/src/main/scala/sbt/internal/TaskName.scala index 3f761bcbe..1918ff85a 100644 --- a/main/src/main/scala/sbt/TaskName.scala +++ b/main/src/main/scala/sbt/internal/TaskName.scala @@ -1,4 +1,5 @@ package sbt +package internal import Def.{ displayFull, ScopedKey } import Keys.taskDefinitionKey diff --git a/main/src/main/scala/sbt/TaskSequential.scala b/main/src/main/scala/sbt/internal/TaskSequential.scala similarity index 99% rename from main/src/main/scala/sbt/TaskSequential.scala rename to main/src/main/scala/sbt/internal/TaskSequential.scala index 58c998215..cd38bbe66 100644 --- a/main/src/main/scala/sbt/TaskSequential.scala +++ b/main/src/main/scala/sbt/internal/TaskSequential.scala @@ -1,4 +1,5 @@ package sbt +package internal import Def._ diff --git a/main/src/main/scala/sbt/TaskTimings.scala b/main/src/main/scala/sbt/internal/TaskTimings.scala similarity index 99% rename from main/src/main/scala/sbt/TaskTimings.scala rename to main/src/main/scala/sbt/internal/TaskTimings.scala index dc2d01190..8d4606a33 100644 --- a/main/src/main/scala/sbt/TaskTimings.scala +++ b/main/src/main/scala/sbt/internal/TaskTimings.scala @@ -1,4 +1,5 @@ package sbt +package internal import sbt.internal.util.RMap diff --git a/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala index 75accb120..470caa940 100644 --- a/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala +++ b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala @@ -7,7 +7,7 @@ import scala.reflect.runtime.universe._ private[sbt] object SbtRefactorings { import sbt.internal.parser.SbtParser.{ END_OF_LINE, FAKE_FILE } - import sbt.SessionSettings.{ SessionSetting, SbtConfigFile } + import sbt.internal.SessionSettings.{ SessionSetting, SbtConfigFile } val EMPTY_STRING = "" val REVERSE_ORDERING_INT = Ordering[Int].reverse diff --git a/main/src/test/scala/Delegates.scala b/main/src/test/scala/Delegates.scala index 4ae407b4d..1af21d065 100644 --- a/main/src/test/scala/Delegates.scala +++ b/main/src/test/scala/Delegates.scala @@ -2,7 +2,7 @@ package sbt import Project._ import sbt.internal.util.Types.{ idFun, some } -import TestBuild._ +import sbt.internal.TestBuild._ import java.io.File import java.net.URI diff --git a/main/src/test/scala/ParseKey.scala b/main/src/test/scala/ParseKey.scala index cef2894f8..aebf90ca6 100644 --- a/main/src/test/scala/ParseKey.scala +++ b/main/src/test/scala/ParseKey.scala @@ -2,6 +2,7 @@ package sbt import Def.{ displayFull, displayMasked, ScopedKey } import java.net.URI +import sbt.internal.{ TestBuild, Resolve } import TestBuild._ import sbt.internal.util.complete._ diff --git a/main/src/test/scala/PluginCommandTest.scala b/main/src/test/scala/PluginCommandTest.scala index 5d8f0b4db..bba6e7d54 100644 --- a/main/src/test/scala/PluginCommandTest.scala +++ b/main/src/test/scala/PluginCommandTest.scala @@ -4,7 +4,7 @@ import java.io._ import org.specs2.mutable.Specification -import sbt.internal.{ Load, BuildDef, OldPlugin } +import sbt.internal._ import sbt.internal.util.{ AttributeEntry, AttributeMap, ConsoleOut, GlobalLogging, MainLogging, Settings } object PluginCommandTestPlugin0 extends AutoPlugin diff --git a/main/src/test/scala/TestBuild.scala b/main/src/test/scala/sbt/internal/TestBuild.scala similarity index 99% rename from main/src/test/scala/TestBuild.scala rename to main/src/test/scala/sbt/internal/TestBuild.scala index b15bfda32..f7720f873 100644 --- a/main/src/test/scala/TestBuild.scala +++ b/main/src/test/scala/sbt/internal/TestBuild.scala @@ -1,4 +1,5 @@ package sbt +package internal import Def.{ ScopedKey, Setting } import sbt.internal.util.{ AttributeKey, AttributeMap, Relation, Settings } From 772e5bc06cc3ca8bd6b140b633f148dc313e8dab Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 6 May 2016 20:19:18 -0400 Subject: [PATCH 05/10] Fix tests after moving things to internal --- sbt/src/sbt-test/project/sbt-file-projects/build.sbt | 2 ++ .../project/session-update-from-cmd/project/Common.scala | 2 ++ 2 files changed, 4 insertions(+) diff --git a/sbt/src/sbt-test/project/sbt-file-projects/build.sbt b/sbt/src/sbt-test/project/sbt-file-projects/build.sbt index 9b5410eff..0de1d3480 100644 --- a/sbt/src/sbt-test/project/sbt-file-projects/build.sbt +++ b/sbt/src/sbt-test/project/sbt-file-projects/build.sbt @@ -1,3 +1,5 @@ +import sbt.internal.AddSettings + val a = "a" val f = file("a") val g = taskKey[Unit]("A task in the root project") diff --git a/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala b/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala index 94f7f2a81..b744f5c1f 100644 --- a/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala +++ b/sbt/src/sbt-test/project/session-update-from-cmd/project/Common.scala @@ -1,5 +1,7 @@ import sbt._, syntax._, Keys._ +import sbt.internal.SessionSettings + object Common { lazy val k1 = taskKey[Unit]("") lazy val k2 = taskKey[Unit]("") From 420679df108d8734024f85e9e1f88784526eee88 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 7 May 2016 15:46:22 -0400 Subject: [PATCH 06/10] Address Codacy issues --- main/src/main/scala/sbt/Defaults.scala | 3 +-- .../sbt/internal/parser/SbtRefactorings.scala | 14 ++++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index dbc15d80a..e6fe3094a 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -4,8 +4,7 @@ package sbt import scala.concurrent.duration.{ FiniteDuration, Duration } -import sbt.internal.{ OldPlugin, Aggregation, LoadedBuild, BuildUtil, PluginDiscovery, APIMappings, BuildDependencies, GCUtil, TaskSequential } -import sbt.internal.ConsoleProject +import sbt.internal._ import sbt.internal.util.Attributed import sbt.internal.util.Attributed.data import Scope.{ fillTaskAxis, GlobalScope, ThisScope } diff --git a/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala index 470caa940..2218f4eed 100644 --- a/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala +++ b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala @@ -9,8 +9,8 @@ private[sbt] object SbtRefactorings { import sbt.internal.parser.SbtParser.{ END_OF_LINE, FAKE_FILE } import sbt.internal.SessionSettings.{ SessionSetting, SbtConfigFile } - val EMPTY_STRING = "" - val REVERSE_ORDERING_INT = Ordering[Int].reverse + val emtpyString = "" + val reverseOrdeingInt = Ordering[Int].reverse /** * Refactoring a `.sbt` file so that the new settings are used instead of any existing settings. @@ -25,7 +25,7 @@ private[sbt] object SbtRefactorings { val (file, lines) = configFile val split = SbtParser(FAKE_FILE, lines) val recordedCommands = recordCommands(commands, split) - val sortedRecordedCommands = recordedCommands.sortBy(_._1)(REVERSE_ORDERING_INT) + val sortedRecordedCommands = recordedCommands.sortBy(_._1)(reverseOrdeingInt) val newContent = replaceFromBottomToTop(lines.mkString(END_OF_LINE), sortedRecordedCommands) (file, newContent.lines.toList) @@ -61,11 +61,9 @@ private[sbt] object SbtRefactorings { case (acc, (st, tree)) => val treeName = extractSettingName(tree) if (name == treeName) { - val replacement = if (acc.isEmpty) { - command.mkString(END_OF_LINE) - } else { - EMPTY_STRING - } + val replacement = + if (acc.isEmpty) command.mkString(END_OF_LINE) + else emtpyString (tree.pos.start, st, replacement) +: acc } else { acc From 785270faf08fc1132b6a04210c8e3bdf15149c8f Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 7 May 2016 16:16:04 -0400 Subject: [PATCH 07/10] Start hiding internal types --- sbt/src/main/scala/Import.scala | 135 +----------------- .../apiinfo/show-circular-structure/build.sbt | 4 +- .../unstable-existential-names/build.sbt | 4 +- .../inc-package-class-dependency/build.sbt | 4 +- .../inc-pickled-existential/build.sbt | 2 + .../inc-pickled-refinement/build.sbt | 2 + .../exclude-dependencies/build.sbt | 1 + .../exclude-scala/build.sbt | 4 +- .../dependency-management/url/build.sbt | 2 +- .../changes/explicitInstance.sbt | 2 + sbt/src/sbt-test/project/provided/build.sbt | 4 +- .../abstract-type-override/build.sbt | 2 + .../source-dependencies/canon/build.sbt | 8 +- .../source-dependencies/ext/build.sbt | 1 + .../inherited_type_params/build.sbt | 1 + .../less-inter-inv-java/build.sbt | 8 +- .../less-inter-inv/build.sbt | 8 +- .../restore-classes/build.sbt | 8 +- .../trait-member-modified/build.sbt | 9 +- .../trait-member-modified/{pending => test} | 0 .../transitive-memberRef/build.sbt | 4 +- .../scala-instance-classloader/build.sbt | 1 + 22 files changed, 55 insertions(+), 159 deletions(-) rename sbt/src/sbt-test/source-dependencies/trait-member-modified/{pending => test} (100%) diff --git a/sbt/src/main/scala/Import.scala b/sbt/src/main/scala/Import.scala index 10285ce9a..7c68fc103 100644 --- a/sbt/src/main/scala/Import.scala +++ b/sbt/src/main/scala/Import.scala @@ -218,42 +218,6 @@ trait Import { type UpperBound = sbt.internal.util.complete.UpperBound } - // sbt.internal.util.appmacro - object appmacro { - import scala.reflect._ - import macros._ - - type BuilderResult[C <: Context with Singleton] = sbt.internal.util.appmacro.BuilderResult[C] - val ContextUtil = sbt.internal.util.appmacro.ContextUtil - type ContextUtil[C <: Context] = sbt.internal.util.appmacro.ContextUtil[C] - type Convert = sbt.internal.util.appmacro.Convert - val Converted = sbt.internal.util.appmacro.Converted - type Converted[C <: Context with Singleton] = sbt.internal.util.appmacro.Converted[C] - val Instance = sbt.internal.util.appmacro.Instance - type Instance = sbt.internal.util.appmacro.Instance - val KListBuilder = sbt.internal.util.appmacro.KListBuilder - val MixedBuilder = sbt.internal.util.appmacro.MixedBuilder - type MonadInstance = sbt.internal.util.appmacro.MonadInstance - type TupleBuilder = sbt.internal.util.appmacro.TupleBuilder - val TupleNBuilder = sbt.internal.util.appmacro.TupleNBuilder - } - - // sbt.internal.util.logic - object logic { - val Atom = sbt.internal.util.logic.Atom - type Atom = sbt.internal.util.logic.Atom - val Clause = sbt.internal.util.logic.Clause - type Clause = sbt.internal.util.logic.Clause - val Clauses = sbt.internal.util.logic.Clauses - type Clauses = sbt.internal.util.logic.Clauses - val Formula = sbt.internal.util.logic.Formula - type Formula = sbt.internal.util.logic.Formula - type Literal = sbt.internal.util.logic.Literal - val Logic = sbt.internal.util.logic.Logic - val Negated = sbt.internal.util.logic.Negated - type Negated = sbt.internal.util.logic.Negated - } - // sbt.librarymanagement val Artifact = sbt.librarymanagement.Artifact type Artifact = sbt.librarymanagement.Artifact @@ -341,104 +305,9 @@ trait Import { type VersionNumber = sbt.librarymanagement.VersionNumber type VersionNumberCompatibility = sbt.librarymanagement.VersionNumberCompatibility - // sbt.internal.librarymanagement - type ArtifactFilter = sbt.internal.librarymanagement.ArtifactFilter - val ComponentManager = sbt.internal.librarymanagement.ComponentManager - type ComponentManager = sbt.internal.librarymanagement.ComponentManager - type ConfigurationFilter = sbt.internal.librarymanagement.ConfigurationFilter - val ConfigurationReportLite = sbt.internal.librarymanagement.ConfigurationReportLite - type ConfigurationReportLite = sbt.internal.librarymanagement.ConfigurationReportLite - val ConvertResolver = sbt.internal.librarymanagement.ConvertResolver - val CustomPomParser = sbt.internal.librarymanagement.CustomPomParser - type CustomPomParser = sbt.internal.librarymanagement.CustomPomParser - val CustomXmlParser = sbt.internal.librarymanagement.CustomXmlParser - type DeliverConfiguration = sbt.internal.librarymanagement.DeliverConfiguration - val DependencyFilter = sbt.internal.librarymanagement.DependencyFilter - type DependencyFilter = sbt.internal.librarymanagement.DependencyFilter - type DependencyFilterExtra = sbt.internal.librarymanagement.DependencyFilterExtra - val ExternalIvyConfiguration = sbt.internal.librarymanagement.ExternalIvyConfiguration - type ExternalIvyConfiguration = sbt.internal.librarymanagement.ExternalIvyConfiguration - val GetClassifiersConfiguration = sbt.internal.librarymanagement.GetClassifiersConfiguration - type GetClassifiersConfiguration = sbt.internal.librarymanagement.GetClassifiersConfiguration - val GetClassifiersModule = sbt.internal.librarymanagement.GetClassifiersModule - type GetClassifiersModule = sbt.internal.librarymanagement.GetClassifiersModule - val IfMissing = sbt.internal.librarymanagement.IfMissing - type IfMissing = sbt.internal.librarymanagement.IfMissing - type ModuleSettings = sbt.internal.librarymanagement.ModuleSettings - val InlineConfiguration = sbt.internal.librarymanagement.InlineConfiguration - type InlineConfiguration = sbt.internal.librarymanagement.InlineConfiguration - type InlineIvyConfiguration = sbt.internal.librarymanagement.InlineIvyConfiguration - type InvalidComponent = sbt.internal.librarymanagement.InvalidComponent - val IvyActions = sbt.internal.librarymanagement.IvyActions - type IvyCache = sbt.internal.librarymanagement.IvyCache - val IvyConfiguration = sbt.internal.librarymanagement.IvyConfiguration - type IvyConfiguration = sbt.internal.librarymanagement.IvyConfiguration - val IvyFileConfiguration = sbt.internal.librarymanagement.IvyFileConfiguration - type IvyFileConfiguration = sbt.internal.librarymanagement.IvyFileConfiguration - type IvyPaths = sbt.internal.librarymanagement.IvyPaths - val IvyRetrieve = sbt.internal.librarymanagement.IvyRetrieve - val IvySbt = sbt.internal.librarymanagement.IvySbt - type IvySbt = sbt.internal.librarymanagement.IvySbt - val IvyUtil = sbt.internal.librarymanagement.IvyUtil - val JsonUtil = sbt.internal.librarymanagement.JsonUtil - val LogicalClock = sbt.internal.librarymanagement.LogicalClock - type LogicalClock = sbt.internal.librarymanagement.LogicalClock - val MakePom = sbt.internal.librarymanagement.MakePom - type MakePom = sbt.internal.librarymanagement.MakePom - val MakePomConfiguration = sbt.internal.librarymanagement.MakePomConfiguration - type MakePomConfiguration = sbt.internal.librarymanagement.MakePomConfiguration - type ModuleFilter = sbt.internal.librarymanagement.ModuleFilter - type NotInCache = sbt.internal.librarymanagement.NotInCache - val PomConfiguration = sbt.internal.librarymanagement.PomConfiguration - type PomConfiguration = sbt.internal.librarymanagement.PomConfiguration - val ProjectResolver = sbt.internal.librarymanagement.ProjectResolver - type ProjectResolver = sbt.internal.librarymanagement.ProjectResolver - type PublishConfiguration = sbt.internal.librarymanagement.PublishConfiguration - val ResolutionCache = sbt.internal.librarymanagement.ResolutionCache - type ResolutionCache = sbt.internal.librarymanagement.ResolutionCache - type ResolveException = sbt.internal.librarymanagement.ResolveException - type ResolverAdapter = sbt.internal.librarymanagement.ResolverAdapter - type RetrieveConfiguration = sbt.internal.librarymanagement.RetrieveConfiguration - val SbtExclusionRule = sbt.internal.librarymanagement.SbtExclusionRule - type SbtExclusionRule = sbt.internal.librarymanagement.SbtExclusionRule - val StringUtilities = sbt.internal.librarymanagement.StringUtilities - val UnresolvedWarning = sbt.internal.librarymanagement.UnresolvedWarning - type UnresolvedWarning = sbt.internal.librarymanagement.UnresolvedWarning - val UnresolvedWarningConfiguration = sbt.internal.librarymanagement.UnresolvedWarningConfiguration - type UnresolvedWarningConfiguration = sbt.internal.librarymanagement.UnresolvedWarningConfiguration - type UpdateConfiguration = sbt.internal.librarymanagement.UpdateConfiguration - val UpdateLogging = sbt.internal.librarymanagement.UpdateLogging - val UpdateReportLite = sbt.internal.librarymanagement.UpdateReportLite - type UpdateReportLite = sbt.internal.librarymanagement.UpdateReportLite - // sbt.internal.inc.classpath - object classpath { - type CachedClassLoader = sbt.internal.inc.classpath.CachedClassLoader - type ClassFilter = sbt.internal.inc.classpath.ClassFilter - type ClassLoaderCache = sbt.internal.inc.classpath.ClassLoaderCache - type ClasspathFilter = sbt.internal.inc.classpath.ClasspathFilter - val ClasspathUtilities = sbt.internal.inc.classpath.ClasspathUtilities - type DifferentLoaders = sbt.internal.inc.classpath.DifferentLoaders - type DualEnumeration[T] = sbt.internal.inc.classpath.DualEnumeration[T] - type DualLoader = sbt.internal.inc.classpath.DualLoader - type ExcludePackagesFilter = sbt.internal.inc.classpath.ExcludePackagesFilter - type FilteredLoader = sbt.internal.inc.classpath.FilteredLoader - type FixedResources = sbt.internal.inc.classpath.FixedResources - type IncludePackagesFilter = sbt.internal.inc.classpath.IncludePackagesFilter - type LoaderBase = sbt.internal.inc.classpath.LoaderBase - type NativeCopyConfig = sbt.internal.inc.classpath.NativeCopyConfig - type NativeCopyLoader = sbt.internal.inc.classpath.NativeCopyLoader - type NullLoader = sbt.internal.inc.classpath.NullLoader - type PackageFilter = sbt.internal.inc.classpath.PackageFilter - type RawResources = sbt.internal.inc.classpath.RawResources - val RawURL = sbt.internal.inc.classpath.RawURL - type SelfFirstLoader = sbt.internal.inc.classpath.SelfFirstLoader - } + // sbt.internal.librarymanagement + type IvyPaths = sbt.internal.librarymanagement.IvyPaths type IncOptions = xsbti.compile.IncOptions - type Analysis = sbt.internal.inc.Analysis - val Analysis = sbt.internal.inc.Analysis - val ClassfileManager = sbt.internal.inc.ClassfileManager - type ScalaInstance = sbt.internal.inc.ScalaInstance - val ScalaInstance = sbt.internal.inc.ScalaInstance } diff --git a/sbt/src/sbt-test/apiinfo/show-circular-structure/build.sbt b/sbt/src/sbt-test/apiinfo/show-circular-structure/build.sbt index 53e020d63..c0bd67e35 100644 --- a/sbt/src/sbt-test/apiinfo/show-circular-structure/build.sbt +++ b/sbt/src/sbt-test/apiinfo/show-circular-structure/build.sbt @@ -1,8 +1,10 @@ +import sbt.internal.inc.Analysis + logLevel := Level.Debug incOptions ~= { _.withApiDebug(true) } -TaskKey[Unit]("show-apis") <<= (compile in Compile, scalaSource in Compile, javaSource in Compile) map { case (a: sbt.internal.inc.Analysis, scalaSrc: java.io.File, javaSrc: java.io.File) => +TaskKey[Unit]("show-apis") <<= (compile in Compile, scalaSource in Compile, javaSource in Compile) map { case (a: Analysis, scalaSrc: java.io.File, javaSrc: java.io.File) => val aApi = a.apis.internalAPI("test.A").api.classApi val jApi = a.apis.internalAPI("test.J").api.classApi import xsbt.api.DefaultShowAPI diff --git a/sbt/src/sbt-test/apiinfo/unstable-existential-names/build.sbt b/sbt/src/sbt-test/apiinfo/unstable-existential-names/build.sbt index aad2f129c..071b3645f 100644 --- a/sbt/src/sbt-test/apiinfo/unstable-existential-names/build.sbt +++ b/sbt/src/sbt-test/apiinfo/unstable-existential-names/build.sbt @@ -1,6 +1,8 @@ +import sbt.internal.inc.Analysis + // checks number of compilation iterations performed since last `clean` run InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) => - (argTask, compile in Compile) map { case (args: Seq[String], a: sbt.internal.inc.Analysis) => + (argTask, compile in Compile) map { case (args: Seq[String], a: Analysis) => assert(args.size == 1) val expectedIterationsNumber = args(0).toInt val allCompilationsSize = a.compilations.allCompilations.size diff --git a/sbt/src/sbt-test/compiler-project/inc-package-class-dependency/build.sbt b/sbt/src/sbt-test/compiler-project/inc-package-class-dependency/build.sbt index 7f57c476f..d2b41882c 100644 --- a/sbt/src/sbt-test/compiler-project/inc-package-class-dependency/build.sbt +++ b/sbt/src/sbt-test/compiler-project/inc-package-class-dependency/build.sbt @@ -1,5 +1,7 @@ +import sbt.internal.inc.Analysis + TaskKey[Unit]("verify-binary-deps") <<= (compile in Compile, classDirectory in Compile, baseDirectory) map { - case (a: sbt.internal.inc.Analysis, classDir: java.io.File, base: java.io.File) => + case (a: Analysis, classDir: java.io.File, base: java.io.File) => val nestedPkgClass = classDir / "test/nested.class" val fooSrc = base / "src/main/scala/test/nested/Foo.scala" assert(!a.relations.binaryDeps(fooSrc).contains(nestedPkgClass), a.relations.toString) diff --git a/sbt/src/sbt-test/compiler-project/inc-pickled-existential/build.sbt b/sbt/src/sbt-test/compiler-project/inc-pickled-existential/build.sbt index a27ed56ee..df68db036 100644 --- a/sbt/src/sbt-test/compiler-project/inc-pickled-existential/build.sbt +++ b/sbt/src/sbt-test/compiler-project/inc-pickled-existential/build.sbt @@ -1,3 +1,5 @@ +import sbt.internal.inc.Analysis + logLevel := Level.Debug // dumps analysis into target/analysis-dump.txt file diff --git a/sbt/src/sbt-test/compiler-project/inc-pickled-refinement/build.sbt b/sbt/src/sbt-test/compiler-project/inc-pickled-refinement/build.sbt index a479d91d1..09b2b0a29 100644 --- a/sbt/src/sbt-test/compiler-project/inc-pickled-refinement/build.sbt +++ b/sbt/src/sbt-test/compiler-project/inc-pickled-refinement/build.sbt @@ -1,3 +1,5 @@ +import sbt.internal.inc.Analysis + InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) => (argTask, compile in Compile) map { case (args: Seq[String], a: Analysis) => assert(args.size == 1) diff --git a/sbt/src/sbt-test/dependency-management/exclude-dependencies/build.sbt b/sbt/src/sbt-test/dependency-management/exclude-dependencies/build.sbt index 5390886f3..547dc29ff 100644 --- a/sbt/src/sbt-test/dependency-management/exclude-dependencies/build.sbt +++ b/sbt/src/sbt-test/dependency-management/exclude-dependencies/build.sbt @@ -1,5 +1,6 @@ import scala.xml.{ Node, _ } import scala.xml.Utility.trim +import sbt.internal.librarymanagement.{ IvySbt, MakePomConfiguration, MakePom } lazy val check = taskKey[Unit]("check") diff --git a/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt b/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt index ea2e65c06..ce9ed62b6 100644 --- a/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt +++ b/sbt/src/sbt-test/dependency-management/exclude-scala/build.sbt @@ -1,3 +1,5 @@ +import sbt.internal.inc.classpath.ClasspathUtilities + lazy val scalaOverride = taskKey[Unit]("Check that the proper version of Scala is on the classpath.") lazy val root = (project in file(".")). @@ -12,7 +14,7 @@ def check(className: String): Def.Initialize[Task[Unit]] = fullClasspath in Comp val existing = cp.files.filter(_.getName contains "scala-library") println("Full classpath: " + cp.mkString("\n\t", "\n\t", "")) println("scala-library.jar: " + existing.mkString("\n\t", "\n\t", "")) - val loader = classpath.ClasspathUtilities.toLoader(existing) + val loader = ClasspathUtilities.toLoader(existing) Class.forName(className, false, loader) } diff --git a/sbt/src/sbt-test/dependency-management/url/build.sbt b/sbt/src/sbt-test/dependency-management/url/build.sbt index ecba7534d..1b835ea5e 100644 --- a/sbt/src/sbt-test/dependency-management/url/build.sbt +++ b/sbt/src/sbt-test/dependency-management/url/build.sbt @@ -1,4 +1,4 @@ -import classpath.ClasspathUtilities +import sbt.internal.inc.classpath.ClasspathUtilities lazy val root = (project in file(".")). settings( diff --git a/sbt/src/sbt-test/java/no-scala-tool/changes/explicitInstance.sbt b/sbt/src/sbt-test/java/no-scala-tool/changes/explicitInstance.sbt index 212ee0b6c..1f3c03ff1 100644 --- a/sbt/src/sbt-test/java/no-scala-tool/changes/explicitInstance.sbt +++ b/sbt/src/sbt-test/java/no-scala-tool/changes/explicitInstance.sbt @@ -1,3 +1,5 @@ +import sbt.internal.inc.ScalaInstance + scalaInstance := ScalaInstance(scalaVersion.value, appConfiguration.value.provider.scalaProvider) scalaVersion := "invalid" diff --git a/sbt/src/sbt-test/project/provided/build.sbt b/sbt/src/sbt-test/project/provided/build.sbt index f4565ac12..f552d8929 100644 --- a/sbt/src/sbt-test/project/provided/build.sbt +++ b/sbt/src/sbt-test/project/provided/build.sbt @@ -1,3 +1,5 @@ +import sbt.internal.inc.classpath.ClasspathUtilities + lazy val superRoot = (project in file("super")). dependsOn(rootRef) @@ -22,7 +24,7 @@ def checkTask = (fullClasspath in (rootRef, Compile), fullClasspath in (rootRef, def check0(cp: Seq[Attributed[File]], label: String, shouldSucceed: Boolean): Unit = { - val loader = classpath.ClasspathUtilities.toLoader(cp.files) + val loader = ClasspathUtilities.toLoader(cp.files) println("Checking " + label) val err = try { Class.forName("org.example.ProvidedTest", false, loader); None } catch { case e: Exception => Some(e) } diff --git a/sbt/src/sbt-test/source-dependencies/abstract-type-override/build.sbt b/sbt/src/sbt-test/source-dependencies/abstract-type-override/build.sbt index a479d91d1..09b2b0a29 100644 --- a/sbt/src/sbt-test/source-dependencies/abstract-type-override/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/abstract-type-override/build.sbt @@ -1,3 +1,5 @@ +import sbt.internal.inc.Analysis + InputKey[Unit]("check-number-of-compiler-iterations") <<= inputTask { (argTask: TaskKey[Seq[String]]) => (argTask, compile in Compile) map { case (args: Seq[String], a: Analysis) => assert(args.size == 1) diff --git a/sbt/src/sbt-test/source-dependencies/canon/build.sbt b/sbt/src/sbt-test/source-dependencies/canon/build.sbt index e34f4dcfe..64c457108 100644 --- a/sbt/src/sbt-test/source-dependencies/canon/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/canon/build.sbt @@ -1,10 +1,10 @@ +import sbt.internal.inc.Analysis import complete.DefaultParsers._ val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } - assert(expected == actual, s"Expected $expected compilations, got $actual") + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } + assert(expected == actual, s"Expected $expected compilations, got $actual") } - diff --git a/sbt/src/sbt-test/source-dependencies/ext/build.sbt b/sbt/src/sbt-test/source-dependencies/ext/build.sbt index 3a1e994b0..b93f974e1 100644 --- a/sbt/src/sbt-test/source-dependencies/ext/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/ext/build.sbt @@ -1,3 +1,4 @@ +import sbt.internal.inc.Analysis import complete.DefaultParsers._ val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") diff --git a/sbt/src/sbt-test/source-dependencies/inherited_type_params/build.sbt b/sbt/src/sbt-test/source-dependencies/inherited_type_params/build.sbt index 7b9a03bb5..f653e0179 100644 --- a/sbt/src/sbt-test/source-dependencies/inherited_type_params/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/inherited_type_params/build.sbt @@ -1,3 +1,4 @@ +import sbt.internal.inc.Analysis name := "test" TaskKey[Unit]("check-same") <<= compile in Configurations.Compile map { case analysis: Analysis => diff --git a/sbt/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt b/sbt/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt index e34f4dcfe..64c457108 100644 --- a/sbt/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/less-inter-inv-java/build.sbt @@ -1,10 +1,10 @@ +import sbt.internal.inc.Analysis import complete.DefaultParsers._ val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } - assert(expected == actual, s"Expected $expected compilations, got $actual") + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } + assert(expected == actual, s"Expected $expected compilations, got $actual") } - diff --git a/sbt/src/sbt-test/source-dependencies/less-inter-inv/build.sbt b/sbt/src/sbt-test/source-dependencies/less-inter-inv/build.sbt index e34f4dcfe..64c457108 100644 --- a/sbt/src/sbt-test/source-dependencies/less-inter-inv/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/less-inter-inv/build.sbt @@ -1,10 +1,10 @@ +import sbt.internal.inc.Analysis import complete.DefaultParsers._ val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } - assert(expected == actual, s"Expected $expected compilations, got $actual") + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } + assert(expected == actual, s"Expected $expected compilations, got $actual") } - diff --git a/sbt/src/sbt-test/source-dependencies/restore-classes/build.sbt b/sbt/src/sbt-test/source-dependencies/restore-classes/build.sbt index 2ec08ca41..547d55a10 100644 --- a/sbt/src/sbt-test/source-dependencies/restore-classes/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/restore-classes/build.sbt @@ -1,3 +1,4 @@ +import sbt.internal.inc.Analysis import complete.DefaultParsers._ crossTarget in Compile := target.value @@ -5,8 +6,7 @@ crossTarget in Compile := target.value val checkIterations = inputKey[Unit]("Verifies the accumlated number of iterations of incremental compilation.") checkIterations := { - val expected: Int = (Space ~> NatBasic).parsed - val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } - assert(expected == actual, s"Expected $expected compilations, got $actual") + val expected: Int = (Space ~> NatBasic).parsed + val actual: Int = (compile in Compile).value match { case a: Analysis => a.compilations.allCompilations.size } + assert(expected == actual, s"Expected $expected compilations, got $actual") } - 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 949d78231..98282e4b6 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 @@ -1,15 +1,20 @@ +import sbt.internal.inc.Analysis + /* Performs checks related to compilations: * a) checks in which compilation given set of files was recompiled * b) checks overall number of compilations performed */ TaskKey[Unit]("check-compilations") := { - val analysis = (compile in Compile).value + val analysis = (compile in Compile).value match { case a: Analysis => a } val srcDir = (scalaSource in Compile).value def relative(f: java.io.File): java.io.File = f.relativeTo(srcDir) getOrElse f + def findFile(className: String): File = { + relative(analysis.relations.definesClass(className).head) + } val allCompilations = analysis.compilations.allCompilations val recompiledFiles: Seq[Set[java.io.File]] = allCompilations map { c => val recompiledFiles = analysis.apis.internal.collect { - case (file, api) if api.compilation.startTime == c.startTime => relative(file) + case (cn, api) if api.compilation.startTime == c.startTime => findFile(cn) } recompiledFiles.toSet } diff --git a/sbt/src/sbt-test/source-dependencies/trait-member-modified/pending b/sbt/src/sbt-test/source-dependencies/trait-member-modified/test similarity index 100% rename from sbt/src/sbt-test/source-dependencies/trait-member-modified/pending rename to sbt/src/sbt-test/source-dependencies/trait-member-modified/test 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 1c79eebbe..b0eaa9998 100644 --- a/sbt/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt +++ b/sbt/src/sbt-test/source-dependencies/transitive-memberRef/build.sbt @@ -1,6 +1,6 @@ -logLevel := Level.Debug +import sbt.internal.inc.Analysis -incOptions := incOptions.value.withNameHashing(true) +logLevel := Level.Debug // disable sbt's heauristic which recompiles everything in case // some fraction (e.g. 50%) of files is scheduled to be recompiled 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 65dabf892..e5e0fd000 100644 --- a/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt +++ b/sbt/src/sbt-test/tests/scala-instance-classloader/build.sbt @@ -1,3 +1,4 @@ +import sbt.internal.inc.ScalaInstance lazy val OtherScala = config("other-scala").hide From bc90cd28665c280be022bb4cc90550cdbddd1cd1 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 7 May 2016 17:20:55 -0400 Subject: [PATCH 08/10] Fix dependency-management/cache-update --- sbt/src/sbt-test/dependency-management/cache-update/build.sbt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbt/src/sbt-test/dependency-management/cache-update/build.sbt b/sbt/src/sbt-test/dependency-management/cache-update/build.sbt index f56cb3b95..d2a434add 100644 --- a/sbt/src/sbt-test/dependency-management/cache-update/build.sbt +++ b/sbt/src/sbt-test/dependency-management/cache-update/build.sbt @@ -1,3 +1,5 @@ +import sbt.internal.librarymanagement._ + lazy val check = taskKey[Unit]("Runs the check") def commonSettings: Seq[Def.Setting[_]] = From d437e8299e15bf633d1b8fa9a453afee4d8cfbae Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 7 May 2016 20:31:19 -0400 Subject: [PATCH 09/10] Typo fix --- .../main/scala/sbt/internal/parser/SbtRefactorings.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala index 2218f4eed..e90fa1818 100644 --- a/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala +++ b/main/src/main/scala/sbt/internal/parser/SbtRefactorings.scala @@ -9,8 +9,8 @@ private[sbt] object SbtRefactorings { import sbt.internal.parser.SbtParser.{ END_OF_LINE, FAKE_FILE } import sbt.internal.SessionSettings.{ SessionSetting, SbtConfigFile } - val emtpyString = "" - val reverseOrdeingInt = Ordering[Int].reverse + val emptyString = "" + val reverseOrderingInt = Ordering[Int].reverse /** * Refactoring a `.sbt` file so that the new settings are used instead of any existing settings. @@ -25,7 +25,7 @@ private[sbt] object SbtRefactorings { val (file, lines) = configFile val split = SbtParser(FAKE_FILE, lines) val recordedCommands = recordCommands(commands, split) - val sortedRecordedCommands = recordedCommands.sortBy(_._1)(reverseOrdeingInt) + val sortedRecordedCommands = recordedCommands.sortBy(_._1)(reverseOrderingInt) val newContent = replaceFromBottomToTop(lines.mkString(END_OF_LINE), sortedRecordedCommands) (file, newContent.lines.toList) @@ -63,7 +63,7 @@ private[sbt] object SbtRefactorings { if (name == treeName) { val replacement = if (acc.isEmpty) command.mkString(END_OF_LINE) - else emtpyString + else emptyString (tree.pos.start, st, replacement) +: acc } else { acc From a322684cb76ec82969a13da4c52a8503ca7ca827 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 7 May 2016 20:31:28 -0400 Subject: [PATCH 10/10] Remove comment per review --- build.sbt | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.sbt b/build.sbt index 36379001b..ba52ef28e 100644 --- a/build.sbt +++ b/build.sbt @@ -297,8 +297,6 @@ def fullDocSettings = Util.baseScalacOptions ++ Docs.settings ++ Sxr.settings ++ dependencyClasspath in (Compile, doc) := (fullClasspath in sxr).value ) -/* Nested Projproject paths */ - lazy val safeUnitTests = taskKey[Unit]("Known working tests (for both 2.10 and 2.11)") lazy val safeProjects: ScopeFilter = ScopeFilter( inProjects(mainSettingsProj, mainProj,