[Catalog-sig] New PyPI stats available

Éric Araujo merwok at netwok.org
Tue Feb 19 17:06:16 CET 2013


Hello,

Le 18/02/2013 22:31, Nick Coghlan a écrit :
> On Tue, Feb 19, 2013 at 10:18 AM, Richard Jones <richard at python.org> wrote:
>> "package" is a name registered on PyPI. "release" is a version of a
>> "package." A "distribution" isn't referred to as far as I'm aware, but
>> could be a label applied to what PyPI calls "package file" - a single
>> file related to a "release."
> 
> We've been trying to move to "distribution" as the thing projects
> register on PyPI to better distinguish them from the kind of "package"
> you can import directly.
BTW let’s note that this is not a recent trend: distutils identified
early that Python’s use of “package” did not match the meaning as used
for RPM/Debian/etc. software packages, and thus used “distribution”
(with another set of issues).  PyPI did not follow that convention.

http://docs.python.org/2/distutils/introduction#general-python-terminology

> - projects are an overall activity. They have policies, bug trackers,
> source control systems, mailing lists, developers, etc and may control
> multiple distributions. Hence "Project-URL"
Another meaning (i.e. for distutils2.pypi): a project is a name
registered on PyPI.

> - distributions are what you register on PyPI: you intend to
> distribute Python software using that name. Hence "Requires-Dist",
> etc.
The line is blurred here.  What you register is a release, i.e. a
project name with a version number.  A release has metadata, which is
uploaded independently of information about distributions.  (Also a
distribution can have metadata that’s different from the release
metadata registered on PyPI.)

A requirement is actually a release (where the version specifier is
optional), not a specific distribution file.  The *-Dist names were one
of the issues in the previous round of packaging PEPs; if Daniel and you
aren’t aware of these discussions, I’ll dig them up.

> - packages and modules are the things you can actually import at runtime
> - most, but not all, distributions will ship exactly one module or
> package with the same name as the distribution
> - a version is a [pre-|post-]release as described in the metadata spec

> - sdists are source archives for a particular version of a distribution
I’d say: source and binary distributions are transfer formats for a release.

> - wheels are binary archives for a particular version of a distribution
> - eggs are binary archives in an alternative (discouraged) format
> 
> We can get away with PyPI continuing to be the Python *Package* Index
> (rather than the Python *Distribution* Index), because most
> distributions contain packages, and it isn't worth the hassle of
> trying to change it.
Some people tried to change it to Python Projects Index once but it did
not win the PyPI maintainers over :)

> It would be good to have PyPI calling
> distributions by that name in the UI, though.
Yes please.  Our terminology is imperfect, so let’s have at least
consistency.  OTOH I’m not opposed to forgo the use of the confusing
“distribution” in favor of something made up (bundle, parcel) or a
qualified version of “package”.

Regards


More information about the Catalog-SIG mailing list