[Zope-dev] why external version indexes don't fulfill all use cases for development

Wichert Akkerman wichert at wiggy.net
Sun Nov 11 07:08:40 EST 2007


Previously Martijn Faassen wrote:
> People have been saying that since Linux distributions use external 
> indexes, we should too, as we are dealing with the same problem as Linux 
> distributions. While the problem is similar, I think the nature of 
> development makes our problems, and therefore our solutions, quite 
> different from the way distributions do it.
> 
> How are we different?
> 
> We have many, many different small distributions (package + 
> dependencies) that can be combined. We have such a small distribution 
> for each application. We have such a small distribution for each 
> extension. Not just that. We have such a small distribution for each 
> *release* of an application. We have such a small distribution for each 
> *release* of an extension.
> 
> I therefore still believe that version dependency information should 
> move out of external indexes and into packages.

Unless I'm missing something that is exactly what Linux distributions
are doing. Each package has its own list of dependencies and conflicts
(just as important). When a package is uploaded to a distribution
archive that information is copied out of the package and included in
the distribution index. That is important since it allows you to grab
the index and calculate the whole dependency graph without having to
download packages. You can know in advance if something is installable
without having to download dozens of pacakges and only then discovering
that it will never work.

Linux package managers can also handle multiple distributions. If you
look at apt for example it can handle as many distributions as you want.
You can set priorities for them at distribution-scale (ie always prefer
packages from distribution X), at release scale (ie always prefer
packages from release Y even if release Z has a newer version) or
package scale (package A has to come from distribution X). This is
extremely common. If you install a Debian or Ubunutu machine you will
always use two distributions: the one for the release, which will never
change, and one with security fixes for just that release. Often you
will also configure distributions with specific backports (needed
because Debian releases are far apart) or for specific products (for
your Enlightement 17 snapshot for example which Debian does not have). 

The terminolpgy is slightly different (archive versus index, package
versus egg, depends versus requires, enlightenment versus grok, etc.)
but the problem is still the same.

Wichert.

-- 
Wichert Akkerman <wichert at wiggy.net>    It is simple to make things.
http://www.wiggy.net/                   It is hard to make things simple.


More information about the Zope-Dev mailing list