[Catalog-sig] Extending the package meta-data with more detailed download information
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:
> 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
> 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