Commit Graph

45 Commits

Author SHA1 Message Date
Martin Duhem 541bd4a6a4 Fix for sbt/sbt#1933
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.

Fixes sbt/sbt#1933
2015-10-28 15:23:45 +01:00
eugene yokota 66af3adefa Merge pull request #2142 from pdalpra/fix-warnings
Fix additional warnings
2015-08-13 03:27:35 -04:00
Dale Wijnand a432c3def1 Merge remote-tracking branch 'origin/0.13.9' into merge-0.13.9-into-0.13
* origin/0.13.9:
  Notes
  0.13.9
  cached resolution: use mutable map to speed up breakLoops
  cached resolution: don't include callers from evicted modules
  Add debug logs
  Fixes #2129. break up circular dependency loops in cached resolution
  try breaking circular dependency and continue sorting
  refactored to use less stack space
  make sortModules tailrec
  Reproduce stack overflow using cached resolution with circular dependency
2015-08-11 22:42:31 +01:00
Pierre DAL-PRA 8f1fb2d232 Fix additional warnings 2015-08-07 00:23:14 +02:00
Eugene Yokota bc5e7d5623 refactored to use less stack space 2015-07-25 22:40:18 -04:00
eugene yokota c703b2a6a0 Merge pull request #2116 from sbt/0.13.9
Merge 0.13.9 back into 0.13
2015-07-18 13:36:04 -04:00
Eugene Yokota 7eb7df017e Fixes #2105/#1763. Cached resolution: removes duplicate callers during merge 2015-07-18 02:17:25 -04:00
Martin Duhem 90a8423d8e Find most specific version of compiler interface sources
This commit introduces a mechanism that allows sbt to find the most
specific version of the compiler interface sources that exists using
Ivy.

For instance, when asked for a compiler interface for Scala 2.11.8-M2,
sbt will look for sources for:

 - 2.11.8-M2 ;
 - 2.11.8 ;
 - 2.11 ;
 - the default sources.

