Commit Graph

267 Commits

Author SHA1 Message Date
Guillaume Martres 348cc15dba Fix #506: Support Maven snapshots without `snapshotVersions` 2017-04-22 02:25:20 +02:00
Alexandre Archambault ec0ed108e1 Add support for relocation 2017-04-21 16:47:48 +02:00
Alexandre Archambault ad80e1482c Accept "groupId", "artifactId", "version" properties 2017-04-21 15:56:59 +02:00
Alexandre Archambault dba6225ac1 Add support for build metadata in versions 2017-04-21 14:52:19 +02:00
Alexandre Archambault d3b692e165 Don't print exclusions by default 2017-04-21 14:37:20 +02:00
Alexandre Archambault 85dcc9d539 Cleaning 2017-04-21 13:49:41 +02:00
Alexandre Archambault 68b9eeeda8 Don't use missing directory listing fallback if it can be avoided
If the POM is in cache, but not the directory listing (nor a .error file for it), the LocalUpdate and LocalUpdateChanging policies make MavenRepository do as if the directory listing is missing - it is not even checked with the subsequent cache policies if any (because the POM was found with LocalUpdate / LocalUpdateChanging in the first place).

This PR fixes that - getting the POM will fail if the directory listing or an error file for it is missing from cache. That way, subsequent cache policies can fetch the directory listing.

