Commit Graph

1121 Commits

Author SHA1 Message Date
Eugene Yokota cf0fef5a85 Inter-project dependency tracking. Fixes #2266
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
      )
2016-01-25 13:56:17 +01:00
Eugene Yokota 8f88a35922 Adds CompatibilityWarningOptions. Fixes #2347
This addresses 0.13.10 regression, which currently warns users about
Maven incompatibility on a private configuration. This adds a config
class so the build user can control the level of the warning as well as
the target configuration to be monitored.
By default, we are only going to look at `Compile` and `Runtime`.
2016-01-25 12:11:56 +01:00
Dale Wijnand 4f2729c0b0 Merge pull request #16 from dwijnand/travis-jdks
Travis JDKs
2016-01-18 07:29:59 +00:00
Dale Wijnand 77a1e5d871 Target Oracle JDK 7 & 8 in Travis 2016-01-17 22:17:54 +00:00
Dale Wijnand d017e2603e Merge pull request #21 from dwijnand/move-CompatibilityWarning
Move CompatibilityWarning to sbt.internal.librarymanagement
2016-01-17 21:22:27 +00:00
Dale Wijnand ffcec2fa35 Commit auto-formatted code 2016-01-17 21:12:36 +00:00
Dale Wijnand 0a8402a8a9 Add missing imports 2016-01-17 21:12:27 +00:00
Dale Wijnand d693d0cde9 Move CompatibilityWarning to sbt.internal.librarymanagement 2016-01-17 19:58:57 +00:00
eugene yokota 598ac3c34c Merge pull request #20 from dwijnand/fport/refix-snapshots
FPORT: Refix snapshots
2016-01-17 14:08:08 -05:00
eugene yokota 1c4e67fda7 Merge pull request #19 from dwijnand/fport/maven-compatibility-changes
FPORT: Maven compatibility changes (intransitive warnings and "configuration not public")
2016-01-17 14:07:56 -05:00
eugene yokota 7d7787bd83 Merge pull request #18 from dwijnand/fport/make-sbt-dotty-aware
FPORT: Make sbt aware of Dotty
2016-01-17 14:07:31 -05:00
Eugene Yokota 660d66ef1f Bump up ivy to 2.3.0-sbt-2cc8d2761242b072cedb0a04cb39435c4fa24f9a 2016-01-17 18:53:42 +00:00
Eugene Yokota bd792c3bb8 Fixes #1616. Fixes the "latest snapshot" chain resolver
The "latest snapshot" chain resolver was assuming that there's at least
one artifact per module. I think that was the root cause of #1616.
2016-01-17 18:53:06 +00:00
Eugene Yokota 33ae444041 Bump up ivy to 2.3.0-sbt-39ece6f17e1af62c2e89a9d88b59c0c3aad56145
Ref sbt/ivy#21
2016-01-17 18:53:03 +00:00
Eugene Yokota 409d1a7f4e Fixes #1514. Enable latest SNAPSHOT option by default
to check all resolvers to find the latest snapshot artifacts.
This behavior did not work well with Maven repositories where sbt was
failing to calculate the correct publication dates.
Now that #2075 fixes the Maven integration issue we should enable this
flag back again.

The build user can opt out by:

    updateOptions := updateOptions.value.withLatestSnapshots(false)
