[LWN Logo]

To: debian-devel@lists.debian.org
Subject: PROPOSAL: "Staging Areas"
From: Jim Pick <jim@jimpick.com>
Date: 23 Feb 1999 20:34:44 -0800


Hi,

There has been a lot of discussion about gtk/gnome and unstable.
Because of the huge numbers of dependencies and dependant packages,
gtk and gnome have been introducing a lot of instability into
"unstable".  This is largely due to the fact that we are trying to
track something that is under active development, in which binary
compatibility is often broken.

We can isolate the breakage by incrementing sonames and using
dependencies, but it's almost impossible to get everything to work
together nicely when we are mixing so many different versions.

One proposal has been to assemble all the packages that depend upon a
certain gtk/glib/imlib/gnome combination outside of 'unstable', and
only put them into 'unstable' when all the packages are known to work
together.

This is a good idea.  I'd like to propose a mechanism for facilitating
this.

The idea is this:

 * Have a facility for creating multiple parallel distributions to the
   unstable distribution.  Each one of these parallel distributions would
   be a "staging area" for assembling packages that would break
   compatibility if they were uploaded directly to 'unstable'.

 * These "staging area" distributions would be created automatically by
   dinstall when a package is first uploaded to one of them.

   For example,

   Imagine glib 1.1.20 comes out, and it breaks compatibility (it's still
   under development, after all).  The proper thing to do is to try to
   recompile all the applications and libraries which use glib so that they
   use the same one.  Otherwise we'll get segfaults from mixing the old
   and new one together in some cases.

   Instead of uploading all the packages one-by-one to unstable, where they'll
   break (because they aren't all updated at once), we would use the new
   debian-gtk-gnome@lists.debian.org mailing list to agree to upload them
   to a "staging area" distribution.  This would be done by setting the
   distribution to be:

      Distribution: staging-glib-1.1.20

   (instead of "unstable")

   When dinstall is run on the Incoming queue, it would put the packages
   into:

     dists/staging-glib-1.1.20/....

   The dinstall program could be modified so that it would automatically
   create a new "staging area" distributions whenever it saw a package
   destined for a distribution named "staging-*" than does not yet exist.

   Of course, this would have a Packages file, so people who wanted to 
   use these packages before they were committed to 'unstable' could just
   add this distribution to their /etc/apt/sources.list file.

   When all the packages have been assembled in the staging area, we
   could then dump all of those packages into unstable at one time, 
   and then remove the "staging area" distribution.

That's all my idea is.  We are already doing this on an ad-hoc basis
for the following:

  * glibc 2.1
  * gnome-apt
  * xfree86
  (probably several others)

It's quite a bit of extra work to do these without using an Incoming
queue, and the standard dinstall routines.

Anyways, I think this facility could be built into dinstall rather
easily, and would be very useful.

Cheers,

 - Jim


-- 
To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org