As this only happens depending on what's in cache, it's a bit cumbersome to test as is. Relying fully on NIO2 in subsequent coursier versions should make it easier to add test cases for that (by using a virtual fs like jimfs to test what happens depending on what's in cache).

The test should basically do:

    $ coursier fetch org.apache.maven:apache-maven:3.3.9 # fill cache
    $ rm -f $CACHE_PATH/https/repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/.directory
    $ rm -f $CACHE_PATH/https/repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/..directory.checked
    $ coursier fetch org.apache.maven:apache-maven:3.3.9

 The second fetch should work fine, fetching the directory listing, seeing that it lists no JAR, and then not attempting to download one. Before this commit, the second attempt would assume that the directory listing is not available, do without it, so assume that a JAR exists, and fail to download it.
2017-04-18 18:31:37 +02:00
Alexandre Archambault 1a34ed6340 Merge commit '9bc6952' into topic/missing-commits 2017-04-18 14:11:20 +02:00
Alexandre Archambault 9bc69527dd Update MIMA settings after 1.0.0-RC1 release (#492)
* Update MIMA settings after 1.0.0-RC1 release

* Adjust things for MIMA after 1.0.0-RC1 release
2017-04-11 15:19:27 +02:00
Alexandre Archambault 7e32f90a9e Rework artifact listing for Maven repositories
So that signature files, checksums, etc. don't appear as standalone artifacts
2017-04-11 14:41:16 +02:00
Alexandre Archambault ef21746c81 Be fine with extensions / types with dots
Like tar.gz
2017-04-11 14:41:16 +02:00
Alexandre Archambault 9c6c274571 Tweak properties substitution to be fine with deeplearning4j 2017-04-10 13:51:22 +02:00
Alexandre Archambault d629f8f7b9 Merge pull request #487 from coursier/topic/tweak-optional-config
Tweak optional pseudo-configuration
2017-04-06 15:45:29 +02:00
Alexandre Archambault 2420fa8a69 Tweak optional pseudo-configuration
Have it ~extends "default" rather than "compile", so that depending on both "default" and "optional" can be simplified to just "optional" ("default" being pulled by it now, thanks to this change). That allows to address the scala-compiler jar appearing twice on the classpath sometimes.
2017-04-06 00:14:33 +02:00
Ólafur Páll Geirsson 45b920c352 Support --repository bintray-ivy:org/repo/ in cli.
This commit adds support for a `bintray-ivy:` repository prefix to the `--repository`
flag in the cli. This option is equivalent to the `Resolver.bintrayIvyRepo` helper in sbt.
With this new helper, it's possible to write `-r bintray-ivy:scalameta/maven/` instead of

```
-r ivy:https://dl.bintray.com/scalameta/maven/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
```
2017-04-05 18:00:59 +02:00
Alexandre Archambault b54438c1ba Add fallback if directory listings are not available 2017-04-04 14:45:06 +02:00
Alexandre Archambault c176adca3c Enable sbt plugin hack in Maven repo paths by default 2017-04-03 00:19:51 +02:00
Alexandre Archambault 79e60f17ca Fix one-arg deprecated annotation warnings 2017-03-27 16:16:17 +02:00
Alexandre Archambault f0d16c88d8 Merge pull request #421 from kzys/fix-408
Trim whitespaces around version specifiers
2017-03-27 10:55:04 +02:00
Kazuyoshi Kato 557cd8036d Report all errors including POM-related ones
Resolution#errors don't have POM-related errors (e.g. #157).
The new `metadataErrors` method would replace the original `errors`
eventually.
2017-03-25 23:07:49 -07:00
Alexandre Archambault 729c62278a Fix missing artifacts for snapshot versioning
Regression since recent overhaul of artifact type handling
2017-03-23 14:07:48 +01:00
Kazuyoshi Kato 6eeeb8cb66 Trim the whitespaces in pom.xml's properties
Maven trims the whitespaces around pom.xml's properties by default.
Fixes #408
2017-02-28 22:54:06 -08:00
Alexandre Archambault ac00abd152 Tweak artifact listing
Can't remember when / why this one was necessary...
2017-02-27 15:54:57 +01:00
Alexandre Archambault 0e9109c3f7 Don't assume directory listing to be changing...
for non changing dependencies
2017-02-27 15:54:56 +01:00
Alexandre Archambault 766ccbf5a9 Better handling of optional dependencies 2017-02-13 19:19:39 +01:00
Alexandre Archambault cce332eb55 Refactor web page link listing logic, implement it on the scalajs side 2017-02-13 19:19:39 +01:00
Alexandre Archambault 6b89af3924 Better handling of artifacts from Maven repos
Doesn't seem to break things
2017-02-13 19:19:29 +01:00
Alexandre Archambault 5559c5ce01 Minor refacto 2017-02-05 15:36:34 +01:00
Alexandre Archambault 035391f647 Add missing language.implicitConversions imports 2017-02-04 16:36:52 +01:00
Alexandre Archambault d277153777 Annotate all case classes with final 2017-02-04 16:36:52 +01:00
Alexandre Archambault 7194fe7b48 Add missing language.higherKinds imports 2017-02-03 13:45:44 +01:00
Alexandre Archambault 5e0189fa7e
Allow to swap Scala mainline dependencies by Typelevel ones 2016-11-15 00:27:23 +01:00
Alexandre Archambault c16eb18cbf Merge pull request #381 from alexarchambault/topic/fixes
Fixes
2016-11-07 13:50:02 +01:00
Alexandre Archambault d5cc47ae5f
Add non regression test for org.nd4j:nd4j-native:0.5.0...
...and corresponding fixes / workarounds
2016-11-07 12:28:02 +01:00
Alexandre Archambault bf097fa018
Rework profile activation
- don't activate profiles activated by default if some user activated profiles are provided, and
- accept OS / JDK conditions in activation
2016-11-07 12:27:53 +01:00
Kazuyoshi Kato ffa33961f0 Fix #266 by stop recursively traversing a tree 2016-11-02 19:51:05 -07:00
Alexandre Archambault 92c22a03bd
Don't print colors in coursierDependencyTree if sbt.log.noformat is true
Fixes https://github.com/alexarchambault/coursier/issues/362
2016-10-30 23:10:12 +01:00
Alexandre Archambault 92a8ea2ab5 Better handling of artifact types
Fixes https://github.com/alexarchambault/coursier/issues/318
2016-10-30 20:11:09 +01:00
Alexandre Archambault 5eeb825bf5
Dummy refacto 2016-10-22 22:25:08 +02:00
Alexandre Archambault d66f21636f
Should now be fine with 2.12.0-RC2 2016-10-22 22:25:06 +02:00
Erem Boto b1f9cb96d4 Add support for property absence directives in profile activation 2016-10-15 18:34:52 -07:00
Erem Boto 50f38725d8 Make version parsing robust to leading or trailing spaces (#355) 2016-09-30 11:21:38 -07:00
Alexandre Archambault ece1b35c5f
Cleaning 2016-09-01 13:50:49 +02:00
Alexandre Archambault c17cf67734
More reliable fallback dependencies
Should fix the jrudolph/sbt-dependency-graph case of
https://gist.github.com/paulp/62eaca1850904137959ad9121cce6b15
2016-08-22 00:19:49 +02:00
Alexandre Archambault 6f93f85c5d
Switch to scalaz 7.2 2016-08-17 23:09:30 +02:00
Alexandre Archambault 1b0dd4e899
Set default artifact type to empty value
Add non regression test for
https://github.com/alexarchambault/coursier/issues/322

A dirty hack is lying in this commit.
2016-08-15 18:59:19 +02:00
Alexandre Archambault fbc04dcbc8
Be fine with modules like a:🅱️c
a:🅱️c standing for a:b_2.11:c
2016-08-05 14:33:04 -04:00
Alexandre Archambault f61a258574
Accept single version interval syntax
Fixes https://github.com/alexarchambault/coursier/issues/310
2016-08-04 17:42:16 -04:00
Alexandre Archambault 4d73166fbc
Minor refacto 2016-07-25 00:19:06 +02:00
Alexandre Archambault 5ac4efc661
Set default extension and classifier of artifact type test-jar
Fixes https://github.com/alexarchambault/coursier/issues/298
2016-07-24 14:19:45 +02:00
Alexandre Archambault 2283a34829
Set default artifact type to jar from the CLI tools
Fixes https://github.com/alexarchambault/coursier/issues/302
2016-07-23 18:39:17 +02:00
Alexandre Archambault efbcbbf860
Fix bintray resolvers syntax
Example of options that can be supplied to CLI tools:
    -r bintray:scalaz/maven
2016-07-23 18:38:08 +02:00
Alexandre Archambault eb4e73fa54
Better handling of version intervals / hints reconciliation
Fixes https://github.com/alexarchambault/coursier/issues/303
2016-07-23 18:36:36 +02:00
Alexandre Archambault 127e73abe9 Merge pull request #294 from alexarchambault/topic/better-ivy-pattern-parser
Better handling of Ivy patterns
2016-07-23 17:38:07 +02:00
Alexandre Archambault 1c34362b6f
Better handling of Ivy patterns 2016-07-23 13:56:28 +02:00
Alexandre Archambault 3a6cdb20fb
Better handling of properties in dependency management / profiles
Test fix in the next commit prevents regressions
2016-07-03 16:34:12 +02:00
Alexandre Archambault 5146be5c39
Major / important fix in dependency management handling
Version and scope from dependency management now override the ones from
the dependencies no matter what.

For spark 1.3 (a bit old now, but unit tested in CentralTests), this
makes spark-core depend on hadoop 1.x by default (because of dependency
management), instead of hadoop 2.2 whose versions appear in the dependency
sections of it (but are now overridden by those in dependency management).
Enabling the hadoop-2.2 profile reestablishes the former hadoop 2.2
versions.

This commit breaks the spark related test in CentralTests, repaired by
the next two commits.
2016-07-03 16:34:09 +02:00
Alexandre Archambault ffd58b51b0
Minor refacto 2016-07-03 16:33:05 +02:00
Alexandre Archambault efb4f6c5c0
Allow to specify Maven profiles via the CLI app 2016-07-03 16:33:01 +02:00
Alexandre Archambault f4dc1044e3
Add non regression test 2016-07-03 16:32:57 +02:00
Alexandre Archambault 1553d0b9d9
Add support for Ivy version ranges 2016-05-30 00:40:41 +02:00
Alexandre Archambault 2ddfe5f3b2 Keep version actually used to fetch metadata, to get artifacts
In case the one given by the metadata is wrong
2016-05-28 17:15:05 +02:00
Alexandre Archambault b7ba8d98d5
Don't restrict Maven property name characters too much
Fixes https://github.com/alexarchambault/coursier/issues/246
2016-05-10 14:20:16 +02:00
Alexandre Archambault 16225d98e6
Add tasks / settings allowing using other SBT sources as a repository 2016-05-09 19:25:23 +02:00
Alexandre Archambault f68ed5d42b
Add support for HTTP authentication 2016-05-09 19:25:15 +02:00
Alexandre Archambault 00484df435
Exception.getMessage can be null 2016-05-06 13:53:53 +02:00
Alexandre Archambault 3834a9519c
Allow to print dependency trees 2016-05-06 13:53:49 +02:00
Alexandre Archambault bf919d4fc1
Nasty bug
Occurring randomly :-| - hard to unit test...
2016-04-28 21:19:41 +02:00
Alexandre Archambault 5b1165b79e
Add notes about maven model 2016-04-28 21:19:37 +02:00
Alexandre Archambault 05c248df82 Safety check 2016-04-27 01:12:14 +02:00
Alexandre Archambault e5be2c4c2c
Temporary hack
to minimize the chance of two different Artifact to have the same URL -
these are handled well by the cache if the corresponding URL has not
been downloaded yet, and result in one download locking the file for the
others
2016-04-18 00:29:45 +02:00
Alexandre Archambault 5f6caefff6
Add support for shorter syntax for Typesafe and Bintray repositories 2016-04-17 22:24:28 +02:00
Alexandre Archambault 00aaf8e1ac
Factor default Ivy pattern 2016-04-17 22:24:26 +02:00
Alexandre Archambault 8de5425e4d
Ensure returned resolution artifacts are unique
Should hopefully fix issues sometimes seen on CIs using sbt-coursier
2016-04-09 17:31:57 +02:00
Alexandre Archambault da78c523fb
Remove now unnecessary checks 2016-04-09 01:34:08 +02:00
Alexandre Archambault 105236393d Add benchmark option 2016-04-05 16:58:18 +02:00
Alexandre Archambault 055ff77e5b Cleaning 2016-04-05 16:53:19 +02:00
Alexandre Archambault 1ac8a782a9 Check snapshot versioning metadata for snapshot dependencies only 2016-04-05 16:24:38 +02:00
Alexandre Archambault f167b36c1c Give the .jar extension to maven-plugin packages 2016-04-01 01:57:31 +02:00
Alexandre Archambault cffbe747ed Minor refactoring 2016-04-01 01:56:20 +02:00
Alexandre Archambault d71df26087 Basic property substitution in version in POMs 2016-04-01 01:39:19 +02:00
Alexandre Archambault 064feb8f3e Use the right conf mapping separator 2016-03-14 16:20:21 +01:00
Alexandre Archambault 5e24676216 Add some scaladoc 2016-03-14 16:20:20 +01:00
Alexandre Archambault 49eb37b1a3 Accept configurations to be specified for dependencies in the CLI tools 2016-02-28 17:31:40 +01:00
Alexandre Archambault 5bbe01bfdd Better handling of Maven scopes
Actually a regression introduced when Ivy support was added

Fixes https://github.com/alexarchambault/coursier/issues/178,
https://github.com/alexarchambault/coursier/issues/177
2016-02-28 17:31:20 +01:00
Alexandre Archambault b9895ce801 Add support for packaging attribute in POMs 2016-02-28 17:00:12 +01:00
Alexandre Archambault 1731fca26c Have the cache keep track of missing files 2016-02-24 23:50:04 +01:00
Alexandre Archambault 4676d65031 Really test version intervals...
...and fix the tests
2016-02-22 22:18:52 +01:00
Alexandre Archambault 1d58d8d453 Allow for non default classifiers to be given a try from Maven repositories
TODO Add test with the standalone classifier on coursier-cli once coursier
1.0.0-M8 is released
2016-02-20 15:56:33 +01:00
Alexandre Archambault f6da127759 Minor refactoring 2016-02-20 15:56:33 +01:00
Alexandre Archambault 56192a2cca Replace sealed traits by abstract classes in order to generate less byte code 2016-02-07 14:14:01 +01:00
Alexandre Archambault 2ca57527eb Silent warning
"imported `Properties' is permanently hidden by definition of object Properties in package util"
2016-02-07 14:13:20 +01:00
Alexandre Archambault b05e942fa4 Cache most fields of Resolution 2016-02-07 14:13:20 +01:00
Alexandre Archambault 26e41d4b7e Use Vector instead of List 2016-02-07 14:13:20 +01:00
Alexandre Archambault 829c397ca8 Keep calculated dependencies accross resolutions 2016-02-07 14:13:20 +01:00
Alexandre Archambault c9566fbf5d Cache simple fields 2016-02-07 14:13:20 +01:00
Alexandre Archambault 2e50db9486 Make most case classes final 2016-02-07 14:13:16 +01:00
Alexandre Archambault 796a428ca6 Better handling of info attributes
- Drop them from dependencies originating from Ivy metadata if asked to do so (dropInfoAttributes field of IvyRepository)
- Enable dropping them by default on ~/.ivy2/{cache,local}, and Ivy repositories in SBT plugin
- Add --drop-info-attr CLI option to enable dropping them from the command-line tools
- Test these with org.scala-js:sbt-scalajs;sbtVersion=0.13;scalaVersion=2.10:0.6.6
2016-02-04 15:03:42 +01:00
Alexandre Archambault 58c8cb4192 Print version in help message 2016-02-01 14:26:30 +01:00
Alexandre Archambault d322745ea1 Add support for user-specified exclusions from CLI 2016-01-27 11:33:14 +01:00