[Catalog-sig] RFC: pypan - a Python package manager

David Ascher DavidA@ActiveState.com
Fri, 25 Oct 2002 13:45:28 -0700


Thomas Heller wrote:

> The chicken and egg issue. It's difficult to reach the critical mass
> where the system is actually used.
 >
> Question for other readers of this list (David, maybe): How's pyppm
> going? I don't hear much from it.

PyPPM is pretty stagnant.  There are a few problems w/ PyPPM from where I'm sitting.

1) Unlike in the Perl world, we have to manage both the code repositories and 
the binary package building & distributing processes.  In Perl, CPAN exists 
(ActiveState need do nothing there), and PPM is "relatively" easy (it's still 
hard, since many many modules fail to build on some OSes or their reqs aren't 
clear, or ...).  It's a maintenance nightmare.  I'm not convinced that PyPPM 
will live much longer.  I'm very interested in alternatives that provide value 
to our users and that don't have the high maintenance cost.

2) Distutils, while better than nothing, is still very young.  There are (lots 
of) bugs (in codepaths that most people don't touch), but mostly it's not really 
designed to do what we need it to do.  People tend to write setup.py scripts for 
one particular goal ("setup.py install"), and extracting the relevant 
information to get "setup.py makeppd" to work takes a large amount of work for 
each package for each platform.  I argued as hard as I could in distutils' early 
days that we needed a declarative syntax to describe packages rather than Python 
code, but that wasn't chosen.  I still think I was right =).  I realize that I 
could pick up the mantle of distutils and speak with code.  However, changing 
such a fundamental aspect involves more work than it's worth to me right now.

3) The chicken/egg problem hits us hard -- the infrastructure isn't in place,
and putting in infrastructure is expensive.  Making it easier for Python users
to install modules is hardly where ActiveState can expect to reap the largest
rewards for its efforts in our larger picture.

4) The first implementation of PyPPM was sub-par.  I'd rather rewrite it from 
scratch.

5) Distutils is "too" good in some ways.  The windows installers, for example, 
solve the problem well enough for enough users (and, crucially, package 
authors), that there isn't a huge pressure on us to do it better/differently. 
As I've said before, I'm not convinced that Python modules belong at the same 
level of granularity as Python itself, but that's a second-order problem.

Just a few thoughts.

--david