Moon

The Push to Ruby 1.9

2009 / 02 / 06 — 1.9.x, bdd, debian, gist, github, install, isitruby19, rspec, ruby, ruby19, rubygems, script, shell, tdd, test, unit

So you probably heard that Ruby 1.9.1 has been released. That's right, no more testing release candidates, Ruby 1.9.1 has been marked stable. The 1.9.x series of Ruby comes with improved encoding support, includes RubyGems by default and has merged with YARV.

Including RubyGems was a good move, since it's always been a pain dealing with out-dated Debian packages of RubyGems, setting RUBYOPT or having gem update --system conflict with the customized Debian version of RubyGems. The inclusion of YARV, which implements a byte-code VM for Ruby, has brought considerable performance increases to Ruby. I've been having fun using the 1.9.1 release candidates to brute-force Project Euler problems.

So here's the catch, most of the RubyGems for Ruby do not work properly with the 1.9.x series and it's minor API changes. This poses a good dev challenge to the Ruby community: test, fix, fork or rewrite the offending RubyGems.

Some would say this will take some time, slowing the adoption of 1.9.1 or even stunting the Ruby community. But we came prepared, we got TDD, BDD, Unit::Test, Rspec and github.com.

Also, a handy site just popped up today, Is it Ruby 1.9: Community-powered gem compatibility for Ruby 1.9. People can search for RubyGems and add testing information to them.

To help with the push to Ruby 1.9.1, I threw together a shell script that installs Ruby 1.9.1 alongside 1.8.x. It's hosted on gist.github.com, so feel free to fork it.

#!/bin/sh
 
mkdir -p /usr/local/src && cd /usr/local/src
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.bz2
tar -xjvf ruby-1.9.1-p0.tar.bz2
cd ruby-1.9.1-p0
./configure --prefix=/usr --program-suffix=19 --enable-shared
make && make install

I'll be testing the RubyGems I use the most and my own projects. So far I've found that Contextify, Parameters, GScraper and Spidr all work with Ruby 1.9.1.

Comments

blog comments powered by Disqus