Commit Graph

1121 Commits

Author SHA1 Message Date
jvican 8c993d2d53
Fix sbt/sbt#2982: Add a parallel Ivy engine
This is a port of https://github.com/sbt/sbt/pull/2992.

Original description of the feature:

```
Ivy downloads have traditionally been single-threaded.

Parallel downloads are a must for a modern build tool. This commit
builds upon the work done by Josh Suereth in the branch
sbt/ivy-parallel-download-artifact.

To avoid adding external dependencies, it uses the Scala parallel
collections. If maintainers consider that is worth it to use a more
modern and appropriate approach, like Task, I'm happy to reimplement
the features with it.
```

This commit does not preserve Josh's metadata in the commit since the
whole design of the repository has changed and I did not know how to
import a commit from sbt/sbt. However, it does apply several changes to
the original PR.

Co-authored-by: Josh Suereth <joshua.suereth@gmail.com>
2017-04-27 00:02:37 +02:00
jvican e1d98a1ec2
Fix sbt/sbt#1518: Handle cross-versioned exclusions
The following PR does two things:

* Removes the unnecessary `SbtExclusionRule` that was introduced to
  exclude artifacts at the project level (and not the dependency level).
  This change was done in an independent class to avoid breaking
  bincompat in 0.13.x series.
* Handle exclusion rules correctly, propagating the cross version to the
  exclusions of the dependencies.

To fix sbt/sbt#1518, this PR takes the avenue taken in
`SbtExclusionRule`, it accepts `GroupArtifactID` which should be the
preferred way to specify dependencies from now on. Unlike
`SbtExclusionRule`, it also supports `ModuleID` for those that want to
exclude a concrete dependency.

`InclExcl` did not have any tests. The following commit also adds a
testing suite for it, showing how the issue it's fixed and how you
should use `exclude` if you're calling directly `ExclusionRule` instead
of passing in `GroupArtifactID` and `ModuleID`.
2017-04-26 23:44:14 +02:00
eugene yokota c588869f2e Merge pull request #87 from scalacenter/reformat
Reformat with scalafmt
2017-04-26 17:43:09 -04:00
jvican d42ea869d0
Apply formatting 2017-04-26 22:55:38 +02:00
jvican 712c83f859
Configure scalafmt and disable scalariform 2017-04-26 22:53:17 +02:00
eugene yokota e2ab823c06 Merge pull request #85 from eed3si9n/wip/bumputil2
Bump to util 1.0.0-M23
2017-04-17 13:46:31 -04:00
Eugene Yokota 4b0b3a05f9 Bump to util 1.0.0-M23
I'm now going to use `CacheStore.apply` in `JsonUtil` (used by cached resolution). This gets rid of `fileToStore` parameter from a bunch of classes and simplifies the setup around librarymanagement.
2017-04-17 13:29:02 -04:00
eugene yokota 4e3693179b Merge pull request #84 from dwijnand/expose-more-RichUpdateReport
Expose more in RichUpdateReport
2017-04-13 14:31:48 -04:00
Dale Wijnand 40e34b3e8e
Make RichUpdateReport return Vectors & cuddle sys.error 2017-04-13 10:08:53 +01:00
Dale Wijnand 7f25614d71
Expose more in RichUpdateReport
Fixes #83
2017-04-13 09:28:00 +01:00
Dale Wijnand 153f3837f1 Merge pull request #82 from dwijnand/default-ScmInfo-devConnection
Make ScmInfo devConnection default to None
2017-04-07 17:15:32 +01:00
Dale Wijnand 80715dfb57
Make ScmInfo devConnection default to None 2017-04-05 15:51:36 +01:00
Eugene Yokota 3244e67040 Bump io and util 2017-04-05 00:13:49 -04:00
eugene yokota 6fe4d820ed Merge pull request #81 from eed3si9n/fport/3017
[fport] Fix version parsing
2017-04-04 17:50:58 -07:00
Eugene Yokota 36121bed74 Fix version parsing
Fixes sbt/sbt#3011
2017-04-04 18:34:37 -04:00
eugene yokota a1e7e5713f Merge pull request #80 from eed3si9n/fport/2959
[fport] Maven version range improvement
2017-04-04 14:17:29 -07:00
Eugene Yokota bb258f42a6 Maven version range improvement
Previously, when the dependency resolver (Ivy) encountered a Maven version range such as `[1.3.0,)`
it would go out to the Internet to find the latest version.
This would result to a surprising behavior where the eventual version keeps changing over time
*even when there's a version of the library that satisfies the range condition*.

This changes to some Maven version ranges would be replaced with its lower bound
so that when a satisfactory version is found in the dependency graph it will be used.
You can disable this behavior using the JVM flag `-Dsbt.modversionrange=false`.

Fixes #2954
Ref #2291 / #2953
2017-04-04 16:22:28 -04:00
eugene yokota 728e57827f Merge pull request #79 from eed3si9n/fport/2897
[fport] OverrideScalaMediator, dotty nightly builds
2017-04-04 11:09:25 -07:00
Guillaume Martres 0561c12d19 Fix support for published dotty nightly builds
Dotty nightly builds are published to maven, so they end up in
configuration "default", not "compile". We still need to look into
"compile" when dotty is published locally.

