зеркало из https://github.com/github/ruby.git
use stable sort.
* lib/rubygems/resolver.rb (sort_dependencies): use stable sort. TestGemRequestSetLockfile#test_to_s_gem_dependency_non_default fails because this method return unstable results. Note that Enumerable#sort_by is unstable. I'm not sure the "stable" nature is required for RubyGems. The fact is that using stable sort, the test passed on mswin64+VS2017 where the sort results was reverse (unstable) order. Also using `-i` instead of `i` (it means forcing unstable sort) this test fails on other platform where the test successed before. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
92c52f0832
Коммит
41e1670a64
|
@ -254,13 +254,14 @@ class Gem::Resolver
|
||||||
end
|
end
|
||||||
|
|
||||||
def sort_dependencies(dependencies, activated, conflicts)
|
def sort_dependencies(dependencies, activated, conflicts)
|
||||||
dependencies.sort_by do |dependency|
|
dependencies.sort_by.with_index do |dependency, i|
|
||||||
name = name_for(dependency)
|
name = name_for(dependency)
|
||||||
[
|
[
|
||||||
activated.vertex_named(name).payload ? 0 : 1,
|
activated.vertex_named(name).payload ? 0 : 1,
|
||||||
amount_constrained(dependency),
|
amount_constrained(dependency),
|
||||||
conflicts[name] ? 0 : 1,
|
conflicts[name] ? 0 : 1,
|
||||||
activated.vertex_named(name).payload ? 0 : search_for(dependency).count,
|
activated.vertex_named(name).payload ? 0 : search_for(dependency).count,
|
||||||
|
i # for stable sort
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Загрузка…
Ссылка в новой задаче