[Distutils] How can I create prebuilt distributions?

Jack Jansen Jack.Jansen@oratrix.com
Fri Feb 14 17:07:02 2003

On vrijdag, feb 14, 2003, at 21:19 Europe/Amsterdam, David Ascher wrote:
> The good news is that we're reviewing our PPM strategy, and that we 
> may be able to approach the problem in more effective ways than we 
> have in the past.  I think that PyPI will help as well because it 
> provides a centralized point by which we can e.g. contact all of the 
> maintainers.  We could also presumably add functionality to the PyPI 
> server that validates whether one can make a PPD out of the package, 
> etc.
> I'm willing to spend some time talking about this, just not able to 
> commit to spending significant development time or promise 
> deliverables.

I'm interested. I'm working on a thing called the Package Install 
Manager for Python (pimp) right now. I was planning not to go into 
design discussions until 2.3 is out and only at that time write up a 
PEP or something, but as pimp is 90% done I guess I can spare the time. 
I wanted to wait because pimp is serving a very real need I have with 
MacPython: on OS9 the MacPython distributions have always contained a 
lot of extra goodies (Numeric, PIL), and people have come to expect 
that. This was eating into my time for every distribution, though, and 
I want to get rid of it. But Mac users often don't have a development 
environment, and even if they do having them type in distutils commands 
isn't exactly considered good style. (pet peeve: to me "open source" 
means that you may download the source, you can build it yourself and 
you have to option to modify it. Unfortunately the actual state of 
affair is that in reality it means you must download the source, you 
will build it yourself and you shall modify it before it works).

So the idea behind pimp is that there is an online database of packages 
that is specific to a (OS-version, python-version) combination and that 
has a maintainer who is responsible for not adding only packages that 
have been tested and tried. Preferably the database should have source 
and binary version of all packages, so the end user can state a 
preference for either. The database also has dependency information, 
and bits of code so pimp can actively test whether a specific package 
is installed into your python, etc etc. The idea of having the database 
be specific to os/python version happened to make the problem 
manageable, but the more I think about it the more I like it and I'm 
now considering it (together with having a scapeg^h^h^h^h^hmaintainer a 
central part of the design:-)

I hope that people will appear who want to maintain the database, and 
even if I have to do it myself it's still less of a bottleneck if I 
don't have to do it at the same time of making sure everything in a new 
Python release works.

If people want to have a look at pimp: it's in Lib/plat-mac/pimp.py. 
It's probably MacOSX-specific right now, but that shouldn't be too 
difficult to fix.
- Jack Jansen        <Jack.Jansen@oratrix.com>        
http://www.cwi.nl/~jack -
- If I can't dance I don't want to be part of your revolution -- Emma 
Goldman -