#80 ✓resolved
Eugueny Kontsevoy

RedCloth 4.1.1 does not work with gem version 1.2.0

Reported by Eugueny Kontsevoy | November 2nd, 2008 @ 07:23 PM

The latest update to RedCloth breaks it on OSX. I am running Ruby 1.8.6 patchlevel 114, gems 1.2.0.

From the command line:

sudo gem update Building native extensions. This could take a while... Successfully installed RedCloth-4.1.0 1 gem installed Installing ri documentation for RedCloth-4.1.0...

No definition for redcloth_to Installing RDoc documentation for RedCloth-4.1.0...

No definition for redcloth_to

Now lets fire up irb:

require 'rubygems' gem 'RedCloth' Gem::LoadError: Could not find RubyGem echoe (>= 0)

from /Library/Ruby/Site/1.8/rubygems.rb:578:in `report_activate_error'
from /Library/Ruby/Site/1.8/rubygems.rb:134:in `activate'
from /Library/Ruby/Site/1.8/rubygems.rb:158:in `activate'
from /Library/Ruby/Site/1.8/rubygems.rb:157:in `each'
from /Library/Ruby/Site/1.8/rubygems.rb:157:in `activate'
from /Library/Ruby/Site/1.8/rubygems.rb:49:in `gem'
from (irb):4

NOTES: - On Ubuntu everything works fine. - My apologies for not digging deeper into this due to the lack of time - I just rolled back 4.0.4

