From: shyouhei@... Date: 2017-04-26T08:19:28+00:00 Subject: [ruby-core:80872] [Ruby trunk Bug#13510][Third Party's Issue] Problems with dependency resolution - Molinillo algo Issue #13510 has been updated by shyouhei (Shyouhei Urabe). Status changed from Open to Third Party's Issue 1. go to https://rubygems.org/gems/azure and click download button. 2. `tar xfp azure-0.7.9.gem` 3. look at metadata.gz So the gem is built that way. ---------------------------------------- Bug #13510: Problems with dependency resolution - Molinillo algo https://bugs.ruby-lang.org/issues/13510#change-64479 * Author: sarangan12 (Sarangan Rajamanickam) * Status: Third Party's Issue * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-darwin16.3.0] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- 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. -- https://bugs.ruby-lang.org/ Unsubscribe: