mirror of https://github.com/sbt/sbt.git
Sometimes, for predictability and performance, we may be interested in specifying the concrete resolver that a `ModuleID` should use. This patch achieves this by adding a new field to `UpdateOptions` and then getting this information from the `SbtChainResolver`, that will select the concrete resolver for a given dependency descriptor. Why is this useful? Well, two reasons: * Predictable behaviour. We have the guarantee that an artifact only comes from a concrete resolver. * Resolution speedup. Around 1/3 or 1/2 times faster than normal resolution in a moderate test case scenario. If there is a lot of latency or network connection is poor, speedups will be higher. LOGS: ``` NORMAL RESOLUTION TIME 1790 FASTER RESOLUTION TIME 1054 ``` ``` NORMAL RESOLUTION TIME 2078 FASTER RESOLUTION TIME 1055 ``` Lots of projects can benefit from this option, as well as organizations and companies. This will eventually integrate with the dependency lock file, but can be used independently of it. |
||
|---|---|---|
| librarymanagement | ||
| project | ||
| .gitignore | ||
| .java-version | ||
| .scalafmt.conf | ||
| .travis.yml | ||
| README.md | ||
| build.sbt | ||
| sbt-allsources.sh | ||
README.md
librarymanagement module for sbt
git clone --no-hardlinks --branch 0.13 sbt sbt-modules/librarymanagement
cd sbt-modules/librarymanagement
git filter-branch --index-filter 'git rm --cached -qr -- . && git reset -q $GIT_COMMIT -- ivy util/cross' --prune-empty
git reset --hard
git gc --aggressive
git prune
git cb 1.0