Actions
Bug #13510
closedProblems with dependency resolution - Molinillo algo
Bug #13510:
Problems with dependency resolution - Molinillo algo
Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-darwin16.3.0]
Description
This is the gemspec defined for the azure ruby gem (https://github.com/Azure/azure-sdk-for-ruby/blob/asm/azure.gemspec#L39)
if RUBY_VERSION < "2.1.0"
s.add_runtime_dependency('nokogiri', '~> 1.6.0')
else
s.add_runtime_dependency('nokogiri', '~> 1.7')
end
Now, with ruby version 2.0.0, I get the following error:
ERROR: Error installing azure:
nokogiri requires Ruby version >= 2.1.0.
which should never happen because for ruby 2.0.0, the nokogiri version of 1.6.8.1 must be installed and not 1.7.1 (which needs Ruby version >= 2.1.0)
On debugging, I ended up with this code: (in resolver.rb)
def resolve
locking_dg = Molinillo::DependencyGraph.new
puts locking_dg
Molinillo::Resolver.new(self, self).resolve(@needed.map { |d| DependencyRequest.new d, nil }, locking_dg).tsort.map(&:payload).compact
rescue Molinillo::VersionConflict => e
conflict = e.conflicts.values.first
raise Gem::DependencyResolutionError, Conflict.new(conflict.requirement_trees.first.first, conflict.existing, conflict.requirement)
ensure
@output.close if defined?(@output) and !debug?
end
The output of this module is:
{
:name=>"azure",
:number=>"0.7.9",
:platform=>"ruby",
:dependencies=>[
["thor", "~> 0.19"],
["systemu", "~> 2.6"],
["nokogiri", "~> 1.7"],
["mime-types", "< 4.0, >= 1"],
["faraday_middleware", "~> 0.10"],
["faraday", "~> 0.9"],
["azure-core", "~> 0.1"],
["addressable", "~> 2.3"]
]
}
I am surprised at this return value. Why is this happening? The Molinillo algorithms reports incorrect version of nokogiri.
Actions