I am running Fedora 12 with Rails 2.3.4 installed. Everything was working fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new test app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
-j
On Tue, 23 Feb 2010 16:47:33 -0500, Jason Guiditta jason.guiditta@gmail.com wrote:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was
working
fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new
test
app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
I've seen this issue occur once or twice, but I'm not all too well versed in Ruby... is ~> even a valid comparison and if so, what does it imply exactly? I'm afraid this should have been '=>', which would require a patch on the rails stack.
-- Jeroen
On Tue, Feb 23, 2010 at 5:17 PM, Jeroen van Meeuwen kanarip@kanarip.comwrote:
On Tue, 23 Feb 2010 16:47:33 -0500, Jason Guiditta jason.guiditta@gmail.com wrote:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was
working
fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new
test
app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
I've seen this issue occur once or twice, but I'm not all too well versed in Ruby... is ~> even a valid comparison and if so, what does it imply exactly? I'm afraid this should have been '=>', which would require a patch on the rails stack.
-- Jeroen
Good call, '=~' is valid, but '~>' does not appear to be, according to the list here: http://www.ruby-doc.org/docs/ProgrammingRuby/language.html#table_18.4
On Tue, Feb 23, 2010 at 05:23:08PM -0500, Jason Guiditta wrote:
On Tue, Feb 23, 2010 at 5:17 PM, Jeroen van Meeuwen kanarip@kanarip.comwrote:
On Tue, 23 Feb 2010 16:47:33 -0500, Jason Guiditta jason.guiditta@gmail.com wrote:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was
working
fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new
test
app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
I've seen this issue occur once or twice, but I'm not all too well versed in Ruby... is ~> even a valid comparison and if so, what does it imply exactly? I'm afraid this should have been '=>', which would require a patch on the rails stack.
-- Jeroen
Good call, '=~' is valid, but '~>' does not appear to be, according to the list here: http://www.ruby-doc.org/docs/ProgrammingRuby/language.html#table_18.4
~> is a valid comparison for ruby gem versions. It is not a language operator.
If you look at the gem specification in one of your gems, you'll see something like "rack ~> 1.0.0". Which means that all rack versions of the form 1.0.X, where X > 0 will satisfy that dependency.
if the dependency was "rack ~> 1.0" then anything of the version 1.X would satisfy the dependency.
When you updated from rack 1.0 to rack 1.1, you had a had some other gem that was dependent on "rack ~> 1.0.0" and when you upgraded to rack 1.1 via rpm, then it uninstalled rack 1.0, which broke that gem dependency.
If you run 'gem dependency' it will print out the dependency tree of your gems and you can see which gem depends on 'rack ~> 1.0.0'
enjoy,
-jeremy
On Tue, Feb 23, 2010 at 7:32 PM, Jeremy Hinegardner jeremy@hinegardner.orgwrote:
On Tue, Feb 23, 2010 at 05:23:08PM -0500, Jason Guiditta wrote:
On Tue, Feb 23, 2010 at 5:17 PM, Jeroen van Meeuwen <kanarip@kanarip.com wrote:
On Tue, 23 Feb 2010 16:47:33 -0500, Jason Guiditta jason.guiditta@gmail.com wrote:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was
working
fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a
new
test
app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in
`report_activate_error':
RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me
know.
Thanks,
I've seen this issue occur once or twice, but I'm not all too well
versed
in Ruby... is ~> even a valid comparison and if so, what does it imply exactly? I'm afraid this should have been '=>', which would require a
patch
on the rails stack.
-- Jeroen
Good call, '=~' is valid, but '~>' does not appear to be, according to
the
list here: http://www.ruby-doc.org/docs/ProgrammingRuby/language.html#table_18.4
~> is a valid comparison for ruby gem versions. It is not a language operator.
If you look at the gem specification in one of your gems, you'll see something like "rack ~> 1.0.0". Which means that all rack versions of the form 1.0.X, where X > 0 will satisfy that dependency.
if the dependency was "rack ~> 1.0" then anything of the version 1.X would satisfy the dependency.
When you updated from rack 1.0 to rack 1.1, you had a had some other gem that was dependent on "rack ~> 1.0.0" and when you upgraded to rack 1.1 via rpm, then it uninstalled rack 1.0, which broke that gem dependency.
If you run 'gem dependency' it will print out the dependency tree of your gems and you can see which gem depends on 'rack ~> 1.0.0'
enjoy,
-jeremy
--
Jeremy Hinegardner jeremy@hinegardner.org
Based on this, the culprit appears to be actionpack:
Gem actionpack-2.3.4 activesupport (= 2.3.4, runtime) rack (~> 1.0.0, runtime)
This appears to be the only one in the list of gem dependencies that has rack ~>1.0.0. I'll look into this more in the morning, but it is definitely in the gemspec, so not sure the best route to fix this on fedora: /usr/lib/ruby/gems/1.8/specifications/actionpack-2.3.4.gemspec s.add_dependency(%q<rack>, ["~> 1.0.0"])
Jason,
Can you send the listo of gems you have installed. I work ruby apps and rails, but i normally compile my ruby version on Fedora, seems to me that you installation update the rack version and eliminate the old one, so now you do not have rack 1.0.0 and you application is looking for that version or you do not have the gems version specified on the enviroment.rb file of you application. For instance on my machine gem list provide this line rack (1.1.0, 1.0.1) that mean i have installed the two version of rack.
hope this help.
On Tue, 2010-02-23 at 23:17 +0100, Jeroen van Meeuwen wrote:
On Tue, 23 Feb 2010 16:47:33 -0500, Jason Guiditta jason.guiditta@gmail.com wrote:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was
working
fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new
test
app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
I've seen this issue occur once or twice, but I'm not all too well versed in Ruby... is ~> even a valid comparison and if so, what does it imply exactly? I'm afraid this should have been '=>', which would require a patch on the rails stack.
-- Jeroen
ruby-sig mailing list ruby-sig@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/ruby-sig
On Tue, 23 Feb 2010 17:29:56 -0500, Alejandro Perez alejandro.perez.torres@gmail.com wrote:
Jason,
Can you send the listo of gems you have installed. I work ruby apps
and rails, but i normally compile my ruby version on Fedora, seems to me that you installation update the rack version and eliminate the old one, so now you do not have rack 1.0.0 and you application is looking for that version or you do not have the gems version specified on the enviroment.rb file of you application. For instance on my machine gem list provide this line rack (1.1.0, 1.0.1) that mean i have installed the two version of rack.
hope this help.
If you use "gem install" and "gem update", yes you can have multiple versions of one gem. However, when using the Fedora provided RPM packages, only one version of the package will be installed, inherently removing the old version of the gem.
-- Jeroen
Hi everyone,
First time I'm posting to this list, so here's hoping I'm not saying anything stupid and this post can be of some actual use to someone.
It seems like the ~> is some special syntax that was developed especially for rubygems (can be seen at http://rubygems.rubyforge.org/svn/trunk/lib/rubygems/requirement.rb ). It implies, quote-unquote:
lambda { |v, r| v = v.release; v >= r && v < r.bump }
where both v and r are Gem::Version objects (the required version and the version present on the system, respectively). What seems to be happening is that v (which is "1.1.0") does not satisfy a requirement of "~> r" (where r = "1.0.1"). I don't have the correct stack available here (my outdated version of rubygems doesn't seem to support the "release" method), but after playing around in irb (use 'require "rubygems"' if you want to reproduce) for a bit, what I think happens here is this:
- v = v.release (=> v is now "1.1.0", since this was not a prerelease, this returns itself) - therefore, "v >= r" is the same as "1.1.0 >= 1.0.1" (this would be likely to succeed) - and "v < r.bump" is the same as Gem::Version.new("1.1.0") >= Gem::Version.new("1.0.1").bump
Now the last line seems to be where things go haywire. "bump"ing 1.0.1 results in 1.1 and therefore, this line says "1.1.0 < 1.1"
The question then is, why is this gem specced like this? It seems that "~>" means "some version from the same major.minor range (teeny doesn't matter) and not higher than that." Altering the gemspec may help but may, of course, hurt as well. Some information on why the gem has these requirements would be very useful in determining the approach to this problem.
I hope this information can be useful to someone.
Regards, Rene van den Berg
On Wed, Feb 24, 2010 at 12:14 AM, Jeroen van Meeuwen kanarip@kanarip.com wrote:
On Tue, 23 Feb 2010 17:29:56 -0500, Alejandro Perez alejandro.perez.torres@gmail.com wrote:
Jason,
Can you send the listo of gems you have installed. I work ruby apps
and rails, but i normally compile my ruby version on Fedora, seems to me that you installation update the rack version and eliminate the old one, so now you do not have rack 1.0.0 and you application is looking for that version or you do not have the gems version specified on the enviroment.rb file of you application. For instance on my machine gem list provide this line rack (1.1.0, 1.0.1) that mean i have installed the two version of rack.
hope this help.
If you use "gem install" and "gem update", yes you can have multiple versions of one gem. However, when using the Fedora provided RPM packages, only one version of the package will be installed, inherently removing the old version of the gem.
-- Jeroen
ruby-sig mailing list ruby-sig@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/ruby-sig
Jason Guiditta wrote, at 02/24/2010 06:47 AM +9:00:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was working fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new test app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
-j
Well, as I already posted on http://lists.fedoraproject.org/pipermail/ruby-sig/2010-February/000055.html , rack 1.1.0 is not compatible with rails 2.3.x. I added some workarounds on rawhide rails, however for F-12 we may have to consider to downgrade rack to 1.0.0.
Regards, Mamoru
Mamoru Tasaka wrote, at 02/24/2010 11:06 AM +9:00:
Jason Guiditta wrote, at 02/24/2010 06:47 AM +9:00:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was working fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new test app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
-j
Well, as I already posted on http://lists.fedoraproject.org/pipermail/ruby-sig/2010-February/000055.html , rack 1.1.0 is not compatible with rails 2.3.x. I added some workarounds on rawhide rails, however for F-12 we may have to consider to downgrade rack to 1.0.0.
Well, actually workaround is in rubygem-actionpack, which rubygem-rails depends on. Also please check https://bugzilla.redhat.com/show_bug.cgi?id=552972 (already marked as "CLOSED RAWHIDE")
Regards, Mamoru
That is great that you have a work around for rawhide, but since I am running f12, I am more interested at the moment in the rack version downgrade there. Should I just file a BZ against the Rack gem, or have you already spoken to the maintainer? FYI, just doing a little more poking now, there are others outside fedora land who have hit this. I have links below for some of the discussion (as recent as 2 days ago), but the gist is that rails does not want to guarantee it runs on >1.0.x because rack could introduce api breakage. This means we can not expect rails to be changing their gemspec to accommodate a wider range of versions, and a ticket has been filed against rubygems itself. Also, there is talk of rails using bundler to get around this issue, which, from the little I know about it, screams maven (and therefore makes me think there will be even more issues coming up for rails in fedora). For instance, if you try to run a rails app in thin (which is now in fedora), and it loads rack 1.1 (it will load the latest you have installed), then rails will die because it tries to load 1.0.1 after 1.1 is already loaded.
https://rails.lighthouseapp.com/projects/8994/tickets/3685-actionpack-235-ge...
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4031-hav...
rails position, explained by core commiter, yehuda katz: http://groups.google.com/group/rubyonrails-core/browse_thread/thread/873d785...
rubygems ticket: http://rubyforge.org/tracker/index.php?func=detail&aid=27867&group_i...
On Tue, Feb 23, 2010 at 9:41 PM, Mamoru Tasaka mtasaka@ioa.s.u-tokyo.ac.jpwrote:
Mamoru Tasaka wrote, at 02/24/2010 11:06 AM +9:00:
Jason Guiditta wrote, at 02/24/2010 06:47 AM +9:00:
I am running Fedora 12 with Rails 2.3.4 installed. Everything was working fine, then last night I got an update from yum for Rack 1.1. After installing that, my working rails apps failed to load. Creating a new test app yielded: /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError)
Has anyone else hit this issue? If more detail is needed, let me know. Thanks,
-j
Well, as I already posted on
http://lists.fedoraproject.org/pipermail/ruby-sig/2010-February/000055.html,
rack 1.1.0 is not compatible with rails 2.3.x. I added some workarounds on rawhide rails, however for F-12 we may have
to
consider to downgrade rack to 1.0.0.
Well, actually workaround is in rubygem-actionpack, which rubygem-rails depends on. Also please check https://bugzilla.redhat.com/show_bug.cgi?id=552972 (already marked as "CLOSED RAWHIDE")
Regards, Mamoru _______________________________________________ ruby-sig mailing list ruby-sig@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/ruby-sig
Jason Guiditta wrote, at 02/24/2010 11:39 PM +9:00:
That is great that you have a work around for rawhide, but since I am running f12, I am more interested at the moment in the rack version downgrade there. Should I just file a BZ against the Rack gem, or have you already spoken to the maintainer?
Filing a bug against rubygem-rack is preferable so that we can keep track of this issue.
FYI, just doing a little more poking now, there are others outside fedora land who have hit this. I have links below for some of the discussion (as recent as 2 days ago), but the gist is that rails does not want to guarantee it runs on >1.0.x because rack could introduce api breakage.
Well, actually API of rack really changed between 1.0.0 and 1.1.0 and for rubygem-actionpack just changing the dependency on rack from ~> to >= does _not_ fix this issue (as I posted in bug 552972, after just changing ~> to >= we will see many test failures on actionpack)
By the way you can see my workaround patch for actionpack 2.3.4 on: http://cvs.fedoraproject.org/viewvc/rpms/rubygem-actionpack/devel/rubygem-ac...
This means we can not expect rails to be changing their gemspec to accommodate a wider range of versions, and a ticket has been filed against rubygems itself.
I don't think this is rubygem's problem. It is just that rack 1.1.x and actionpack 2.3.x are not compatible.
Also, there is talk of rails using bundler to get around this issue, which, from the little I know about it, screams maven (and therefore makes me think there will be even more issues coming up for rails in fedora). For instance, if you try to run a rails app in thin (which is now in fedora), and it loads rack 1.1 (it will load the latest you have installed), then rails will die because it tries to load 1.0.1 after 1.1 is already loaded.
For me this is saying only that rack 1.1 should not be installed when using rails 2.3.x regardless of whether thin is to be used or not, or if rack 1.1 is definitely needed actionpack should be patched.
https://rails.lighthouseapp.com/projects/8994/tickets/3685-actionpack-235-ge...
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4031-hav...
rails position, explained by core commiter, yehuda katz: http://groups.google.com/group/rubyonrails-core/browse_thread/thread/873d785...
rubygems ticket: http://rubyforge.org/tracker/index.php?func=detail&aid=27867&group_i... http://rubyforge.org/tracker/index.php?func=detail&aid=27867&group_id=126&atid=575
On Tue, Feb 23, 2010 at 9:41 PM, Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp mailto:mtasaka@ioa.s.u-tokyo.ac.jp> wrote:
Mamoru Tasaka wrote, at 02/24/2010 11:06 AM +9:00: > Jason Guiditta wrote, at 02/24/2010 06:47 AM +9:00: >> I am running Fedora 12 with Rails 2.3.4 installed. Everything was >> working fine, then last night I got an update from yum for Rack 1.1. >> After installing that, my working rails apps failed to load. Creating >> a new test app yielded: >> /usr/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': >> RubyGem version error: rack(1.1.0 not ~> 1.0.0) (Gem::LoadError) >> >> Has anyone else hit this issue? If more detail is needed, let me know. >> Thanks, >> >> -j > > Well, as I already posted on > http://lists.fedoraproject.org/pipermail/ruby-sig/2010-February/000055.html , > rack 1.1.0 is not compatible with rails 2.3.x. > I added some workarounds on rawhide rails, however for F-12 we may have to > consider to downgrade rack to 1.0.0. Well, actually workaround is in rubygem-actionpack, which rubygem-rails depends on. Also please check https://bugzilla.redhat.com/show_bug.cgi?id=552972 (already marked as "CLOSED RAWHIDE") Regards, Mamoru
Mamoru
What was the resolution of the rubygem-rack issue? I'd really like the new version of rack because then possibly we could get sinatra into EPEL5.
ruby-sig@lists.fedoraproject.org