Bug #13510
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
This is the gemspec defined for the azure ruby gem (https://github.com/Azure/azure-sdk-for-ruby/blob/asm/azure.gemspec#L39) ```ruby ` if RUBY_VERSION < "2.1.0" s.add_runtime_dependency('nokogiri', '~> 1.6.0') else s.add_runtime_dependency('nokogiri', '~> 1.7') end ``` 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) ```ruby ` 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: ```ruby ` { :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.