Ruby interpreter transitions

Ruby interpreter transitions are done in phases so that (hopefully) unstable is never broken:

phase 0: the new ruby reaches unstable

phase 1: enable both interpreters in experimental

ruby-defaults gets uploaded telling gem2deb to build for both the old and the new ruby versions.

changes needed in ruby-defaults:

do test rebuilds of all reverse-dependencies take notes of what breaks.

open a transition bug against release.debian.org. using the following parameters for ben (the transition tracker tool), where A.B is the old version, and X.Y is the new one:

Affected: .depends ~ /rubyA.B | .depends ~ /rubyX.Y/
Good: .depends ~ /rubyX.Y/
Bad: .depends ~ /rubyA.B/ & !.depends ~ /rubyX.Y/

phase 2: enable both interpreters in unstable, rebuild/fix

upload the new ruby-defaults to unstable.

packages get rebuilt/fixed with support for both the old ruby and the new ruby

ideally, what needs to fixed has to be fixed in a way that it won't need to be fixed again in the next transition.

phase 3: new interpreter becomes the default, old one is disabled

changes needed in ruby-defaults:

stage this in experimental first, ask ask people to test (at least in debian-ruby@lists.debian.org).

in special, test rebuilding all the stuff that links against the current default ruby version and make sure they can be binNMUed when the default really changes.

phase 4: rebuild/fix after default is changed in unstable

packages get rebuilt/fixed to drop support for the old interpreter and/or build against the new default.

phase 5: old interpreter gets removed