2016-01-17 18:49:46 +00:00
Eugene Yokota 54fa9dd416 Improve warning message 2016-01-17 18:37:23 +00:00
Eugene Yokota eef906e09a Fixes #1827. Adds withInterProjectFirst to update option.
withInterProjectFirst when set to true will prioritize inter-project
resolver over all other resolver and Ivy cache.
This aimed to workaround the fact that on Maven Test configuration is
considered private, and thus project dependency with `test->test`
configuration may not under some condition. The condition is when
someone resolves `x:y:1.0` and you have a subproject named and
versioned exactly that, and some other subproject tries to depend on
it. This happens when the project does not change the version number on
the Github.
2016-01-17 18:37:23 +00:00
Eugene Yokota b705d4e998 Update warning message a bit. 2016-01-17 16:43:44 +00:00
Eugene Yokota 6fb70aedf1 Reproduce "configuration not public" on local test->test. #1827 2016-01-17 16:43:44 +00:00
Eugene Yokota 17397249ae Move intransitive warning to update. Ref #2127 2016-01-17 16:43:40 +00:00
Guillaume Martres 368866bce9 Make sbt aware of Dotty
This small set of changes, together with the compiler-bridge I wrote
(https://github.com/smarter/dotty-bridge) enables us to compile code
using Dotty in sbt, see https://github.com/smarter/dotty-example-project
for an example.

Partial forward port of sbt/sbt#2344.
2016-01-17 16:35:41 +00:00
eugene yokota b0ca6f797e Merge pull request #17 from dwijnand/fport/make-JCenter-opt-in
FPORT: Make Make JCenter opt in
2016-01-16 15:00:21 -05:00
Dale Wijnand f87eabdc98 FPORT: Make Make JCenter opt in
Forward-port of sbt/sbt#2335.
2016-01-16 15:44:55 +00:00
eugene yokota 22d12cf996 Merge pull request #15 from sbt/wip/bumputil
Update util to 0.1.0-M8
2015-12-24 05:46:31 -05:00
Martin Duhem 84e7c5a360 Bump Scala version in .travis.yml and build.sbt 2015-12-24 09:07:02 +01:00
Eugene Yokota b87fb4627e Update util to 0.1.0-M8 2015-12-24 02:02:20 -05:00
eugene yokota 40b7ed8020 Merge pull request #9 from sbt/wip/richupdatereport
Split RichUpdateReport into internal
2015-12-07 16:02:28 -05:00
eugene yokota b34f1f2f73 Merge pull request #11 from Duhemm/port-2258
Don't warn on inconsistent versions in different configurations
2015-12-03 17:53:36 -05:00
eugene yokota fffae1b76c Merge pull request #13 from Duhemm/port-2297
Fixes sbt/sbt#2264. Use explicit artifacts if any, fallback to hardcoded
2015-12-03 16:43:41 -05:00
eugene yokota ac571371c6 Fixes sbt/sbt#2264. Use explicit artifacts if any, fallback to hardcoded
Even though it's not really used, updateClassifiers constructs
dependency graph based on the result from update.
The direct cause of sbt/sbt#2264 came from the fact that the `allModules`
returned from ConfigurationReport did not include dependency
configurations. For example it returned "compile" instead of
"compile->runtime". I've identified that in #2264 and was fixed by
@Duhemm in sbt/sbt@f49fb33.

Martin identified that the fix still does not address the fact that
updateClassifier hardcodes the classifiers to be tried. This commit
adds the fallback behavior so for Ivy-published modules it will use the
explicit list of artifacts, and for others it will fallback to the
hardcoded list of classifiers.
2015-12-03 17:23:32 +01:00
eugene yokota 009910c12c Merge pull request #12 from dwijnand/add-Resolver.bintraySbtRepo
Add Resolver.bintrayIvyRepo
2015-11-25 14:58:07 -05:00
Dale Wijnand 0cef0c3680 Add Resolver.bintrayIvyRepo 2015-11-25 09:54:56 +00:00
Martin Duhem 4831da8f4b Don't warn on inconsistent versions in different configurations
(This is a port of sbt/sbt#2258)

sbt was reporting warning abouts inconsistent versions of dependencies
even if these dependencies didn't have the same configuration (as in
`provided` vs `compile`).

This commit fixes this problem by comparing the dependencies by
organization, artifact name and configuration.
2015-11-11 15:12:05 +01:00
Eugene Yokota c740f4c29e Remove deltag.sh 2015-10-02 02:47:44 -04:00
Eugene Yokota c97563a0c0 change Scaladoc style comment 2015-10-01 23:57:58 -04:00
Eugene Yokota 5af540628f use the internal syntax 2015-10-01 23:46:59 -04:00
Eugene Yokota 82282a2090 bump util 2015-10-01 23:46:58 -04:00
Eugene Yokota 8d12cdac63 Split RichUpdateReport into internal 2015-10-01 23:46:58 -04:00
eugene yokota 6528019ec6 Merge pull request #8 from dwijnand/add-MavenRepository.localIfFile
Add localIfFile to MavenRepository & use it
2015-10-01 23:45:31 -04:00
Dale Wijnand e6a401b4c3 Add localIfFile to MavenRepository & use it
port of sbt/sbt#2172, fixes sbt/librarymanagement#7
2015-10-01 21:33:58 +01:00
eugene yokota 1aaead451f Merge pull request #5 from Duhemm/houserules
Update to latest sbt-houserules, formatting
2015-09-18 21:17:51 +01:00
Martin Duhem 9a2b007a92 Remove more redundant settings 2015-09-18 09:05:43 +01:00
Martin Duhem 9cd670ac34 Remove redundant Bintray settings 2015-09-18 00:57:18 +01:00
Eugene Platonov a217178d02 add toString to UpdateOptions 2015-09-17 11:39:38 -04:00
Martin Duhem 699dcfdee5 Update to latest sbt-houserules, formatting 2015-09-16 14:57:00 +02:00
eugene yokota 8bf3873d3b Merge pull request #4 from Duhemm/port-2197
Remove IfMissing.Fallback
2015-09-11 12:05:01 -04:00
Martin Duhem cbde870057 Remove IfMissing.Fallback
It was used by code in ComponentCompiler in sbt/incrementalcompiler, but
this code has been removed.
2015-09-11 10:25:11 +02:00
eugene yokota 540e5fad96 Merge pull request #3 from Duhemm/cleaning
Clean the build and the warnings
2015-09-10 12:08:06 -04:00
Martin Duhem d00b7d8b61 Fix more warnings
Undeprecated `CustomPomParser` because it looks like nothing has
replaced it yet.

Removed usage of trait `scala.NotNull`, because it has been deprecated
as of Scala 2.11 and its support has never been implemented in scalac.
2015-09-10 16:10:51 +02:00
Martin Duhem 6822671f01 Add recommended compiler flags, fix warnings
Remove `JavaNet1Repository` which was deprecated.
2015-09-10 16:08:59 +02:00