* 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:
ko1 2017-08-04 14:57:31 +00:00
Родитель 92c52f0832
Коммит 41e1670a64
1 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -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