I'm working on a set of distutils enhancements called "setuptools". The "setuptools" extend the base Distribution class with the ability to do: * feature management -- you can define subsets of a distribution as "features" that can be enabled or disabled via '--with-X' and '--without-X' options to 'setup.py'. Features can (recursively) depend on other features, and be included or excluded by default. (Their inclusion or exclusion affects all commands, as the relevant packages/modules/data/scripts/whatever are added or removed just after command line arguments are parsed.) * package data installation -- you can specify filenames or globs to be searched for in package source directories, for installation alongside the package .py files. All without munging the 'install_data' command or manually copying files, and the data files are correctly included in the 'get_outputs()' manifest for all the distutils features that depend on knowing what files were copied. * 'test' command -- optionally run a user-specified or 'setup.py'-specified test suite via the 'unittest' module. * Packages and modules can be simultaneously specified as arguments to 'setuptools.setup()', unlike the standard distutils 'setup()'. The above features are all fully implemented and documented via docstrings, and the majority of them are covered by an extensive unit test suite. "setuptools" uses itself for its own 'setup.py', in order to enable the 'test' command to run its built-in unit tests. The purpose of "setuptools" is to collect commonly useful distutils enhancements for large or complex packages like Zope X3 and PEAK. It's also intended to be the starting point for developing simple installer-side dependency support, as described/proposed at: http://www.python.org/cgi-bin/moinmoin/DistutilsDependencies Finally, I also intend to add some type of general-purpose documentation build and install facilities, to replace the rather hacky documentation support in my current setup scripts. At this point, the package isn't quite ready for general release, as it doesn't include documentation beyond docstrings, and of course the dependency and documentation features aren't written yet. But I believe it is ready for feedback from interested parties such as PyCon sprinters, and people who are undertaking complex distutils projects. I'm interested in your comments, especially as they may relate to the viability of eventually merging setuptools into a "Distutils 2.0" (or maybe "1.5"). Setuptools is specifically laid out to match the package layout and naming conventions of the distutils in order to facilitate such porting. You can currently find the setuptools CVS at: http://cvs.eby-sarna.com/setuptools/ although there has been some discussion about moving it to the Zope X3 CVS in the near future to facilitate the coming sprint, and other contributions. Please follow up with discussion to the distutils-sig mailing list. Thanks.