FYI, I've just completed another round of changes to setuptools in CVS,
including performance enhancements and new extensibility features (with
documentation). (And the 'sdist' command now incorporates the workaround
patch for 'delete="true"' in .svn/entries files.)
setup() can now take a 'setup_requires' argument that specifies
requirements that must be present before setup() runs; this allows you to
depend on projects like buildutils, py2exe, py2app, etc. for setup
arguments, commands, etc..
distutils extensions can now also define entry points to define new setup()
arguments and new EGG-INFO metadata files, as well as setup commands. With
this release, it should be possible to take a distutils extension like
"buildutils" and implement all of its distutils hooks just by defining
"entry points" in its setup script, to declare setup commands, setup()
args, and metadata types. Entry points can declare extras that they depend
on, too, so this means that commands can depend on external packages, and
setuptools will attempt to download and install those packages in the setup
directory if the package isn't already available on sys.path.
This is probably the last round of non-bugfix changes before releasing
0.6a1, apart from further documentation enhancements. Before 0.6a1 is
released, I'd like to add more tips on non-root installations with
EasyInstall, and create an updated API reference for pkg_resources.
Anyway, I haven't done a lot of regression testing yet, mostly just new
features testing, so these changes may still be a bit rough around the
edges. I'd appreciate any feedback. Thanks.