Packaging, dependencies and rates of development

Nick Coghlan ncoghlan at iinet.net.au
Fri Jan 7 11:50:58 EST 2005


Bulba! wrote:
> When you have it ALL in the single distro, released from time
> to time, you can easily test it _together_. You don't 
> get _temporal dependencies between various versions_.
> The released, stable distro has the same things on the
> same days, and either it all works together or it doesn't. 

Except that the difference between the distro maintainers' opinion of what is 
"stable enough" for inclusion, and the updated version of that module which has 
some stability problems in areas you don't use but fixes a critical bug in the 
areas you *do* use is always going to be a problem that has to be dealt with.

That's one of the reasons numarray hasn't hit the standard library yet - the 
Python version release and uptake cycle is too slow for the pace of development 
they currently require.

Similarly, this is also part of the reason IDLE went the way of IDLEFork before 
being merged back in 2.3 - the development outside the core tree let Kurt and 
everyone else involved get it up to speed more quickly.

There's also the fact that monolithic approaches just plain don't scale - 
imagining that they can is exactly what leads to the version conflicts that bug 
you so much, since developers assume that they don't need to care about 
versioning issues, because the packagers will take care of them. In reality, all 
it does is move the version conflicts currently noticed by end users and make 
the packagers try to deal with them instead - and for some of the problems, 
side-by-side installation of multiple version is the only solution, and that's 
impossible in the general case without the modules in question providing some 
versioning mechanism. And so, once again, we're left with developers having to 
worry about dependency issues.

For an example of a well-thought out approach to the versioning issue, take a 
look at the work that was done for the recent wxPython release:
http://wiki.wxpython.org/index.cgi/MultiVersionInstalls

What would be ideal is if distutils itself was able to offer a standard package 
versioning system. Then all module developers would have to do is be aware of 
how to use the distutils versioning system, and installing side-by-side versions 
of packages would be create straightforward.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at email.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.skystorm.net



More information about the Python-list mailing list