Differences between revisions 2 and 3
Revision 2 as of 2015-07-22 06:21:04
Size: 1313
Editor: PaulWise
Comment: formatting
Revision 3 as of 2015-07-22 11:25:11
Size: 1778
Comment:
Deletions are marked like this. Additions are marked like this.
Line 12: Line 12:
changes needed in ruby-defaults:

 * edit `ruby_debian_dev.rb` and add a new `has_support_for` for the new interpreter.
 * make ruby-all-dev depend on rubyX.Y and rubyX.Y-dev for both interpreters
Line 17: Line 22:
ideally, what needs to fixed needs to be fixed in a way that it won't need to be ideally, what needs to fixed has to be fixed in a way that it won't need to be
Line 20: Line 25:
== phase 3: new interpreter becomes the default == == phase 3: new interpreter becomes the default, old one is disabled ==
Line 22: Line 27:
ruby-defaults gets uploaded with changes needed in ruby-defaults:
Line 24: Line 29:
 * ruby depending on new interpreter main package (rubyX.Y)
 * ruby-dev depending on new interpreter -dev package (rubyX.Y-dev)
 * edit `ruby_debian_dev.rb` and remove the `has_support_for` block for the old interpreter
 * remove from ruby-all-dev dependencies on rubyX.Y/rubyX.Y-dev from old interpreter
 * then call `./debian/newruby X.Y` and it will replace the old version with the new one in several places in the package (where X.Y is the version of the new interpreter).
Line 27: Line 33:
this phase may be done in conjunction with the next one stage this in experimental first, ask ask people to test (at least in debian-ruby@lists.debian.org).
Line 29: Line 35:
== phase 4: old ruby is disabled == 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.
Line 31: Line 37:
ruby-defaults gets uploaded telling gem2deb to stop building
for the old ruby, i.e.
== phase 4: rebuild/fix after default is changed in unstable ==
Line 34: Line 39:
 * ruby-all-dev drops dependencies on rubyX.Y/rubyX.Y-dev from old interpreter packages get rebuilt/fixed to drop support for the old interpreter and/or build against the new default.
Line 36: Line 41:
this phase may be done in conjunction with the previous one

== phase 5: rebuild/fix ==

packages get rebuilt/fixed to drop support for the old interpreter

== phase 6: old ruby gets removed ==
== phase 5: old interpreter gets removed ==

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

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

changes needed in ruby-defaults:

  • edit ruby_debian_dev.rb and add a new has_support_for for the new interpreter.

  • make ruby-all-dev depend on rubyX.Y and rubyX.Y-dev for both interpreters

phase 2: rebuild/fix

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:

  • edit ruby_debian_dev.rb and remove the has_support_for block for the old interpreter

  • remove from ruby-all-dev dependencies on rubyX.Y/rubyX.Y-dev from old interpreter
  • then call ./debian/newruby X.Y and it will replace the old version with the new one in several places in the package (where X.Y is the version of the new interpreter).

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

  • remove from testing first
  • remove from unstable later