Comments and changes to this ticket

  • Steve Purcell

    Steve Purcell November 3rd, 2008 @ 04:49 PM

    Works for me on OSX, but I saw some odd things recently that turned out to be an outdated version of rubygems: the "echoe" message looks familiar. Check you have rubygems 1.3.1.

  • Eugueny Kontsevoy

    Eugueny Kontsevoy November 3rd, 2008 @ 06:54 PM

    Hm... you are right: on Linux my gems are 1.3.1 but on OSX sudo gem update --system reports that everything is up to date... (and stays on 1.2)

    I'll see how I can force it to upgrade.

  • Tony

    Tony November 4th, 2008 @ 01:54 PM

    I'm having the same problem.

    I'm on Leopard and my rubygems is update to 1.3.1, but still getting this:

    require 'RedCloth' Gem::LoadError: Could not find RubyGem echoe (>= 0)

    from /Library/Ruby/Site/1.8/rubygems.rb:578:in `report_activate_error'
    from /Library/Ruby/Site/1.8/rubygems.rb:134:in `activate'
    from /Library/Ruby/Site/1.8/rubygems.rb:158:in `activate'
    from /Library/Ruby/Site/1.8/rubygems.rb:157:in `each'
    from /Library/Ruby/Site/1.8/rubygems.rb:157:in `activate'
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
    from (irb):1
    from :0
    
    
  • Eugueny Kontsevoy

    Eugueny Kontsevoy November 4th, 2008 @ 02:05 PM

    Upgrade your gems to 1.3.1. On OSX it won't work and you have to do the following:gem install rubygems_update then run setup.rb that comes with in.

    On Tue, Nov 4, 2008 at 12:54 PM, Lighthouse support@lighthouseapp.comwrote:

  • Steve Purcell

    Steve Purcell November 4th, 2008 @ 02:16 PM

    Although it works for me, I do have the 'echoe' gem installed.

    
    % ruby -rrubygems -e 'require "RedCloth"'                                                 % ruby --version                                                                          ruby 1.8.6 (2008-03-03 patchlevel 114) [i686-darwin9.2.2]
    % gem --version                                                                           1.3.1
    % gem list echoe                                                                          ~ *** LOCAL GEMS ***
    
    echoe (3.0.2, 3.0.1)
    

    But even if I uninstall it, everything's fine, even if I reinstall RedCloth with 'echoe' missing:

    
    % sudo gem uninstall echoe
    Select gem to uninstall:
     1. echoe-3.0.1
     2. echoe-3.0.2
     3. All versions
    > 3
    Successfully uninstalled echoe-3.0.1
    Successfully uninstalled echoe-3.0.2
    % ruby -rrubygems -e 'require "RedCloth"'
    % sudo gem install RedCloth
    Building native extensions.  This could take a while...
    Successfully installed RedCloth-4.1.0
    1 gem installed
    

    I believe the reason it fails for you, Tony, is that your Rubygems is still somehow not up to date. Versions older than 1.3.0 can't distinguish between development and runtime gem dependencies, and 'echoe' is a development dependency of RedCloth. In determining which gem version you have, don't rely on the output of "gem list" -- instead, trust the output of "gem --version".

    When I had a similar problem, I was using the rubygems package from macports, and it did not properly self-update -- all the 1.3.x rubygems-update gems were listed as installed, but the "gem" command itself somehow was failing to pick them up, and "--version" was printing 1.2.0.

    Hope that helps. Whatever the case, this isn't a RedCloth issue, so Jason can go ahead and close the ticket, in my view.

  • Tony

    Tony November 4th, 2008 @ 02:25 PM

    It was a problem with rubygems, needed to run setup.rb!

    Thanks for all the help.

  • John Small

    John Small November 11th, 2008 @ 07:27 AM

    It doesn't work on Ubuntu 8.04 (32 or 64 bit) with gem version 1.3.0 either.

    Version 4.0.3 of RedCloth does work though. So something must have changed for it to fall over.

    Gem version 1.3.0 will allow "require 'redcloth' " but not "require 'RedCloth'". So Rails when set up with "require 'RedCloth'" in environment.rb won't load, but it will with "require 'redcloth'".

    Though I see that RedCloth.rb just points to redcloth.rb anyway. What is it with the caps? Everyone else uses all lowercase in their gem filenames and we don't get this problem

    If it's a gem version issue then please add the comment "you need to have ruby gems 1.3.x to use RedCloth 4.1.x" to the installation instructions. And "make sure you use require 'redcloth' in environment.rb in Rails and not require 'RedCloth' like earlier versions"

    Otherwise people like me, trying to do a new install, can waste ages trying to work out wtf is going on.

  • Jason Garber

    Jason Garber November 11th, 2008 @ 08:31 AM

    • Milestone cleared.
    • State changed from “new” to “open”
    • Tag changed from 4.1.0, osx, redcloth to 4.1.0, echoe, gem, osx

    I want to get it working properly for everybody so that I don't have to leave clues like "if you have version X, you have to do this, but on version Y...."

    What I'm understanding is that RubyGems 1.3.0 doesn't recognize that echoe is a development gem and isn't required for non-development installation.

  • John Small

    John Small November 11th, 2008 @ 09:00 AM

    • Tag changed from 4.1.0, echoe, gem, osx to 4.1.0, osx, redcloth

    Jason

    I had everything working fine on my development machine; Rails 2.1.0, gem 1.2, RedCloth 4.0.3. Then I pushed a deployment out to a VPS slice running Ubuntu 8.04 64 bit, with Rails 2.1, gem 1.3.0. I installed the latest RedCloth, 4.1.0 and everything fell to pieces.

    My initial problem was the issue with the capitalization in the require statement. In my development machine it had to be RedCloth, which didn't work on the deployment machine. (I've tried updating my gem version but the update process falls over - that's a separate issue).

    The earlier gem version 1.2 will choke on "require 'redcloth' " with the echoe error So it has to be "require 'RedCloth' ", the new gem version will fall over with "require 'RedCloth' ", so it has to be "require 'redcloth'". Though version 4.0.3 of RedCloth will accept "require 'RedCloth'" using both gem versions 1.3 and 1.2.

    Gem version 1.2 doesn't recognize that echoe is a development gem which is why you must use "require 'RedCloth'". Gem version 1.3 does recognise echoe as a development gem, but barfs on the camel cased require, which is why you must use "require 'redcloth'".

    So if you're like me, stuck with a gem version 1.2 on a development machine, but loading up gem version 1.3 on a production machine, you can only use RedCloth 4.0.3.

    To try out these different variants you could use Amazon EC2. That's a cheap and easy way to set up new installations, try things out and throw them away when you're finished. If you've not used it before, email me and I'll send you some links to get you started.

    Cheers

    John Small

  • Roger

    Roger November 14th, 2008 @ 07:16 PM

    yep if you get this error you must do gem install RedCloth again [ after upgrading gems]. this for me in win32/mingw

  • Brent Greeff

    Brent Greeff November 16th, 2008 @ 03:57 PM

    My problem seems to be slightly different but the output is very close.

    "No definition for redcloth_to"

    sudo gem install RedCloth Successfully installed RedCloth-4.1.0 1 gem installed Installing ri documentation for RedCloth-4.1.0... No definition for redcloth_to Installing RDoc documentation for RedCloth-4.1.0... No definition for redcloth_to

    gem install RedCloth 4.0.3/4.0.4 produces: ERROR: could not find gem 4.0.3 locally or in a repository

    gem --version shows 1.3.1 I was on 1.3.0 and have tried all the ruby-gem updating posts so far and run setup.rb although it was not necessary?

    I also installed the echoe gem but I don't think its related.

  • Jason Garber

    Jason Garber November 18th, 2008 @ 02:22 PM

    Okay, folks, we've got three issues reported in this one ticket. Let me try to sort them out. 1. No definition for redcloth_to (Eugueny, Brent) 2. Could not find RubyGem 'echoe' (Eugueny) 3. Capitalization varies by gem version (John)

    1 - The lack of redcloth_to definition was an rdoc problem which I've fixed in trunk.

    2 - Sorry that adding echoe caused such problems! It billed itself as better than hoe because it didn't make itself a runtime dependency, but a bug in RubyGems 1.2.0 (which I was using) did make it a runtime dependency. It is fixed in trunk.

    3 - I'm investigating this, John. I'll copy your posts to a new ticket, so be sure to watch that ticket (click the "Watch this ticket?" button).

  • Jason Garber

    Jason Garber November 18th, 2008 @ 02:24 PM

    • State changed from “open” to “resolved”

    John, I moved your issue to #88.

  • Jason Heiss

    Jason Heiss January 6th, 2009 @ 10:36 AM

    FWIW, I still have this problem with version 4.1.1 of the RedCloth gem, which looks like it includes the fix you committed to git.

    jheiss@s1:~> cat /etc/redhat-release Red Hat Enterprise Linux Server release 5.2 (Tikanga)

    jheiss@s1:~> gem --version 1.2.0

    jheiss@s1:~> gem list RedCloth

    LOCAL GEMS

    RedCloth (4.1.1)

    jheiss@s1:~> ruby -rrubygems -e 'require "RedCloth"' /usr/lib/ruby/site_ruby/1.8/rubygems.rb:578:in report_activate_error': Could not find RubyGem echoe (>= 0) (Gem::LoadError)

    from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:134:in `activate'
    from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:158:in `activate'
    from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `each'
    from /usr/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `activate'
    from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from -e:1
    
    
  • Roger

    Roger January 6th, 2009 @ 11:22 AM

    try upgrading your version of rubygems [you may need to uninstall the previous versions of redcloth, too, or something like that]

  • Jason Heiss

    Jason Heiss January 6th, 2009 @ 12:47 PM

    • Tag changed from 4.1.0, osx, redcloth to 4.1.0, 4.1.1, redcloth

    Based on the previous comments I assume upgrading gems would fix the problem, but as Jason Garber indicated in comment 9 I'd rather not have to give my users a complicated set of instructions regarding upgrading gems if it can be avoided.

    I use RedCloth in nVentory so users are downloading and running the app on their systems. I actually found this problem due a report from a user.

  • Jason Garber

    Jason Garber January 13th, 2009 @ 09:42 AM

    • Tag changed from 4.1.0, 4.1.1, redcloth to 4.1.0, 4.1.1, gem, redcloth
    • State changed from “resolved” to “open”
    • Title changed from “RedCloth 4.1.0 does not work on OSX” to “RedCloth 4.1.1 does not work with gem version 1.2.0”

    Still the echoe problem. I need to investigate some more.

  • Jason Garber

    Jason Garber January 23rd, 2009 @ 05:00 PM

    • Tag changed from 4.1.0, 4.1.1, gem, redcloth to 4.1.1, gem, redcloth

    I installed gem 1.2.0 on a virtual machine and made sure echoe wasn't installed. Tested whether the echoe dependency was runtime or development remotely:

    
    $ gem specification RedCloth -r | head -n 20
    --- !ruby/object:Gem::Specification 
    name: RedCloth
    version: !ruby/object:Gem::Version 
      version: 4.1.1
    platform: ruby
    authors: 
    - Jason Garber
    autorequire: 
    bindir: bin
    cert_chain: []
    
    date: 2008-11-19 00:00:00 -05:00
    default_executable: 
    dependencies: 
    - !ruby/object:Gem::Dependency 
      name: echoe
      type: :development
      version_requirement: 
      version_requirements: !ruby/object:Gem::Requirement 
        requirements: 
    

    Okay, so how 'bout when I install it under RubyGems 1.2.0? I install it and do gem specification RedCloth and sure enough, it's a runtime dependency.

    Am I doing something wrong or was this just a bug in RubyGems 1.2.0?

  • Roger

    Roger January 23rd, 2009 @ 05:38 PM

    I think it was just a 1.2.0 thing

  • Jason Garber

    Jason Garber February 18th, 2009 @ 04:09 PM

    • State changed from “open” to “resolved”

    (from [48085584e5e33cdf0d2e3537a4358e5826d9aac1]) Remove echoe from development dependencies [#80 state:resolved] http://github.com/jgarber/redclo...

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

RedCloth is a Ruby library for converting Textile into HTML

Shared Ticket Bins

Referenced by

Pages