[Catalog-sig] Extending the package meta-data with more detailed download information

Tarek Ziadé ziade.tarek at gmail.com
Sun Nov 22 16:51:23 CET 2009

On Thu, Nov 19, 2009 at 11:37 AM, 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:
> """
> Download-URL
>    A string containing the URL from which this version of the package can be downloaded. (This
> means that the URL can't be something like ".../package-latest.tgz", but instead must be
> ".../package-0.45.tgz".)
> """
> 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.
> 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.
> 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:

So, if I understand correctly, you would generate automatically all
those extra meta-data within the same "Distribution-File" field, when
the distribution is built ?

Why they are all grouped under a single field though ?

>  * 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)

Nice ! Although I am not sure about "Comment". What will it provide
that we can't provide in Summary and Description ?

What's "Distribution variant" ?

>  * Python implementation (CPython, Jython, etc.)
>  * Python version (2.5, 3.1, etc.)
>  * Python build variant (UCS2, UCS4)
>  * 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.)

What are those useful for ?

We are currently adding in PEP 345 fields such as "Requires-Python",
that allows to describe
the Python versions that are compatible with this distribution, so I
am not sure what these build
information field will be useful for.


More information about the Catalog-SIG mailing list