New for developers: bundler support

Thanks to lots of hard work from @mckinneyjames, Alaveteli now uses Bundler wherever possible to satisfy its dependencies.

We have a few such dependencies, like recaptcha and rmagick.  Previously we installed these from system packages on Debian.  The advantages of using Bundler are:

  • We can upgrade to newer versions more quickly than Debian packages allow
  • It’s the standard way of packaging software in Rails 3, to which we will migrate in due course (in fact, we will probably skip straight to Rails 4…)
  • It brings the process of getting a working setup in OS X closer to that of building the same thing on a Linux-based system

It’s not utopia — the first run of “bundle install” on a new system will take a very long time, because Xapian has to be compiled from scratch; and we can’t remove our non-rubygems dependencies like gnuplot and memcached.  However, as part of the slow process of moving to a modern Rails setup, this is a major step forward.