Commit Graph

363 Commits

Author SHA1 Message Date
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 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
Eugene Yokota 7e0c76f5a6 Merge branch '0.13' into 0.13.6 2014-08-24 18:24:37 -04: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 a5a44a88c2 #1541. Use HTTPS for sbt plugin repository 2014-08-24 16:37:24 -04:00
Eugene Yokota 2904bdcb32 #1541. Use HTTPS for Typesafe repository 2014-08-23 17:47:48 -04:00
Eugene Yokota 9b42a1899d Fixes #1549. Use HTTPS for Java.net Maven 2 repository 2014-08-23 17:47:48 -04:00
Eugene Yokota 1e180cc030 Deprecate JavaNet1Repository. #1541
I don’t think there’s an alternative for java.net Maven 1 repository.
2014-08-23 17:47:47 -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
Havoc Pennington b202bd6848 Merge pull request #1538 from sbt/fix/1439
Fixes #1439. Fixes metabuild downloading unused Scala 2.10.2
2014-08-20 14:26:02 -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 8a069d0fb2 Fixes #1439. Fixes metabuild downloading unused Scala 2.10.2
Scala instance is added to the Ivy graph via autoLibraryDependency.
For metabuilds, scala-library is scoped under “provided” configuration,
which does not seem to evict modules on “compiled” configuration.
This commit turns overrideScalaVersion flag to true for the metabuilds,
so override rules are added for the following modules:
- scala-library
- scala-compiler
- scala-reflect
2014-08-17 23:18:32 -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 e1d60b6de0 Fixes #1484. Fixes another variant of update NPE
Ivy gives an array that contains null for caller configurations.
sbinary barfs when it sees null. Curiously two of the sbt plugins that
hit this bug happens to be from Typesafe:
    addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.2")
    addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager"  % "0.7.3")
2014-08-15 02:57:17 -04:00
Eugene Yokota 074fbdb9e6 ModuleDetailReport => OrganizationArtifactReport
ModuleDetailReport hasn’t been released yet, so this rename is safe.
2014-08-15 01:57:21 -04:00
Josh Suereth 58175e28c1 Merge pull request #1520 from sbt/fix/1514
Fixes #1514, #321. Fixes -SNAPSHOT issue by re-implemeting ChainResolver
2014-08-12 10:04:10 -04:00
Eugene Yokota d11427dd85 Using iterators 2014-08-11 22:49:48 -04:00
Eugene Yokota 01c95b5d62 Special treatment for a special resolver: inter-project 2014-08-11 12:45:14 -04:00
Josh Suereth f7c4898a97 Merge pull request #1491 from sbt/fix/528
Unresolved dependency warning includes source position. Fixes #528
2014-08-11 07:51:33 -04:00
Eugene Yokota 286d567781 Fixes #1514, #321. Fixes -SNAPSHOT issue by re-implemeting ChainResolver.
Adds `lastestSnapshots` flag to `updateOptions`, which controls the behavior of the chained resolver. Up until 0.13.6, sbt was picking the first `-SNAPSHOT` revision it found along the chain. When  is enabled (default: ), it will look into all resolvers on the chain, and compare them using the publish date.
The tradeoff is probably a longer resolution time if you have many remote repositories on the build or you live away from the severs. So here's how to disable it:

    updateOptions := updateOptions.value.withLatestSnapshots(false)

Ivy by default uses latest-revision as the latest strategy. This strategy I don't think takes in account for the possibility that a changing revision may exist in multiple repositories/resolvers with having identical version number like 0.1.0-SNAPSHOT.
The implementation is a bit hacky, but I think it attacks the core of this problem.
2014-08-10 18:56:58 -04:00
Roberto Tyley d46087ff08 Fix pom-export of Maven Central repository
Commit a1e26ca6 broke the `make-pom` & `pom-advanced` dependency-management
tests by replacing one reference to `IBiblioResolver.DEFAULT_M2_ROOT` in
`Resolver`, but not the other reference in `MakePom`:

https://travis-ci.org/sbt/sbt/jobs/31939788#L2517-L2519

...the secure url was no longer recognised as the default Maven Repository
root, so was erroneously exported.
2014-08-08 17:08:54 -04:00