Commit Graph

53 Commits

Author SHA1 Message Date
Eugene Yokota 9c1566dfa1 Fix false positive on sbt 1.x module eviction warnings
Fixes #187
2017-11-29 20:02:37 -05:00
xuwei-k a385a13fa5 fix incorrect eviction warning message 2017-11-02 15:10:05 +09:00
Peter Vlugter 437165eeb5 Include sbt plugin extra attributes in cached resolution 2017-08-16 11:27:26 +12:00
Dale Wijnand 63e63f05fa
Add back, re-configure & re-enable Scalafmt 2017-08-10 12:04:58 +01:00
Eugene Yokota 26fa1c5f4b Fixes sbtApiVersion logic
The NonRelease pattern matcher is ony checking for the third segment, but for sbt 1.x, we need to check both the second and third segment since 1.1.0-M1 would be bincompat with 1.0.

Fixes sbt/sbt#3360
2017-07-23 02:34:36 -04:00
Eugene Yokota 509c80c8a7 Bump to latest IO and Util 2017-07-15 13:52:10 -04:00
Eugene Yokota 0c28db9d21 rename to DependencyResolutionInterface 2017-07-15 11:17:23 -04:00
Eugene Yokota 7b22e78fd9 Library management API
This splits the core of LM and Ivy-based implementation.

- InlineConfiguration is renamed to ModuleConfiguration
- IvyScala is renamed to ScalaModuleInfo
- UpdateConfiguration, RetrieveConfiguration, PublishConfiguration are refactored to use builder pattern.
- Adds ConfigRef for referencing Configuration
- Moves syntax related things into `sbt.librarymagement.syntax`
2017-07-15 11:17:23 -04:00
Eugene Yokota 319054fa32 Add build.sbt 2015-08-19 03:56:08 -04:00
eugene yokota 2a6edd6815 Merge pull request #2142 from pdalpra/fix-warnings
Fix additional warnings
2015-08-13 03:27:35 -04:00
Dale Wijnand 39675e40d3 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 1b90c865d1 Fix additional warnings 2015-08-07 00:23:14 +02:00
Eugene Yokota ddf941f371 refactored to use less stack space 2015-07-25 22:40:18 -04:00
eugene yokota c8e1da38b7 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 a1ac6c6eaa Fixes #2105/#1763. Cached resolution: removes duplicate callers during merge 2015-07-18 02:17:25 -04:00
Martin Duhem 63cfbb49e2 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 2bc3b88434 Reproduce #2046 2015-07-09 01:52:00 -04:00
Andrew Johnson 31d71c72e2 Fix compilation error in BaseIvySpecification 2015-03-31 13:03:49 -04:00
Josh Suereth 07731e68f5 Fix unit test for makepom. 2015-03-27 07:51:37 -04:00
Josh Suereth 7877723d12 Restore component manager test via stubs. 2015-03-25 08:03:09 -04:00
Josh Suereth df959cf0d4 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 1a65c774c3 Implement pickler for UpdateReport. #1763 2015-03-09 21:22:57 -04:00
Eugene Yokota a02fe61792 Adjust tests. 2015-01-10 22:55:50 -05:00
Josh Suereth 038fb98c7f Migrate pom extra attributes out of CustomPomParser for deprecation. 2015-01-09 14:14:40 -05:00
Josh Suereth 4403863aca 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 80db26bc20 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 07b696b395 Implemented cached resolution (minigraph caching) 2014-09-29 17:33:37 -04:00
Tejas Mandke 51f48a8993 propagate pattern descriptorOptional and skipConsistencyCheck 2014-09-24 19:42:15 -07:00
Josh Suereth ca0665d7f0 Merge pull request #1537 from sbt/fix/1275
Improves pom dynamic revision conversion
2014-08-24 18:19:02 -04:00
Eugene Yokota 92214f739a 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 676e95eaee 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 697a28771e 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 2b8fa35b8d 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 439f8498b6 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 648ab3a8dd Make jar artifact a 0-byte file. 2014-06-09 13:54:20 -05:00
David Pratt f38cd6d8c3 Add a unit test for the 'scala-jar' mapping. 2014-06-07 20:58:31 -05:00
Josh Suereth 5ea556a397 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 fc5da1fa65 Scalariforming test code 2014-05-07 11:52:23 -04:00
Josh Suereth ee28011dfc 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 f728912f12 use separate ivy home directories in component provider test so tests can run concurrently 2013-03-18 09:52:57 -04:00
Eugene Yokota 71473e99f2 add more CrossVersionTest 2013-01-24 13:03:40 -05:00
Eugene Yokota a6e7f4dc8f add CrossVersionTest 2013-01-24 13:03:40 -05:00
Josh Suereth 7f5f936db4 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 31f492f4bc make ComponentManager honor value of Ivy home provided by the launcher 2011-09-16 23:08:01 -04:00
Mark Harrah 6ba42e0d2b 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 c3f54347ef 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 68da4c8ae5 - 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 9f9cbd55c7 Replace Ivy interface with the component from xsbt 2010-01-15 19:05:23 -05:00
Mark Harrah 94b8fb5a19 Fix global lock implementation for ComponentManager 2009-10-14 18:05:53 -04:00
Mark Harrah ec61fa3df0 Synchronize caches 2009-10-10 22:01:03 -04:00