Azure / azure-ruby-asm-core

Azure Ruby SDK Service Management Core HTTP
6 stars 32 forks source link

The pin to nokogiri ~> 1.6 breaks with ruby 2.4+ #46

Closed binamov closed 7 years ago

binamov commented 7 years ago

ChefDK 2.x ships with ruby 2.4.1+ while these azure gems are dependent on ruby < 2.4 due to the nokogiri version pin.

This makes doing work with Azure in the Chef developer ecosystem quite hard.

binamov commented 7 years ago

The commit message https://github.com/Azure/azure-ruby-asm-core/commit/536c3fc21cc48c292959cc10a9e5551e165aa0ed says Changed 'nokogiri' to runtime dependency with version >= 1.6 and seems to have the right intent. Was the ~> 1.6 a typo?

devigned commented 7 years ago

@sarangan12 please give this a look when you have a sec. It seems that this is a blocking issue.

Thank you for the head up, @binamov!

/cc @echuvyrov

devigned commented 7 years ago

@binamov, it seems like the ~> 1.6 pessimistic operator should work for Nokogiri 1.8 and anything less than 2.0. Is this not what you are experiencing?

sarangan12 commented 7 years ago

@binamov,

Adding the following details to provide more context to this issue:

  1. I am assuming Chef uses the azure_sdk gem which has a dependency on azure_storage gem.

  2. The azure_storage gem has a dependency on azure_core gem.

  3. The azure_core gem has a dependency on nokogiri.

This dependency says:

    s.add_runtime_dependency('nokogiri',                '~> 1.6')

Per your first comment on this issue, when you install Chef SDK with Ruby 2.4.1, this dependency should be triggered and nokogiri must be installed.

Now, we expect nokogiri 1.8 must be installed and it is compatible with ruby 2.4.1. Is this happening?

If not, could you provide more information as what ruby version you are using and what exactly is the error message?

binamov commented 7 years ago

@sarangan yeah i had a pin to azure-storage 0.11.5 which was pinned to nokogiri ~> 1.6.0. Updating my pin to a newer release of azure-storage fixes the issue. Apologies for the false alarm.