[Python-3000] Proposal: No more standard library additions

Bob Ippolito bob at redivi.com
Mon Oct 16 20:35:24 CEST 2006


On 10/16/06, Ivan Krstić <krstic at solarsail.hcs.harvard.edu> wrote:
> Martin v. Löwis wrote:
> > I hope Python won't copy CPAN literally. Every time I used it, it was
> > a big pain, and I happily stopped using it when everything I needed
> > came as a Debian package.
>
> Note my emphasis on `culturally` in the previous mail. CPAN's largest
> value isn't as a package management system, but as an actual canonical
> repository of useful Perl code, large and small.
>
> So my three propositions here are:
>
> 1) Having a large, canonical repository of useful Python code that's
> much more encompassing than Cheeseshop would be a good thing for Python.
>
> 2) It appears the way to create and maintain such a repository is to
> ingrain it into the language culture, whereby it becomes unusual that
> useful redistributable code /isn't/ in the repository.
>
> 3) To address 1) and 2), we need a canonical package layout and
> build/install/test cycle that are easy for developers to work with,
> well-documented, and for which there exist better and less arcane tools
> than what we have now.

This is basically solved at a technical level with setuptools as-is.
setuptools encourages a canonical package layout via its
find_packages() function and allows you to point it at a test suite
with the test_suite kwarg to setup(). It saves you the trouble of
writing a MANIFEST.in because it sucks in metadata from SVN or CVS.

Registering and uploading to CheeseShop takes mere seconds, especially
if you have an alias that does "register bdist_egg sdist upload -s" or
whatever.

What seems to be necessary is hand-holding documentation that states
what the encouraged practices are and walks through the release cycle
of a typical project (using the develop command, uninstalling an egg,
doing a release on cheese shop, etc.).

It may also be a good idea to encourage use of a "quickstart" tool
which creates a skeleton setup.py and an appropriate directory
structure for a new project. This already exists too (the create
command of the "paster" script that comes with Paste Script). Hell,
paster will even do the "svn mkdir" for you to create the
trunk/tags/branches...

-bob


More information about the Python-3000 mailing list