Shopify/active_merchant — pull request #470 by ntalbott (2012-09-29 15:24:51+00:00)
Title: Set up a matrix of gem versions to test against

Currently, for better or for worse, ActiveMerchant is very dependent on
ActiveSupport, and is sensitive to changes in it. The main development
Gemfile for AM, though, simply allowed the version of ActiveSupport to
float, and no CI testing was being done against the versions of
ActiveSupport/Rails that AM should explicitly support. This allowed test
failures to creep in unnoticed, and when bundler suddenly started
resolving a different version of ActiveSupport when running CI, meant
lots of inexplicable breakage.

This changeset outlines an explicit set of Gemfiles for the versions of
ActiveSupport that ActiveMerchant currently claims to support. These are
then plugged into a Travis matrix, such that each one will be explicitly
tested for compatibility, and regressions in older versions will show up
immediately. The default Gemfile is set to track Rails 3.2; when 3.2 is
superceded, it is expected that the current default would get renamed
and a new default introduced to track the latest ActiveSupport.

This probably breaks Shopify internal CI, since previously these
Gemfiles were structured more as includes, and now they've been changed
to each be complete and standalone as Travis expects. Hopefully this is
easily fixed on the Shopify side.

To run tests against a particular Gemfile, you can simply set your local
BUNDLE_GEMFILE environment variable to one of them, i.e.:

export BUNDLE_GEMFILE=Gemfile_rails23