I'm looking for opinions here..
The next major Zope 2 release and perhaps the next major Zope 3
release will support the loading of packages and (for Zope 2)
Products from Python "Egg" files. See http://peak.telecommunity.com/
DevCenter/PythonEggs for an overview.
This provides the following benefits:
- A packaging pattern that includes standardized metadata which
existing distutils patterns.
- A mechanism to find "certain kinds" of packages (via egg "entry
This is important for Zope 2 because it means we can make the use of
the Products package namespace optional.. Products needn't be
installed into "Products" IOW.
- Simpler installation (more than one product can exist in a single
- Dependencies between "distributions" (different egg files) may exist
within the standard metadata, and the egg loading machinery can
detect whether a dependency is missing.
- Egg products can be registered with online catalogs like Cheese
A "spike solution" for egg support in Zope 2 in the form of a product
named "Basket" (http://www.plope.com/software/Basket/Basket) already
exists. By doing this, we know a lot more about what it will take to
put egg support "in to the core".
Currently, the Basket product makes the following important assumptions:
- There should be no explicit installation step for eggs other than
placing the egg on somewhere on Zope's PYTHONPATH.
- Packagers can mark their distributions as "non-zip-safe", which causes
Basket to automatically unpack the egg file into disk files in a
directory when Zope starts. This is important for existing
expect some of their data files to be on disk and not in the egg
The progenitor of Eggs (Phillip Eby) suggests that this is too
implicit. He suggests instead that people who install packages
should use a program which implicitly installs packages. The major
difference between this and what happens in Basket currently is that
packages would be that non-zip-safe packages would be "exploded" at
installation time rather than at Zope startup time.
The question is this: do you think there should be an explicit
"install" step for egg packages/Products or do you think it should be
possible to just put eggs on your PYTHONPATH (and perhaps adjust a
config file with "requirements")?
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -