[Catalog-sig] Extending the package meta-data with more detailed download information
david.lyon at preisshare.net
Thu Nov 19 15:29:32 CET 2009
On Thu, 19 Nov 2009 11:37:32 +0100, "M.-A. Lemburg" <mal at egenix.com> wrote:
> In the current or intended next vesion (1.2 - see PEP 345), the
> package meta data does not include any machine usable form of
> defining download URLs for particular platforms, Python versions
> and variants.
> The only entry we have is:
> A string containing the URL from which this version of the package
> be downloaded. (This
> means that the URL can't be something like ".../package-latest.tgz", but
> instead must be
> which may be usable by a developer looking for the download links,
> but isn't really suited for package managers to use.
> PyPI has already extended the meta-data information to include uploaded
> files, but only makes this information available via the RPC interface.
Which imo is entirely satisfactory.
> Now I'm not sure whether such download information should be part
> of the package's meta-data, but do see a point in having all package
> related information in one place for easy access by package managers
> and developers.
The key thing for imho now is to have the dependencies available in
> I would like to extend the available download information to make
> automated downloads more reliable. Here's a list of things that
> would be needed:
> * Distribution type (sdist, bdist_egg, bdist_msi, bdist_wininst, etc.)
> * Distribution URL (full URL of the download file)
> * Distribution Comment (any text)
> * Distribution MD5 digest (as HEX string)
> * Distribution SHA1 digest (as HEX string)
> * Distribution PGP signature (as string)
> * Distribution variant (list defined by the package)
We could. To me these things are a little fluffy. One could
ask how much value they actually add.
> * Python implementation (CPython, Jython, etc.)
> * Python version (2.5, 3.1, etc.)
> * Python build variant (UCS2, UCS4)
Definitely. But these are already slated to go in
aren't they? with the conditionals specification.
> * OS identifier (Windows, Linux, Mac OS X, FreeBSD, etc.)
> * OS version (XP, 2, 10.4, 7, etc.)
> * Architecture identifier (x86, x64, ppc, ppc64, sparc, sparc64, etc.)
> * Processor identifier (i386, i686, arm, etc.)
These were discussed on distutils a little during the year.
> Some of these would be optional, or could be set to 'n/a' if
> not applicable to the distribution.
Or just left out.
> distutils should then get a new API for matching the available
> download information to the currently running Python interpreter
> (but that's to be discussed on distutils-sig).
> Thoughts ?
They're good thoughts.
More information about the Catalog-SIG