intertwingly

It’s just data

Be Liberal in What You Accept


Yehuda Katz: you basically never, ever want to use a >= dependency in your gems.

Jeremy Kemper: Loosen activesupport dep to float on 3-0-stable or master

My guess is that Yehuda has had a bit of much bad experience with depending on somebody to honor their interfaces.  The problem with such an approach is that you essentially stop all forward progress.  In this case, 3.1’s Active Record depends on arel and Active Support, and arel also depends on Active Support.  Result:

Bundler could not find compatible versions for gem "activesupport":
  In Gemfile:
    rails depends on
      activesupport (~> 3.0.0)

    rails depends on
      activesupport (3.1.0.beta)

My take: gems should honor their interfaces, and Yehuda’s advice should only be taken when there is evidence that the maintainers do not take this obligation seriously.  People should be able to trust that new releases of Active Support will maintain backwards compatibility.

As this change to arel is unreleased, in order to test the scenarios in Agile Web Development with Rails Edition 4 against the upcoming release of Rails, I need to pull in an unreleased version of arel in my testing.  I shouldn’t have to do this, and furthermore the fact that I have to means that the comment that is placed by default in generated Gemfiles is currently broken (incomplete).