Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2012-05-31 13:04:28
Size: 2778
Comment:
Revision 6 as of 2012-05-31 13:52:36
Size: 3746
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Subject: Bits from the Ruby team: switching to Ruby 1.9 and trasition to new policy
To: debian-devel-announce@lists.debian.org
Reply-To: debian-ruby@lists.debian.org
Line 5: Line 9:
bersion will make Ruby 1.9 the default Ruby interpreter on Debian systems, i.e. version will make Ruby 1.9 the default Ruby interpreter on Debian systems, i.e.
Line 12: Line 16:
We do not expect this transition to be too traumatic, as we will explain below.
Line 17: Line 23:
because of local Ruby applications that are not compatible with Ruby 1.9. There
are some options here:
because of local Ruby applications that are not compatible with Ruby 1.9, or
because of applications that depend on locally-installed packages (for example,
packages installed using Rubygems)
.

There are some options here:
Line 26: Line 35:
More information for Ruby users can be obtained at the [Debian
Wiki](http://wiki.debian.org/Ruby).
More information for Ruby users can be obtained at the Debian
Wiki[1].
Line 29: Line 38:
# What it means for package mantainers [1] http://wiki.debian.org/Ruby

# What it means for package maintainers
Line 36: Line 47:
Both programs an libraries should be
[
updated](https://lists.debian.org/debian-ruby/2012/04/msg00066.html) to use
the new Ruby policy, which basically means that:
Both programs and libraries should be updated [2] to use the new Ruby policy,
which basically means that:
Line 50: Line 60:
[2] https://lists.debian.org/debian-ruby/2012/04/msg00066.html
Line 52: Line 64:
It is not mandatory, though, and as long as package follow the the new Debian It is not mandatory, though, and as long as packages follow the new Debian
Line 54: Line 66:

# Current state of the transition to the new policy

TBD - actual status of the transition (Paul?)

Since most of the packages are already transitioned to the new policy, that means
they should have been already at least tested against Ruby 1.9. In a relatively
small number of cases, packages that were incompatible with Ruby 1.9 were already
marked as such. For this reason we believe that this switch to Ruby 1.9 as default is
not going to be too painful.

# The future of Ruby 1.8

Ruby 1.8 will be available during the entire Wheezy life cycle. On Wheezy+1

Subject: Bits from the Ruby team: switching to Ruby 1.9 and trasition to new policy
To: debian-devel-announce@lists.debian.org
Reply-To: debian-ruby@lists.debian.org

Hi,

A new version of ruby-defaults will be uploaded to unstable very soon. This new
version will make Ruby 1.9 the default Ruby interpreter on Debian systems, i.e.
when users install the `ruby` package, they will actually get Ruby 1.9 instead
of Ruby 1.8. Also, when both Ruby 1.9 (ruby1.9.1) and Ruby 1.8 (ruby1.8) are
installed, Ruby 1.9 binaries will have a higher priority on the alternatives
system, so that the programs `ruby`, `gem`, `irb` etc will by default point to
their Ruby 1.9 versions.

We do not expect this transition to be too traumatic, as we will explain below.

# What it means for users

/usr/bin/ruby and associated binaries (/usr/bin/irb, /usr/bin/gem, etc) will by
default point to their 1.9 variants. You may have code that depends on the fact
the /usr/bin/ruby and related binaries point to their 1.8 variants, maybe
because of local Ruby applications that are not compatible with Ruby 1.9, or
because of applications that depend on locally-installed packages (for example,
packages installed using Rubygems).

There are some options here:

* Change shebang lines to use /usr/bin/ruby1.8 instead of /usr/bin/ruby.
* Switch your system to use ruby1.8 as the system Ruby interpreter, by
  installing the `ruby-switch` package and running `ruby-switch --set ruby1.8`.
  This will change the Ruby-related alternatives entries (currently `ruby` and
  several slave entries, and `gem`) to use Ruby 1.8.

More information for Ruby users can be obtained at the Debian
Wiki[1].

[1] http://wiki.debian.org/Ruby

# What it means for package maintainers

If you maintain a program that is written in Ruby and it is not compatible with
Ruby 1.9, then you should change shebang lines to use `/usr/bin/ruby1.8`
instead of `/usr/bin/ruby`, and make your package depend explicitly on
`ruby1.8`.

Both programs and libraries should be updated [2] to use the new Ruby policy,
which basically means that:

* Packages that work with any Ruby version must depend on `ruby |
  ruby-interpreter` instead of just `ruby`.
* Ruby library code must be installed under /usr/lib/ruby/vendor\_ruby instead
  of /usr/lib/ruby/{1.8,1.9.1}.
* Library packages must be named ruby-$foo instead of lib$foo-ruby{,1.8,1.9.1}.
  A library package called ruby-$foo must install code for all supported Ruby
  versions, and transitional packages for the old lib$foo-ruby{,1.8,1.9.1}
  packages must be provided. These transitional packages can be dropped on
  Wheezy+1.

[2] https://lists.debian.org/debian-ruby/2012/04/msg00066.html

The easiest way to support the new Ruby policy is to use
[gem2deb](http://packages.debian.org/gem2deb), our new Ruby packaging helper.
It is not mandatory, though, and as long as packages follow the new Debian
Ruby policy, everything is good.

# Current state of the transition to the new policy

TBD - actual status of the transition (Paul?)

Since most of the packages are already transitioned to the new policy, that means
they should have been already at least tested against Ruby 1.9. In a relatively
small number of cases, packages that were incompatible with Ruby 1.9 were already
marked as such. For this reason we believe that this switch to Ruby 1.9 as default is 
not going to be too painful.

# The future of Ruby 1.8

Ruby 1.8 will be available during the entire Wheezy life cycle. On Wheezy+1

# Get in touch

If you have questions or need help adapting your package, feel free to get in
touch with debian-ruby@lists.debian.org.

For the Ruby team,