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 extends
   existing distutils patterns.

- A mechanism to find "certain kinds" of packages (via egg "entry points").
   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
   egg file).

 - 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 Shop, etc
   very simply.

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 cache directory when Zope starts. This is important for existing products that expect some of their data files to be on disk and not in the egg zipfile.

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 - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to