technicalpickles / jeweler

Opinionated tool for creating and managing Rubygem projects
MIT License
1.48k stars 169 forks source link

Nokogiri version in gemspec conflicts with that required by latest github_api #239

Closed nickurban closed 11 years ago

nickurban commented 11 years ago

The latest github_api requires nokogiri 1.6. The Jewler Gemfile conditionally requires nokogiri 1.5.10 for ruby < 1.9.2, but the gemspec explicitly requires 1.5.10 (presumably because it was generated on a system with ruby < 1.9.2) even though my system is running ruby 2.0. Hence I get a version conflict.

spiderpug commented 11 years ago

Same here, running ruby 1.9.3

Unable to resolve dependencies: jeweler requires nokogiri (= 1.5.10); github_api requires nokogiri (~> 1.6.0)

technicalpickles commented 11 years ago

@muratayusuke looks like this was introduced in eeccb1a04a497ee2c6cff544e5fb311faa04ffdc

Not sure how we can fix this, without dropping nokogiri entirely, because gemspecs themself don't allow conditional ruby version dependencies.

One possibility would be to release one more 1.x of jeweler that has 1.8 support, then cut a 2.0 release that drops 1.8 support and uses the newer correct nokogiri.

muratayusuke commented 11 years ago

@nickurban @spiderpug I couldn't reproduce this error... Would you show me the commands you tried?

I think it's time to make 1.8 unsupported (he has retired officially just a few days ago), but if other gems work fine, we may be able to use older github_api.

spiderpug commented 11 years ago
➜  ~  rbenv versions
  system
  1.8.7-p358
* 1.9.3-p374 (set by /Users/spiderpug/.rbenv/version)
  2.0.0-p0
➜  ~  ruby -v
ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.2.0]
➜  ~  gem -v
1.8.23
➜  ~  gem install jeweler
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: jeweler requires nokogiri (= 1.5.10); github_api requires nokogiri (~> 1.6.0)

The problem is the gemspec https://github.com/technicalpickles/jeweler/commit/5442abfd47109b69a773e85de7e2cae9ad22254b#L0R194 i think. It clearly states that it requires nokogiri 1.5.10 and github_api >= 0.8.1. But github_api requires nokogiri (~> 1.6.0)

gem install jeweler -v 1.8.4 works flawlessly.

nickurban commented 11 years ago

I checked out jeweler and was messing with it and a bit later I ran 'jeweler' again to check the error and it mysteriously worked. I think that may have been due to me running bundle install inside the jeweler project directory, although I'm not sure how that would have fixed it. For a temporary solution, you may want to try playing around with that.

muratayusuke commented 11 years ago

I released new version (1.8.6) with old github_api. I think there is no problem for now, but if we want to use github_api >= 0.10.2, we'll have to drop ruby-1.8.7 support.

spiderpug commented 11 years ago

Thank you! 1.8.6 is installing without any problems.

anatol commented 10 years ago

I agree with those that we should drop ruby1.8 support and move forward. ruby1.8 is unsupported and should not be used in production. there are 1.9 and 2.0 that are production ready and 2.1 is just around the corner.

It is better to drop ruby1.8 and use later version of nokogiri that introduces new features and improves speed.