Project

General

Profile

Actions

Bug #13510

closed

Problems with dependency resolution - Molinillo algo

Added by sarangan12 (Sarangan Rajamanickam) almost 7 years ago. Updated almost 7 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-darwin16.3.0]
[ruby-core:80871]

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.

Updated by shyouhei (Shyouhei Urabe) almost 7 years ago

  • 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.

Actions #2

Updated by sarangan12 (Sarangan Rajamanickam) almost 7 years ago

  • Status changed from Third Party's Issue to Closed
Actions #3

Updated by usa (Usaku NAKAMURA) almost 7 years ago

  • Status changed from Closed to Third Party's Issue

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago

  • Description updated (diff)

The current rubygems does not provide support for multiple versions, or branches at installation time.
All dependencies are resolved at the gem building time, and gem files contain static values only.
Rubygems needs improvements.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0