Commit Graph

382 Commits

Author SHA1 Message Date
Eugene Yokota 398e15ab63 Fixes #1710. Fixed cached resolution mutual eviction
When stitching the minigraphs together only exclude the artifacts that
were evicted in *all* graphs, instead of some graphs.
Consider the following scenario:
- Y1 evicts slf4j-api 1.6.6 and picks 1.7.5
- Y2 evicts slf4j-api 1.7.5 and picks 1.6.6
At the root level, we need to use our own judgement and pick 1.7.5.
2014-11-01 20:50:41 -04:00
Eugene Yokota 9482509b32 added comments 2014-10-28 22:31:20 -04:00
Eugene Yokota a54777d4f2 Fixes #1699. ignore transitive force during cached resolution
When Ivy translates pom to ivy.xml, it adds force=“true”.
So when both non-Maven dependencies and Maven dependencies are mixed, Maven dependencies always wins, which is the case for scala-library dependency added by the user.
2014-10-28 14:28:33 -04:00
Eugene Yokota 65e663ee8e Fixes #1684. cached resolution applies overrides on conflict
This change brings over dependency overrides to artificial graph.
However, it seems forced might win, so I need to take overrides logic
in account during conflict resolution.
2014-10-22 19:15:54 -04:00
Josh Suereth c367c83d21 Revert chain resolver by default, for older behavior.
The issue comes into play where we cannot accurately get a publication date from Maven artifacts, leading to the current
mechanism having undefined behavior and causing other bugs to pop up in resolution.
2014-10-20 12:26:40 -04:00
Eugene Yokota ff18062c86 Fixes #1677. Provide URLSerializer.
Without this json4s is unable to parse URLs.
2014-10-18 07:15:52 -04:00
Josh Suereth d7c76aabf1 Merge pull request #1663 from sbt/wip/avoid-deprecated
enable -deprecation for Scala 2.10
2014-10-12 12:31:08 -04:00
Eugene Yokota c47cbf5d02 Implement configuration.missingOk to fix updateClassifiers
updateClassifiers sets missingOk to true.
cached resolution wasn’t respecting the looseness.
2014-10-10 17:25:43 -04:00
Eugene Yokota 3f958a5bce enable -deprecation for Scala 2.10
Enable -deprecation flag to catch old code being use when we migrate
things.
In this commit I moved error to sys.error.
2014-10-10 15:42:26 -04:00
Eugene Yokota 1043d027d0 Make sure all files exist in minigraph. 2014-10-10 06:50:36 -04:00
Eugene Yokota b8873614e0 Use correct stats for cached resolution 2014-10-10 06:40:56 -04:00
Eugene Yokota be763ad655 Make sure IvyAction.update works 2014-10-10 03:20:12 -04:00
Eugene Yokota 8ddff28a9e Fixes #1660
Provide overloads for transitiveScratch and updateClassifiers that work
with IvyActions.updateEither.
2014-10-10 00:34:05 -04:00
Eugene Yokota 09bca754b5 Fixes #1639. Fixes cached resolution interacting with force()
When conflicts are found for a given module, a forced one
is selected before conflict manager kicks in.
The problem is that DependencyDescriptor seems to mark transitive
forced dependency as forced as well,
so the actual forced dependency are sometimes not prioritized.
To work around this, I’ve introduced a mixin called
SbtDefaultDependencyDescriptor, which carries around ModuleID to detect
direct dependencies.
2014-10-09 13:11:13 -04:00
Eugene Yokota 54032ddd5f Fixes #1649. Adds exclusion rules into SHA-1 of minigraph path 2014-10-08 17:14:06 -04:00
eugene yokota 0f2c6f89a1 Merge pull request #1645 from sbt/wip/no-blankies-rebased
Natural whitespace handling for SBT configuration parser AKA 'no more blankies'
2014-10-06 14:27:50 -04:00
eugene yokota 821591d9a3 Merge pull request #1629 from sbt/wip/less-chatty-errors
Reduce the noise when resolving maven artifacts.
2014-10-06 13:52:51 -04:00
Eugene Yokota 5afb9e1af7 Fixed json serialization turning license into {}. 2014-10-05 04:24:22 -04:00
Josh Suereth a8370880e0 Remove binary compatibility breakages and migrate new parser features into an internal package. 2014-10-03 14:22:51 -04:00
Jean-Remi Desjardins ff466c5cd3 Change additional constructor to what it should probably be
I am at a total loss for why this is not compiling.
2014-10-03 14:22:51 -04:00
eugene yokota e452f77b81 Merge pull request #1635 from sbt/wip/fix-1632
Wip/fix 1632
2014-10-01 14:50:15 -04:00
Josh Suereth 2b3f34f6f6 Add file existence check for Eugene. 2014-10-01 08:18:09 -04:00
Josh Suereth ef9e88a115 Fix regression where IOExceptions were not caught on trying to access disk.
Fixes #1632
2014-10-01 08:04:39 -04:00
Eugene Yokota 40b91b5a71 some more minor changes 2014-09-30 18:19:46 -04:00
Eugene Yokota 02249c1382 update deprecation message 2014-09-30 17:48:17 -04:00
Eugene Yokota 6c3b95b23d split up json persistence into JsonUtil.scala 2014-09-30 17:44:56 -04:00
Eugene Yokota 1428a5685d spawn new instance of Ivy during minigraph resolution 2014-09-30 17:30:51 -04:00
Eugene Yokota fe8d290c17 Implemented cached resolution (minigraph caching) 2014-09-29 17:33:37 -04:00
Josh Suereth afd137844f Reduce the noise when resolving maven artifacts. 2014-09-29 14:09:35 -04:00
Josh Suereth bd34aa057a Merge pull request #1621 from tmandke/0.13
propagate pattern descriptorOptional and skipConsistencyCheck
2014-09-26 07:22:47 -04:00
Josh Suereth ec5dfee517 Fix NPE in ChainrResolver when there is no ivy file for a dependency. 2014-09-25 08:08:26 -04:00
Tejas Mandke 270246464c propagate pattern descriptorOptional and skipConsistencyCheck 2014-09-24 19:42:15 -07:00
Josh Suereth d865251686 Add workaround (and warning message) for when ChainResolver gets a null publication date while we investigate other issues.
* Attempt to set publication date to last modified time, if the stars align
* Issue warning about undefined resolution behavior otherwise
* Add scripted test which exercises the NPE issue in resolving -SNAPSHOTs.
* Commit scalariform style edit in Act.scala

* After parsing and transforming the pom, check for pub date.
* If we don't have a pub date, try to grab lastModified from the URL
* If we can't do anything, issue a warning about the problem artifact.
2014-09-24 18:23:15 -04:00
Josh Suereth 5e65beb145 Fix URL resolver so that we can push Maven artifacts to local maven repositories.
* Hook "LocalIfFile" repository to also handle publishing
* Add test to ensure mavne publishign works.
2014-09-24 14:37:26 -04:00
Josh Suereth e8a2fcc26f Merge pull request #1600 from topping/0.13
PR for #1589
2014-09-24 09:11:57 -04:00
Brian Topping 59ea77e590 Add warning for bad XML parse of settings file 2014-09-22 10:56:10 -04:00
Brian Topping 31acddf856 Additional updates, should be clean now. 2014-09-17 15:24:33 -04:00
Josh Suereth 3c8893ef2c Merge pull request #1590 from jedesah/0.13
Add developer key
2014-09-17 10:32:04 -04:00
Jean-Rémi Desjardins e3975015b8 Fix obtuse compilation error 2014-09-16 09:26:43 -07:00
Jean-Rémi Desjardins 2eb8fd1b8a Merge branch '0.13' of github.com:sbt/sbt into 0.13 2014-09-16 09:20:21 -07:00
Eugene Yokota fe7a6f6193 Expose Ivy's circular dependency check via UpdateOptions 2014-09-16 09:22:21 -04:00
Brian Topping ad7d9ce42b Tested PR for #485. Had a hard time squashing this, maybe because I did a merge in between. Sorry about that! 2014-09-15 15:26:45 -04:00
Brian Topping ef3eccf95f Merge remote-tracking branch 'upstream/0.13' into 0.13 2014-09-15 11:14:13 -04:00
Brian Topping b89c49adcb Untested PR for #485. Unable to test because unable to build 2014-09-15 10:48:47 -04:00
Jean-Rémi Desjardins 880f3733d9 Add constructor to avoid binary compatibility issues 2014-09-11 09:36:37 -07:00
Jean-Rémi Desjardins 3ea995225f Merge branch '0.13' of github.com:sbt/sbt into 0.13 2014-09-10 22:56:01 -07:00
Jean-Rémi Desjardins 183c2bcfe2 Add developers keySetting
The motivation for this is mainly to avoid having to define a pomExtra to publish to Maven central
2014-09-10 20:18:28 -07:00
Josh Suereth bdd3d01f6e Fixes from review, better names and internal code documentation. 2014-09-10 07:56:19 -04:00
Josh Suereth b226f6511a Fix Maven configuration mappings in Ivy.
It turns out there was a very subtle, and evil, issue sitting the Ivy/maven configuration, and it
related to dependency mapping.    A mapping of `foo->bar(*)` means that the local configuration
`foo` depends on the remote configuration `bar`, if it exists, or *ALL CONFIGURATIONS* if `bar`
does not exist.   Since the default Ivy configuration mapping was using the random `master`
configuration, which AFAICT is NEVER specified, just an assumed default, this would cause leaks
between maven + ivy projects.

i.e. if  a maven POM depends on a module denoted by an ivy.xml file, then you'd wind up accidentally
bleeding ALL the ivy module's configurations into the maven module's configurations.

This fix works around the issue, by assuming that if there is no `master` configuration, than the
maven default of `compile` is intended.   As sbt forces generated `ivy.xml` files to abide by
maven conventions, this works in all of our test cases.   The only scenario where it wouldn't work
is those who have custom ivy.xml files *and* have pom.xml files which rely on those custom ivy.xml files,
a very unlikely situation where the workaround is:  "define a master configuration".

Includes a test demonstrating the issue.
2014-09-09 17:45:02 -04:00
Josh Suereth dbf69b11cd Split out inter-project resolver into its own Chain.
Fixes #1565

* Create two chains if we have inter-project resolver
  - One which ensures inter-project deps are always taken
  - One which will look in all "other" repositories for
    dependencies and will use the "most up-to-date" -SNAPSHOT
    strategy.
* No additional tests, as this would simple break every
  multi-project test if it were wrong.
2014-09-05 10:40:49 -04:00