[Zope3-dev] Package is the wrong name for the things I called "Zope Packages".
Jim Fulton
jim@zope.com
Mon, 20 Jan 2003 12:34:56 -0500
I picked the wrong name for the things currently called
Let me summarize the current terminology:
- Python packages
These are the packages defined by Python.
Python packages do two things:
o Contain bits (modules and other files)
o Provide a namespace
- Python modules
Normally, we mean collections of code implemented by ".py"
files. Like packages, they contain bits (code) and provide a
namespace.
- Persistent modules
These are objects, stored in the ZODB that are meant to be as much
like normal Python modules as possible. Thet contain a bit string of
text that represents Python source code. They also provide a namespace.
They do have slighly different semantics to support run-time update.
- Persistent packages
These are objects, corresponding to Python packages, that are stored
in the object database. Unlike normal Python packages, they *only* provide
a namespace. They do not include bits.
For example, when you define a persistent module with the name "x.y.z",
you are also defining a persistent package "x.y". If you define another
module named "z.y.q", then you are defining "q" as another name in the "x.y"
package.
- Zope Packages
These are objects (currently) contained in a "Packages" container object in
service managers. These are used to contain bits and registratiuon information.
They do not provide much in the way of namespaces.
Zope packages are used for three things:
A. Provide a workspace for local configuration.
B. Provide a mechanism for creating software distributions.
C. Provide a mechanism for installing software distributions.
Note that it will not be uncommon to create a zope package as a local
configuration workspace and decide you want to give it to somebody. As a result,
I think that the same name and object should be used for first two uses, A and B,
above. Maybe the third, C, use deserves a different name and kind of object.
I'll also note that the is a strong correspondence between these things
and folders in content space.
So where does that leave us?
I'm pretty sure that the things currently called Zope packages should be
called something else.
I suspect that the things currently called "closed Zope packages" (use C)
should have an entirely different name from the things currently called
"open zope packages" (uses A and B). I'm inclined to think that the name
for uses A and B should involve the word "folder", although I haven't thought
of great modifiers.
Suggestions are welcome. :)
Jim
--
Jim Fulton mailto:jim@zope.com Python Powered!
CTO (888) 344-4332 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org