Multiple Ruby versions for testing


#1

Hi list,

I’m trying to test a gem (managed with Hoe) on my Ubuntu machine. The
Ruby
from the Ubuntu repos is 1.8.7, but the last version I tested this gem
on
was 1.8.6, where all the tests pass. Now some of the tests are failing
so I
need to test across multiple versions at once. Can someone point me to a
decent walk-through on install and running tests against several
versions of
Ruby?


#2

Dr. Nic wrote something about this recently.

http://drnicwilliams.com/2008/12/11/future-proofing-your-ruby-code/

Regards,
Craig


#3

2008/12/12 Craig D. removed_email_address@domain.invalid

Dr. Nic wrote something about this recently.

http://drnicwilliams.com/2008/12/11/future-proofing-your-ruby-code/

Regards,
Craig

Thanks for that. On first running the “multiruby -e ‘p 1+1’” command, it
downloads 1.8.7 and 1.9.0 then starts building them, but hangs when it
gets
to “creating Makefile”. Anybody else get this and know how to fix it? I
have
build-essential and ruby1.8-dev installed and the build doesn’t report
errors, it just hangs.


#4

On Dec 12, 2008, at 11:14 , James C. wrote:

to “creating Makefile”. Anybody else get this and know how to fix
it? I have
build-essential and ruby1.8-dev installed and the build doesn’t report
errors, it just hangs.

ruby 1.9.0 has a makefile bug that prevents parallel builds from
working correctly. You can either install one of the latest 1.9
releases [1], go from trunk, or cd into the build dir and type make
to bypass the bug.

[1] http://drnicwilliams.com/2008/12/11/future-proofing-your-ruby-code/


#5

Can someone point me to a decent walk-through on install
and running tests against several versions of Ruby?

I wouldn’t recommending “my” way of doing it but I compile Ruby
into versioned directories (from source), i.e. under
/Programs/Ruby/1.9.0 for instance. A symlink will point to the version
to use, to switch versions one just adjusts the symlink (and
“resymlinks” in case one follows something akin to
http://www.gobolinux.org/ )

However, I think pretty all Linux distributions do not enjoy this idea
and instead scatter files into /usr prefix (when it comes from the
“package manager” of the distribution in question), or /usr/local (if a
user compiled on his own, though many people use $HOME prefix, and some
even use /opt which I find extremely peculiar since I saw some
distributions using pseudo-versioned dirs inside /opt i.e. “/opt/kde3”
…)