Re: [Distutils] Name the software! Package quality tester.
At 07:06 AM 3/9/2011 -0500, Jim Fulton wrote:
They certainly aren't "projects" in any sense that most people would understand.
I don't follow you. Sourceforge hosts projects. Freshmeat indexes projects. Mozdev.org hosts projects. The Apache Foundation hosts projects. "Project", IOW, is *exactly* the word people use for these things, in the larger world of software, and that's precisely why I chose it for my original terminology proposal. Many PyPI listings also only describe a project, in the sense that there is no release information at all, or the code is only available via a revision control system, etc.
The term "project" has has never stuck, despite being discussed repeatedly.
It's only been discussed here, on this list. It hasn't been put in official documentation, or really blessed by anybody. When it has been discussed, it's been considered a reasonable name, and when people have needed to make the distinction, they've tended to use it. The primary reason it hasn't caught on in a larger sense is that people don't know about it, and have no motivation to learn it unless they end up in a situation where the distinction makes a difference... And let's face it, it really only makes a difference if you are creating some kind of packaging or distribution tool, or if you have a corner case of using one.
I think given the historical use of the term "package" it was reasonable to find another term. OK, we tried. It didn't work.
I don't think that's an accurate assessment on two points. First, "we" didn't try -- *I* did. (It's possible that someone else has promoted it, but I don't recall any instances of that.) So, there actually being a "we" behind it -- where "we" includes an approved PEP, documentation, etc., would be helpful. Second, I don't think it's accurate to say "it didn't work". It's not like people who need the distinction have objected to the word or proposed any alternatives.
We can pretent that if we work hard enough, we can make people adopt our confusing terminology. Good luck with that.
No matter which way we go (assuming there aren't any other alternatives), we will be trying to get some group of people to change their terminology. I'm just pointing out that the group that would need to change to use "project" is both smaller *and* inherently more motivated to change their usage, than the group that would need to replace "package" with "module". Thus, if getting people to use "project" is an uphill battle, getting people to stop using "package" is going to be a much higher vertical cliff. ;-) For one thing, if the distutils documentation simply starts out like: "If you want to distribute your work to the larger Python community, you need to create a project for it. In practical terms, this means having a directory with a setup.py and the code, data, or documentation you wish to distribute. Your project will also need a unique name, if you want to make it accessible to others via the Python Project Index (PyPI)." (replace setup.py w/setup.cfg for distutils2, of course) This usage of project also maps onto common IDE usage of the term project -- a directory of stuff that you're going to edit and build. And, it immediately introduces the term to a superset of the audience that will need to know it. Having PyPI describe its contents as "projects" is pretty much the other half of the indoctrination needed. In contrast, to make the package->module change, you'd have to not only change the official language reference and tutorial, but also every third-party book or tutorial about Python. Sure, some of those third party references would also exist for "package" as "project", but that's simply an *imprecise* usage, rather than an *incorrect* one.
FWIW, when I've been writing docs or answering packaging questions and trying to use the approved, unambiguous terminology, using "project" for "thing with a PyPI page" has never been a problem; I've had much more difficulty in using "distribution" as the term for "a zipfile or tarball or egg that you download" (also a "package" in colloquial usage). I always have to awkwardly qualify it with "distribution tarball" or "project distribution" due to the conflict with Linux distributions. Carl
They certainly aren't "projects" in any sense that most people would understand.
I don't follow you.
Maybe we have lost the context here, but I think I agree with Jim. Even though PyPI hosts "projects", they (the files you download) aren't "projects" - they are "distributions" or "packages". Regards, Martin
At 10:22 PM 3/9/2011 -0500, Martin v. Löwis wrote:
They certainly aren't "projects" in any sense that most people would understand.
I don't follow you.
Maybe we have lost the context here, but I think I agree with Jim. Even though PyPI hosts "projects", they (the files you download) aren't "projects" - they are "distributions" or "packages".
I think you have lost the context; here, project refers to the thing that you have versions of, which distributions in turn are discrete manifestations of. That is, a "project" has "releases" which has "distributions". For example, http://pypi.python.org/pypi/Trac is a PyPI page for a project, http://pypi.python.org/pypi/Trac/0.12.2 is the PyPI page for release 0.12.2 of that project, and http://pypi.python.org/packages/source/T/Trac/Trac-0.12.2.tar.gz is one of the distributions available for that release of that project. PyPI allows one to host a project that has neither releases nor distributions, so in that sense it is certainly an index of projects, in much the same way that ASF, SourceForge, MozDev, and others are.
Who are going to PyCon? I feel an open space on this coming up. :-)
I really should let this rest ....... really .... On Wed, Mar 9, 2011 at 11:43 AM, P.J. Eby <pje@telecommunity.com> wrote:
At 07:06 AM 3/9/2011 -0500, Jim Fulton wrote:
They certainly aren't "projects" in any sense that most people would understand.
I don't follow you. Sourceforge hosts projects. Freshmeat indexes projects. Mozdev.org hosts projects. The Apache Foundation hosts projects. "Project", IOW, is *exactly* the word people use for these things, in the larger world of software, and that's precisely why I chose it for my original terminology proposal.
But the things in PyPI are not projects. Projects have bug trackers, and mailing lists, and source code repositories. Projects are organizations of people -- not software distributions. The things in PyPI that you call "projects" are things that get produced by projects. There isn't a buildout.recipe.egg "project". buildout.recipe.egg is just a um packaging of some software components. It's not a "project" in any usual sense of the word.
The term "project" has has never stuck, despite being discussed repeatedly.
It's only been discussed here, on this list. It hasn't been put in official documentation, or really blessed by anybody. When it has been discussed, it's been considered a reasonable name, and when people have needed to make the distinction, they've tended to use it.
OK, fair enough. Distutils uses the name "package" for both Python packages and for the things it makes distributions of. The historical precedent from official documentation is to use "package" for what you call project. Let's stick with that. :)
And let's face it, it really only makes a difference if you are creating some kind of packaging or distribution tool, or if you have a corner case of using one.
No. End users need to know about this. They need to know what these names mean and that the "package name" (distutils) or "project name" (setuptools) doesn't imply that the distribution will provide a python package of the same name. Trust me on this. Users care about this.
For one thing, if the distutils documentation simply starts out like:
"If you want to distribute your work to the larger Python community, you need to create a project for it. In practical terms, this means having a directory with a setup.py and the code, data, or documentation you wish to distribute. Your project will also need a unique name, if you want to make it accessible to others via the Python Project Index (PyPI)." (replace setup.py w/setup.cfg for distutils2, of course)
It does? Where? Can you give a link? I don't see this text anywhere.
This usage of project also maps onto common IDE usage of the term project -- a directory of stuff that you're going to edit and build.
That use of project is equivalent to "working directory" and not relevant, IMO.
And, it immediately introduces the term to a superset of the audience that will need to know it. Having PyPI describe its contents as "projects" is pretty much the other half of the indoctrination needed.
Only if you think indoctrination is needed. I'd rather make things more obvious. Jim -- Jim Fulton http://www.linkedin.com/in/jimfulton
participants (5)
-
"Martin v. Löwis" -
Carl Meyer -
Jim Fulton -
Lennart Regebro -
P.J. Eby