This commit also modifies the build definition by removing the
precompiled projects and configuring the compiler-interface project so
that it publishes its source artifacts in a Maven-friendly format.
2015-07-16 11:18:48 +02:00
Eugene Yokota 5256e64263 Reproduce #2046 2015-07-09 01:52:00 -04:00
Andrew Johnson 5650f1bc8f Fix compilation error in BaseIvySpecification 2015-03-31 13:03:49 -04:00
Josh Suereth 3611ba4943 Fix unit test for makepom. 2015-03-27 07:51:37 -04:00
Josh Suereth 8feb3ecf6a Restore component manager test via stubs. 2015-03-25 08:03:09 -04:00
Josh Suereth 9380ca02eb Migrate to using the sbt/launcher module, rather than having the code embedded.
* Remove launch/* code/tests, as these are in the sbt/launcher project.
* Create a new project which will resolve launcher module from sonatype-snapshots,
  and repackage it for the currently building version of sbt.
* Remove ComponentManagerTest which was relying DIRECTLY on launcher classes.
  We'll need to reconfigure this shortly to enable the tests again.

Remaining TODOs -

* Update resolvers so people can find the launcher.
* Add ComponentManagerTest back.
* Re-publish the sbt-launch.jar in the location it used to be published.
2015-03-24 16:12:51 -04:00
Eugene Yokota ef1ec99bd0 Implement pickler for UpdateReport. #1763 2015-03-09 21:22:57 -04:00
Eugene Yokota 406c80ddd6 Adjust tests. 2015-01-10 22:55:50 -05:00
Josh Suereth 16a64d70ef Migrate pom extra attributes out of CustomPomParser for deprecation. 2015-01-09 14:14:40 -05:00
Josh Suereth e3931dbfec Create a new Ivy DependencyResolver which uses Aether.
* Here we wire Aether into the Ivy dependency chain
* Add hooks into Aether to use Ivy's http library (so credentials are configured the same)
* Create the actual Resolver which extracts metadata information from Aether
* Deprecate old Ivy-Maven integrations
* Create hooks in existing Resolver facilities to expose a flag to enable the new behavior.
* Create notes documenting the feature.
* Create a new resolver type `MavenCache` which denotes how to read/write local maven cache metadata
  correctly.  We use this type for publishM2 and mavenLocal.
* Update failing -SNAPSHOT related tests to use new Aether resolver
* Create specification for expected behavior from the new resolvers.

Known to fix #1322, #321, #647, #1616
2015-01-08 08:53:25 -05:00
Eugene Yokota 9d09af9568 Fixes #1634. Adds inconsistent duplicate warning
#1634 is about a library getting wiped out of deps graph when it’s
included twice in ascending order of version.
I’d say that’s a logically inconsistent state, and we should just issue
warning instead of trying to fix it.
2014-12-14 07:52:05 -05:00
Eugene Yokota fe8d290c17 Implemented cached resolution (minigraph caching) 2014-09-29 17:33:37 -04:00
Tejas Mandke 270246464c propagate pattern descriptorOptional and skipConsistencyCheck 2014-09-24 19:42:15 -07:00
Josh Suereth 260d67f288 Merge pull request #1537 from sbt/fix/1275
Improves pom dynamic revision conversion
2014-08-24 18:19:02 -04:00
Eugene Yokota f99c5817f5 Based on Ivy's behavior, bringing back approximation
I assumed 1.1+ should be treated as 1.+, but it seems like Ivy treats
it more as “any version that starts with 1.1” including 1.10.
Josh’s original implementation approximates this by making ranges for
multiple digits, 1.1~1.2, 1.10~1.20, etc.
2014-08-22 03:54:32 -04:00
Eugene Yokota 8c90e7eb74 Fixes #1201. Display instruction to overrideScalaVersion
scala-library is currently treated as just one of the library modules.
This means that it’s at the mercy of eviction if some other library
uses newer version of scala-library.
This commit displays a instruction on how to force scalaVersion if
warnScalaVersionEviction flag is true on EvictionWarningOptions.
2014-08-18 00:54:19 -04:00
Eugene Yokota b812cdc916 Fixes #1275. Fixes pom dynamic revision conversion
Ivy and pom uses slightly different notation for version range and
dynamic revision.
This change fixes the dynamic revisions involving “+”.
First, when a revision like “1.1+” is found, it will now be treated as
“1.+”.
Next, when it finds a revision like “1+” is found, it will be treated
as “+”.
The conversion of “+” is hardcoded to be “[0,)”.
2014-08-16 22:38:35 -04:00
Eugene Yokota c8af32950d Implements eviction warning stories. #1200
This implements all stories from https://github.com/sbt/sbt/wiki/User-Stories%3A-Conflict-Warning.
When scalaVersion is no longer effective an eviction warning will display.

    Scala version was updated by one of library dependencies:
        * org.scala-lang:scala-library:2.10.2 -> 2.10.3

When there're suspected incompatibility in directly depended Java libraries,
eviction warnings will display.

   There may be incompatibilities among your library dependencies.
   Here are some of the libraries that were evicted:
      * commons-io:commons-io:1.4 -> 2.4

When there's suspected incompatiblity in directly depended Scala libraries,
eviction warnings will display.

  There may be incompatibilities among your library dependencies.
  Here are some of the libraries that were evicted:
      * com.typesafe.akka:akka-actor_2.10:2.1.4 -> 2.3.4

This also adds 'evicted' task, which displays more detailed eviction warnings.
2014-07-27 12:26:12 -04:00
Eugene Yokota 3e3d7651f8 pseudo-case class VersionNumber
VersionNumber is a pseudo-case class that represents any form of
version number. The unapply extractor can parse String into
three sequences that makes up VersionNumber.
VersionNumberCompatibility trait uses two VersionNumber instances
to evaluate binary compatibility between them.
Two implementations SemVer and SecondSegment are provided.
2014-07-27 12:14:30 -04:00
David Pratt 0bb9be34df Make jar artifact a 0-byte file. 2014-06-09 13:54:20 -05:00
David Pratt 2ceb4f7d72 Add a unit test for the 'scala-jar' mapping. 2014-06-07 20:58:31 -05:00
Josh Suereth abffc3e1bd Bump expected 2.11 module versions so we can compile with 2.11
Add scala 2.11 test/build verification.

* Add 2.11 build configuratoin to travis ci
* Create command which runs `safe` unit tests
* Create command to test the scala 2.11 build
* Update scalacheck to 1.11.4
* Update specs2 to 2.3.11
* Fix various 2.11/deprecation removals
  and other changes.

Fix eval test failure in scala 2.11 with XML not existing.
2014-05-14 19:08:05 -04:00
Josh Suereth 244abd3b6f Scalariforming test code 2014-05-07 11:52:23 -04:00
Josh Suereth 5486daf700 Pull in @cunei's suggestion for a more complete Ivy->Maven dynamic revision convertor.
We attempt to convert these constructs to maven:
   * 1.+
   * ]1,2]
   * [2,3[
   * 1+  - Albeit this one is a heuristic for accuracy.

This should help ivy users which prefer the nicer 1.2.+ syntax.

Also adds tests/improves exisitng tests.
2014-03-05 19:14:21 -05:00
Mark Harrah e69df1ae9c use separate ivy home directories in component provider test so tests can run concurrently 2013-03-18 09:52:57 -04:00
Eugene Yokota d7779ec96e add more CrossVersionTest 2013-01-24 13:03:40 -05:00
Eugene Yokota fedd43922a add CrossVersionTest 2013-01-24 13:03:40 -05:00
Josh Suereth 0c08c1169e Bumped the Scalatest/Specs versions for 2.10.0-RC3
* Modified tests to use mutable Specs API
* Fixed a few minor specs issues.
2012-12-04 13:10:09 -05:00
Mark Harrah dcea4f2293 make ComponentManager honor value of Ivy home provided by the launcher 2011-09-16 23:08:01 -04:00
Mark Harrah 4509428af9 locking of boot directory can be disabled by with [boot].lock: true in boot.properties 2011-05-19 22:04:05 -04:00
Mark Harrah a3f1b9c22f fix tests, discovery
updated compile tests for new minimal AnalysisCallback
moved discovery to discovery/ subproject and updated for new approach
fixed discovery to only find public methods when searching for annotated definitions
extracting inherited definitions unimplemented in api/, so some discovery tests fail
moved discovery classes from sbt.inc package to sbt.compile
2010-10-06 08:24:13 -04:00
Mark Harrah 6f3c699435 - Stuart's improvements to triggered execution
- continue splitting original sbt module
 * separated process, testing modules
 * various IO, logging, classpath migration
 * split out javac interface
2010-07-05 12:53:37 -04:00
Mark Harrah fa93a64cf9 Replace Ivy interface with the component from xsbt 2010-01-15 19:05:23 -05:00
Mark Harrah 8e08708792 Fix global lock implementation for ComponentManager 2009-10-14 18:05:53 -04:00
Mark Harrah 1d40e5e71d Synchronize caches 2009-10-10 22:01:03 -04:00
Mark Harrah b2fdc07505 Turned sbt launcher into a general Scala application launcher as described in launch.specification 2009-09-27 14:39:26 -04:00
Mark Harrah 8bfb2802fb Filling in logging and making cross-compile work. 2009-09-05 12:19:34 -04:00
Mark Harrah 108807a773 Tests and fixes for component manager and cache interface. 2009-08-20 00:02:06 -04:00