summaryrefslogtreecommitdiff
path: root/lib/bundler/resolver.rb
diff options
context:
space:
mode:
authorGrey Baker <greysteil@gmail.com>2017-10-27 00:32:51 +0100
committerGrey Baker <greysteil@gmail.com>2017-10-27 07:15:18 +0100
commit79fb3f024670e814cb0fd76022ec32132e76dd5d (patch)
tree6c240b91763777fb4263269fea5716ecab83af2f /lib/bundler/resolver.rb
parentebeb787c63e08e15fa8802f8e9752f5b400a404f (diff)
downloadbundler-79fb3f024670e814cb0fd76022ec32132e76dd5d.tar.gz
Prioritise explicitly requested gems in dependency resolution sort order
Diffstat (limited to 'lib/bundler/resolver.rb')
-rw-r--r--lib/bundler/resolver.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb
index 965a1d55ad..f75c669534 100644
--- a/lib/bundler/resolver.rb
+++ b/lib/bundler/resolver.rb
@@ -205,12 +205,14 @@ module Bundler
dependencies.sort_by do |dependency|
dependency.all_sources = relevant_sources_for_vertex(activated.vertex_named(dependency.name))
name = name_for(dependency)
+ vertex = activated.vertex_named(name)
[
@base_dg.vertex_named(name) ? 0 : 1,
- activated.vertex_named(name).payload ? 0 : 1,
+ vertex.payload ? 0 : 1,
+ vertex.root? ? 0 : 1,
amount_constrained(dependency),
conflicts[name] ? 0 : 1,
- activated.vertex_named(name).payload ? 0 : search_for(dependency).count,
+ vertex.payload ? 0 : search_for(dependency).count,
self.class.platform_sort_key(dependency.__platform),
]
end