Review for rubygem-rack1

Jeroen van Meeuwen kanarip at kanarip.com
Wed Jul 28 17:45:37 UTC 2010


David Lutterkort wrote:
> On Wed, 2010-07-28 at 17:49 +0200, Jeroen van Meeuwen wrote:
> > This would have to become a YUM plugin because a new release of the 
package 
> > (not a new version) will replace the files on the filesystem but keep the 
old 
> > release entry in the rpmdb. We may want to trigger cleaning that up based 
on 
> > release information as opposed to version numbers in a plugin.
> 
> I don't understand - no files will be replaced by parallel installs.
> You'd have $GEM_HOME/gems/rails-2.3.4 and $GEM_HOME/gems/rails-2.3.8
> 
> Any files that do not go into versioned directories, like wrapper
> scripts for /usr/bin need to be identical between versions; the wrapper
> scripts already are (have a look at /usr/bin/rails as an example)
> 

Not if the original package is rubygem-foo-1.0-1.fc14 and the update is 
rubygem-foo-1.0-2.fc14.

> > Moreover, in Fedora Updates as well as EPEL, only one version of a package 
can 
> > be in the repository at any given time. When updating one version of 
rubygem-
> > rack, you essentially automatically kick out the other version of rubygem-
> > rack.
> 
> That's fine - all we want is for people to not automatically clobber
> installed gems when they do a yum update, and allow them to update from
> one version to the next on their own time, and application by
> application.
> 

For example, initially, we can ship one version for rubygem-rack. If we 
continue down the EPEL-5 path, then an update path for rubygem-
rack-0.4.0-1.el5 must be available, in order to be able to provide patches to 
those parties that use that version.

Suppose we then ship rubygem-rack-1.1.0-1.el5. This version will then replace 
the 0.4.0 version shipped until that point, and there's no problem if and when 
that version is installed in parallel using the installonly_pkgs feature in 
YUM.

However, when supplying a 0.4.0-2.el5 update to the original gem version, we 
push the rubygem-1.1.0-1.el5 version from the repositories. Nevermind the 
epoch culprit required to actually get it through the Fedora systems, we 
render the 1.1.0 version unavailable.

So, with saying 1.1.0 once, you also automatically choose to;

- no longer support 0.4.0 any longer, or
- with every update of 0.4.0 to stable, you push out a 1.1.0 version to 
testing, and you cannot require rubygem(rack) >= 1.1.0 in any RPM because at 
this point a default system would fail a "yum install" of anything that 
requires rubygem(rack) >= 1.1.0 (at it's only available in testing).

A very simple solution would be;

- for the Fedora Project to keep around all packages ever released for an EPEL 
branch, and ship it as part of the repository, much like Red Hat itself does, 
and
- to allow our koji mashing and updates management to include lower NEVRA 
package versions to be pushed out to the repository.

-- Jeroen


More information about the ruby-sig mailing list