You can test this using https://github.com/smarter/dotty-example-project
by updating the sbt version used in project/build.properties and by
replacing "0.1.1-SNAPSHOT" by a nightly version like
"0.1.1-20170109-be64643-NIGHTLY" in build.sbt
2017-04-04 14:01:42 -04:00
Guillaume Martres 45288b5f80 Avoid NullPointerException in sbt.ScalaOverrideTest 2017-04-04 13:18:46 -04:00
Guillaume Martres 9375c88a8b OverrideScalaMediator: fix bootstrapping a Scala compiler
Fixes #2867, #2896
2017-04-04 13:18:32 -04:00
eugene yokota 9b0818f49a Merge pull request #78 from dwijnand/expose-rich-update-report
Expose RichUpdateReport & DependencyFilter
2017-04-03 22:02:13 -07:00
Dale Wijnand 1afe7114e8
Expose RichUpdateReport enrichment 2017-04-03 12:39:52 +01:00
Dale Wijnand 723abc945f
Overload RichUpdateReport#select instead of using default args 2017-04-03 12:39:39 +01:00
Dale Wijnand cbdbf23127
Expose RichUpdateReport & DependencyFilter
Fixes #42
2017-04-03 12:39:39 +01:00
eugene yokota 9cf41bbf36 Merge pull request #77 from dwijnand/ssh-based-repo-apis
Recover lost ssh-based repo API
2017-03-31 10:20:48 -07:00
eugene yokota fcaea6787f Merge pull request #76 from dwijnand/cross-version-suffix
Allow for some customization in CrossVersion results
2017-03-31 10:20:13 -07:00
Dale Wijnand 084c94a93c
Recover lost ssh-based repo API
Recover APIs I accidentally removed in
f2efa10af1.
2017-03-31 15:02:16 +01:00
Dale Wijnand fb049d181b
Add prefix support to Binary/Full 2017-03-31 10:48:45 +01:00
Dale Wijnand 87e8d87811
Allow for some customization in CrossVersion results
The old way to customize CrossVersion results was a `String => String`
function called 'remapVersion', removed in
301ec787f2.

That was removed because it's not possible to serialise Function1s, and
we want to serialise CrossVersion (and therefore ModuleID, etc) to be
able to transfer them in sbt server.

This commit reintroduces a less-powerful way to vary the results of
apply CrossVersion, but just providing the opportunity to define a
suffix. From looking at the users of CrossVersion (Scala.js'
sbt-scalajs-plugin & Scala Native's sbt-crossproject) this looks to be
sufficient.
2017-03-31 10:24:16 +01:00
Dale Wijnand 92cc7c4cb1
Remove some compile warnings 2017-03-31 10:19:47 +01:00
Eugene Yokota d6f0924689 Util 1.0.0-M20 2017-03-22 13:59:51 -04:00
Dale Wijnand b57922efaf Merge pull request #75 from sbt/wip/bump
sbt-contraband 0.3.0-M4
2017-03-18 21:00:27 +00:00
Eugene Yokota 016db588d4 sbt-contraband 0.3.0-M4 2017-03-17 23:03:37 -04:00
Dale Wijnand ed6b57ff38 Merge pull request #51 from jroper/resolving-debug
Log resolving messages at debug level
2017-03-10 13:48:32 +00:00
eugene yokota 58e83e59fd Merge pull request #74 from dwijnand/build-warnings
Remove build warnings
2017-03-02 16:30:52 +01:00
Dale Wijnand 31a7407640
Remove build warnings
Also collapse into one meta-build sbt file.. imo a better alternative
toa adding a 5th single-line sbt file.
2017-03-02 14:42:36 +01:00
Eugene Yokota c793c33740 fix test 2017-02-15 23:41:23 -05:00
Eugene Yokota caecbbabe7 util 1.0.0-M19 2017-02-15 23:12:01 -05:00
eugene yokota 55a204e82d Merge pull request #73 from sbt/fport/2828
[fport] Apply binary version conflict check to Compile related configs
2017-01-15 23:14:56 -05:00
Eugene Yokota 27397de8cf Adjust to upstream 2017-01-15 22:54:15 -05:00
Eugene Yokota 95a209b033 Apply binary version conflict check to Compile related configs
Fixes #1466 Ref #2786

Even after fixing the mediator issue, we still have spurious binary
version conflict warning that does not account for sandbox
configurations.

This change follows the scalaVersionConfigs work.
2017-01-15 20:55:02 -05:00
Eugene Yokota a809e8744e Bump up Ivy
Fixes #2015
2017-01-15 20:55:02 -05:00
Eugene Yokota c12c9c6187 Apply scalaVersion enforcement to Compile related configs
Fixes #2786. Ref #2634.

sbt 0.13.12 added Ivy mediator that enforces scalaOrganization and
scalaVersion for Scala toolchain artifacts.
This turns out to be a bit too aggressive because Ivy configurations
can be used as an independent dependency graph that does not rely on
the scalaVersion used by Compile configuration. By enforcing
scalaVersion in those graph causes runtime failure.

This change checks if the configuration extends Default, Compile,
Provided, or Optional before enforcing scalaVersion.
2017-01-15 20:52:58 -05:00
eugene yokota c3f5805574 Merge pull request #72 from sbt/fport/2757
[fport] CrossVersion.patch
2017-01-15 20:51:21 -05:00
eugene yokota 604492d677 Merge pull request #71 from sbt/fport/2731
[fport] Forward port "Support wildcard exclusions"
2017-01-15 09:38:39 -05:00
eugene yokota b49ff25933 Merge pull request #70 from sbt/fport/template_resolver
[fport] Adds DefaultLibraryManagement
2017-01-15 09:38:28 -05:00
Miles Sabin f495291edd fport: CrossVersion.patch
CrossVersion.full strips off -bin-suffix.
Ref https://github.com/sbt/sbt/pull/2757
2017-01-15 07:55:40 -05:00
Eugene Yokota 5380b2fe73 Forward port "Support wildcard exclusions"
Ref https://github.com/sbt/sbt/pull/2731
2017-01-15 05:36:39 -05:00
Eugene Yokota 5b752c8522 Adds DefaultLibraryManagement
https://github.com/sbt/sbt/pull/2780/
2017-01-15 03:00:14 -05:00