[Catalog-sig] Re: [Distutils] More documentation for setup meta-data

Richard Jones rjones@ekit-inc.com
Fri, 28 Feb 2003 08:51:51 +1100

On Thu, 27 Feb 2003 7:25 pm, M.-A. Lemburg wrote:
> Richard Jones wrote:
> > I'm trying to better document the meta-data for the distutils (and hence
> > PyPI). I've added words to the section in the dev doc about meta-data,
> > and would like some feedback before I post the patch to be applied.
> > Sorry, it's in LaTeX form (until someone writes the ReST->python doc
> > converter ;)
> >
> >   \lineiii{download_url}{a location where the package may be
> > downloaded}{URL}{(3)}
> >   \lineiii{classifiers}{a list of Trove classifiers}{list of
> > strings}{(3)} \end{tableiii}
> download_url is not a valid Distribution option (even though it
> is listed in the DistributionMetaData). I wonder why you mention
> it here.

It is new in 2.3

> The concept of a single URL for downloads seems to simplistic to
> handle the issues involved with automatic installation. This
> information should also be provided in a lazy way, so that the
> package author can easily update the download links, e.g. by
> placing the information in an XML file on his site and then
> referencing this file in the distutils meta data.
> The file should then be parsed by a distutils subcommand to
> find the right download URL depending on the platform and
> Python version.

This system sounds quite useful and flexible. It could also get very 
complicated, very quickly (for a package maintainer). The download_url may 
still be used for this purpose if it specifies a metadata file as the 

On the other hand, Anthony Baxter has written a distutils command that will 
download a specified package and install it. This was recently posted to 
distutils-sig "first cut at a distutils 'fetch' command". Sure, it's not an 
optimal solution - in the same way that PyPI is going to need tweaking over 
time once it's actually used. It's a start though.

Note that I would like to see an alternative system that is used to 
disseminate packages which uses a set of mirrors similar to CPAN. There's an 
accepted naming system so that the package may be found just using the 
package name and version, and a fatch command that attempts to download the 
package from one or more of the mirrors (depending on availability). PyPI 
then supplies a list of the mirror sites. Distutils may also offer an upload 
command, to make life even easier for the package maintainer. No need to 
maintain download urls or even download sites. The kicker with this plan is 
the provision of the bandwidth. The other elements of it are ... well, 
trivial. They could be implemented before 2.3 is released.