Reorganize directory structure

This commit is contained in:
Eugene Yokota 2016-05-06 16:01:49 -04:00
parent 6a9ced8eb6
commit ee272d780e
67 changed files with 7 additions and 44 deletions

View File

@ -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(

View File

@ -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]

View File

@ -1 +0,0 @@
[sbt](http://scala-sbt.org) is a Scala build tool.