Palladion Software
user icon Guest

Kudos to Chris McDonough, as well!

Chris has been steadily at work this week on finishing his Basket product, which makes it possible to distribute Zope add-ons using Phillip Eby's "eggs".

Created by tseaver. Last modified 2005-11-18 15:13:16.

This product is a short-term implementation of the egg-related features, which will go away once the feature lands in the Zope core. Quoting from the product's README:

Overview

Basket is a Zope 2 product which allows you to employ the Python Egg format to deploy other Zope 2 products.

Where Do Eggs Go?

You can put Product eggs anywhere on your Zope 2 instance's PYTHONPATH. A "safe" place to put them is $INSTANCE_HOME/lib/python which is on the PYTHONPATH of every post-2.6 Zope 2 installation.

Definitions

Product
A Python package that (optionally) includes an initialization function which gets called at Zope startup time. Products may be packaged as eggs using Basket; otherwise they are typically packaged as tarballs which are meant to be unpacked in a Zope 2 "Products" directory.
Egg Product
a Product packaged up as part of a Product Distribution.
Product Distribution
A Python "egg" which contains one or more Zope 2 Products.

Chris' work includes substitute / replacement classes for the "resource files" traditionally used by Zope2 product developers (ImageFile => ImageResource, DTMLFile => DTMlResource, and PageTemplateFile => PageTemplateResource), allowing those resources to be read either from the egg's zip file or from a traditional directory-based product.

I am close to finishing work to make it possible to load skins from eggs, as well as converting the CMF itself to use the new resource classes.