Andreas Jung wrote:

--On 22. September 2007 12:40:04 +0100 Martin Aspeli <[EMAIL PROTECTED]> wrote:

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* 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  -
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to