[Distutils] packaging terminology confusion

Tres Seaver tseaver at palladion.com
Thu Jan 7 19:18:26 CET 2010

Hash: SHA1

Brad Allen wrote:
> This quote is taken from the distutils thread "current preferred way
> to specify dependencies? future?",
> On Wed, Jan 6, 2010 at 10:55 AM, Tarek Ziadé <ziade.tarek at gmail.com> wrote:
>> On Wed, Jan 6, 2010 at 3:35 PM, John Gabriele <jmg3000 at gmail.com> wrote:
>>> I'm a bit confused myself... PEP-345 says it "describes a mechanism
>>> for adding metadata to Python packages", but I think they really mean
>>> "distributions" (the things available at the PyPI).
>> Yes you are right, that was a mistake.  I've just fixed it.
> Sorry, but I'm baffled. Are we really now using the word
> 'distribution' for those 'things available at the PyPI'?
> The text inside PEP-345 uses the word 'distutils project' a lot as the
> name for this concept.
> It's very common to see the word 'package' used to refer to these
> 'distutils projects'; but in the Python documentation we also use the
> word 'package' to refer to any directory having an __init__.py.  Can
> the word 'package' be used for both concepts? Maybe a qualifier would
> help, like module-package and setup-package.
> Normally the word 'distribution' is reserved for what lands in the
> 'dist' directory, such as a tarball or an egg...right?

Here is my take:

 - "pacakge" means a Python package, (directory intended to be on
   sys.path, with an __init__.py.  We *never* mean a distributable
   or installable archive, except when "impedance matching" with folks
   who think in terms of operating system distributions.

 - "distribution" is such a distributable / installable archive: either
   in source form (an 'sdist'), or one of the binary forms (egg., etc.).
   Any distribution may contain multiple packages (or even no packages,
   in the case of standalone scripts).

 - "project" is the process / community which produces releases of
   a given set of software, identified by a name unique within PyPI's
   namespace.  PyPI manages metadata about projects (names, owners) and
   their releases.  Every real project has at least one release.

And another one:

  - "release" is a set of one or more distributions of a project, each
    sharing the same version.  Some PyPI metadata is specific to a
    release, rather than a project.  Every release has at least one

- --
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


More information about the Distutils-SIG mailing list