[Distutils] People want CPAN :-)

David Lyon david.lyon at preisshare.net
Thu Nov 12 00:17:21 CET 2009

Hi Greg,

On Thu, 12 Nov 2009 10:02:18 +1300, Greg Ewing
<greg.ewing at canterbury.ac.nz>

> What we need right now, I think, is some discussion
> about a new API, unconstrained by any considerations of
> backwards compatibility ....

A new API isn't so hard, but like anything it takes time
and effort to do.

Already this year, *a lot* of discussion went into such
a thing. For example, doing metadata based installs as
an option to traditional installs.

Backwards compatibility is going to be an issue that
*does* need to be addressed but even that I don't believe
is so hard.

There's two halves to "backwards" compatability. At
the build side and at the install side. It's confusing
I know.

Where distutils/setup is confusing is at the build
side in the way that all the files have to be specified
for being picked up.
On the install side, setup.py is much simpler and
hardly* does anything at all except copy files in
from the sources.txt. So compatability there is easier.

It's my opinion that a boilerplate setup.py could
completely replace 9/10 user written setup.py files.

> When I say it's fundamentally broken, I'm really talking
> about the API. My idea of what an API for a build system
> should be like is more like make or scons, which slice
> the functionality up in a completely orthogonal direction
> to the way distutils does.

yes. Broken on the build side.

> Maybe it would be possible to plug such a system in under
> the existing build_ext class. 

For even that to happen, there needs to be some work done.
As in fleshing out some code and examples and documentation.

Here's a configuration file for an alternate build system
that I'm working on at:


Any help thrown at getting this working would be welcomed.



name = artistflair
version = 1.2
description = artistflair is a package written in
    spare time to show colour variations.

packages = pyopengl
    objectrelationalmapper >= 1.6

[dependencies python<=2.4]
packages = lxml >= 2.5

[dependencies windows]
packages = win32com

[dependencies linux]
packages = pyodbc

scripts = artisticflairgui.py

files = artisticflair.conf

files = artisticdb.db
directory = db

directory = docs
url = index.html

script = checksystem.py

[postinstall linux]
script = builddocumentation.py

script = uninstallcleanup.py


More information about the Distutils-SIG mailing list