The latest RubyGems release fixes the problems (see Eric Hodel's blog post) with Ruby 1.9.2 and makes it safe to upgrade. The official RubyGems version 1.5 now contains all the changes that were made to Ruby 1.9's distribution of RubyGems. Ryan Davis from RubyGems writes:
We did what we could to selectively merge the ~1700 lines of diff between rubygems v1.3.7 and ruby_1_9's rubygems 1.3.7+ back into our master branch.
He points out that in the future, the version distributed with Ruby 1.9 should exactly match a released version and not diverge from the official code base to avoid such trouble.
Ruby's large number of implementations are generally considered a good thing, but for the developer of a Gem, testing on all the combinations of Ruby implementations, versions, and platforms becomes nearly impossible.
Gem Testers is a new project by Josiah Kiehl and Erik Hollensbe that allows users to easily execute the tests for a Gem and report the outcome to a central database on gem-testers.org. From the announcement:
rubygems-test is a Rubygems plugin which automatically runs the test suite of a specified gem on install. The output of the test suite is then collected, along with machine configuration details (Ruby version, machine architecture, etc) and posted to gem-testers.org.
Gem-testers.org is a central repository for test data. Test results are organized primarily by Ruby version and operating system. This allows gem users to see quickly if a given gem version is expected to work for their particular machine configuration. Gem Testers also provides RSS feeds and JSON responders in case an application needs to read in test results for other applications that might need to slurp in the data.
For example, looking at the compatibility matrix of the hoe Gem, we can see that it works with Ruby 1.8.7 and 1.9.2 on OS X and Linux, and that one attempt with Ruby 1.9.1 failed.
In order for Gem Testers to be successful, it is of course necessary that as many Gem creators and users as possible participate and share their results. So please take the time to install the rubygems-test plugin:
gem install rubygems-test