packaging terminology confusion

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@gmail.com> wrote:
On Wed, Jan 6, 2010 at 3:35 PM, John Gabriele <jmg3000@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?

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@gmail.com> wrote:
On Wed, Jan 6, 2010 at 3:35 PM, John Gabriele <jmg3000@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?
We should use the terminology as defined in http://docs.python.org/distutils/introduction.html#distutils-specific-termin... So technically it's a "module distribution" we're talking about.

On Thu, Jan 7, 2010 at 12:48 PM, Eric Smith <eric@trueblade.com> wrote: [..]
Normally the word 'distribution' is reserved for what lands in the 'dist' directory, such as a tarball or an egg...right?
Right.
We should use the terminology as defined in http://docs.python.org/distutils/introduction.html#distutils-specific-termin...
So technically it's a "module distribution" we're talking about.
Well, I wonder if we shouln't use the term "distribution" instead here. the "module" word is quite fuzzy to describe a distribution that might contain modules, data files, and/or packages. It doesn't bring any useful information to the terms here. Tarek

Tarek Ziadé wrote:
On Thu, Jan 7, 2010 at 12:48 PM, Eric Smith <eric@trueblade.com> wrote: [..]
Normally the word 'distribution' is reserved for what lands in the 'dist' directory, such as a tarball or an egg...right?
Right.
We should use the terminology as defined in http://docs.python.org/distutils/introduction.html#distutils-specific-termin...
So technically it's a "module distribution" we're talking about.
Well, I wonder if we shouln't use the term "distribution" instead here. the "module" word is quite fuzzy to describe a distribution that might contain modules, data files, and/or packages. It doesn't bring any useful information to the terms here.
You're right: the word "module" here is confusing, since it has another meaning (and is even mentioned in the previous section). But "module definition" is indeed the correct term. Maybe we should mention that where we use "distribution", the full term is "module definition" as defined in that section. Calling it "module definition" throughout the PEP would be horrible.

On Thu, Jan 7, 2010 at 7:03 AM, Tarek Ziadé <ziade.tarek@gmail.com> wrote:
On Thu, Jan 7, 2010 at 12:48 PM, Eric Smith <eric@trueblade.com> wrote: [..]
We should use the terminology as defined in http://docs.python.org/distutils/introduction.html#distutils-specific-termin...
So technically it's a "module distribution" we're talking about.
Well, I wonder if we shouln't use the term "distribution" instead here. the "module" word is quite fuzzy to describe a distribution that might contain modules, data files, and/or packages.
I agree, since you can make a distribution with nothing in it but scripts (no modules or packages). Nice way to distribute "python programs" too, IMO. Incidentally, the Perl folk technically refer to the things they upload to the CPAN as "distributions" as well. Though, they often call them "modules" in casual conversation/writing ... possibly because it's 2 syllables shorter and/or easier to type. :) The only inconsistency, I think, is that operating systems like Debian refer to their software distributions as "packages" (as in, a packaged up piece of software that you can download and install). "Packages" is a great name for them -- too bad it's already being used in Python. ---John

On Thu, Jan 7, 2010 at 3:52 PM, John Gabriele <jmg3000@gmail.com> wrote:
The only inconsistency, I think, is that operating systems like Debian refer to their software distributions as "packages" (as in, a packaged up piece of software that you can download and install). "Packages" is a great name for them -- too bad it's already being used in Python.
I believe that's basically where the confusion comes from.

On Thu, Jan 7, 2010 at 9:56 AM, Tarek Ziadé <ziade.tarek@gmail.com> wrote:
On Thu, Jan 7, 2010 at 3:52 PM, John Gabriele <jmg3000@gmail.com> wrote:
The only inconsistency, I think, is that operating systems like Debian refer to their software distributions as "packages" (as in, a packaged up piece of software that you can download and install). "Packages" is a great name for them -- too bad it's already being used in Python.
I believe that's basically where the confusion comes from.
Whoops. Just noticed that the front page of the PyPI says:
"There are currently 8614 packages here."
(is that 8614 packages or 8614 distributions?) and,
"To submit a package use "python setup.py upload" and to use a package from this index either "pip install package" or download, unpack and "python setup.py install" it."
and
"# Browse the tree of packages # Submit package information"
---John

On Thu, Jan 7, 2010 at 9:12 AM, John Gabriele <jmg3000@gmail.com> wrote:
On Thu, Jan 7, 2010 at 9:56 AM, Tarek Ziadé <ziade.tarek@gmail.com> wrote:
On Thu, Jan 7, 2010 at 3:52 PM, John Gabriele <jmg3000@gmail.com> wrote:
The only inconsistency, I think, is that operating systems like Debian refer to their software distributions as "packages" (as in, a packaged up piece of software that you can download and install). "Packages" is a great name for them -- too bad it's already being used in Python.
I believe that's basically where the confusion comes from.
Whoops. Just noticed that the front page of the PyPI says:
"There are currently 8614 packages here."
(is that 8614 packages or 8614 distributions?)
and,
"To submit a package use "python setup.py upload" and to use a package from this index either "pip install package" or download, unpack and "python setup.py install" it."
and
"# Browse the tree of packages # Submit package information"
Right! The word 'package' is used all over the place, including the name PyPI abbreviates (Python Package Index), and the title of PEP-345. Haven't we all also encountered this common usage? I've noticed in various discussions on this mailing list. Furthermore, even the official docs make an apology about this terminology that no one seems to use, stating that the word 'package' would be preferred but that term is already taken: From:
http://docs.python.org/distutils/introduction.html#distutils-specific-termin...
"This would be called a package, except that term is already taken in the Python context: a single module distribution may contain zero, one, or many Python packages." If the official terminology has not caught on in common parlance, is it really worth maintaining? The word 'package' seems to be what people want to use, and it is a more accessible term to newbies, system package maintainers, etc. Rather than waste energy fighting this popular usage, why not find a solution for this little namespace conflict? Of many possible solutions; here are some ideas: * Make the word 'package' an official replacement for 'module-distribution', without even deprecating the old 'package' usage for __init__.py directories. English is full of words with contextual meaning, and people can usually tell by the context which kind of package is being referred to. After all, that's what's is happening today. There could be a document clearly stating the different kinds of packages. * Use a qualifier, like one of these: 'PyPI Package', 'Setup Package', 'Project Package' while the old kind of package could be qualified as 'Python package' or 'Module Package'. * Deprecate the old use of 'package' and replace it with another word such as 'bundle', and try to get it into all Python 3 documentation. * Introduce a catchy new term to quell the popular tendency to use the word package instead of 'module-distribution'. Ideas: 'MetaPackage', 'Pkg', 'Porridge', 'Punkage', 'Spankage', 'Spackage', 'Pancake',

-----BEGIN PGP SIGNED MESSAGE----- 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@gmail.com> wrote:
On Wed, Jan 6, 2010 at 3:35 PM, John Gabriele <jmg3000@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 distribution. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAktGJW0ACgkQ+gerLs4ltQ6hIwCgndORnbKJc8K2AtJXYSBGv9xW LEAAn3mrbR64sp/TUm2NIr6YM0pMWJxu =CeVI -----END PGP SIGNATURE-----
participants (5)
-
Brad Allen
-
Eric Smith
-
John Gabriele
-
Tarek Ziadé
-
Tres Seaver