Andreas Jung wrote:
--On 22. September 2007 12:40:04 +0100 Martin Aspeli <[EMAIL PROTECTED]>
Andreas Jung wrote:
I think there are currently several approaches doing products-as-eggs in
the Zope 2 world - I also lost track a bit and have no idea how to do it
the right way[tm].
To my knowledge, there are only two, complementary approaches:
1. Keep the Products.* namespace
- distribute your egg with a namespace package 'Products'
- only works (reliably) on zope trunk/2.11+
- ZCML processing and initialize() is implicit/automated
2. Use a regular python package (whether with a namespace or not)
- distribute your egg with any namespace (or no namespace)
- most of the plone.app.* packages are products
- works on Zope 2.10.4+
- ZCML is only processed if the package is explicitly included from
site.zcml (or a ZCML slug, or another package/product that is being
- The package only becomes a product if the <five:registerPackage />
ZCML directive is in use
Tnx for clarification. Another question: what's the point not using entry
points since service discovery is one of the reasons for using entry points.
Ok, with globally installed eggs this will lead to a disaster...however for
isolated installations via buildout or something similar using entry points
might be useful.
I agree that this seems a natural fit. I think Philipp experimented with
it, but when it turned out that Products.* scanning worked even in eggs
that used Products.* as a namespace package, he decided there wasn't
much point in continuing.
So: Entry points could potentially do what the <five:registerPackage />
directive does to register products. However, we already have that (and
the magic Products.* scanning) so there may not be that much point.
Entry points could also be an alternative to ZCML slugs. The downside is
that this may remove the ability to disable ZCML processing in some cases.
Acquisition is a jealous mistress
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -