[Zope-dev] Re: zcml entry points
Tres Seaver
tseaver at palladion.com
Sat Oct 20 13:07:21 EDT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Lennart Regebro wrote:
> On 10/20/07, Martijn Faassen <faassen-oFAYkll9/VISWr57yraSmw at public.gmane.org> wrote:
>> I'd say it is a general concern of a framework to try to avoid how often
>> you need to repeat yourself. Right now you to use a Zope 3 package you
>> need to do the following things:
>>
>> * list the egg in your setup.py dependencies
>>
>> * load the ZCML required
>>
>> * import it in your code
>
> True. But they do different things.
>
> 1. Says "download and install a component"
> 2. Says "configure a component"
> 3. Says "use a component"
>
> Or something like that.
>
> I must say I kinda prefer the method of including the ZCML from the
> application zcml, where it is used, than having it magically included
> by buildout just because it was downloaded and installed. This mainly
> because if I write a module that requires foo.bar.frotz to have it's
> zcml included, I think it's the job of my module to include it, not a
> separate buildout.
>
> But I see your point as well, and maybe there could be made a
> difference in the buildout between modules to just be installed and
> modules to be installed and configured?
I'd rather see eggs designed to be used as plugins for a pluggable app
(e.g., Plone / Zope2 Products, maybe Grok add-ons) expose and entry
point in their setup.py, which would then be found and triggered
automagically by the plugin-aware application.
E.g., a stock Zope2 product, bundled as an egg, might expose the
following in its setup() call::
entry_points={
'zope2.product': ['Products.myproduct:initialize'[,
},
Or maybe the product even exposes mroe than one kind of entry point::
entry_points={
'zope2.product': ['Products.myproduct:initialize'],
'plone.quickinstall':
['Products.myproduct.Extensions.Install:install'],
},
A Grok application might say:
entry_points={
'grok.module': ['myapp'],
},
The entry points feature of setuptools was originall added in order to
support this use case (plugins / add-ons for a particular framework).
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHGjXJ+gerLs4ltQ4RAjsPAJ9XUPLazljd5m5GmJarLoLURXpAygCgpw31
7pBQ1xtoHbFY0H/EAJ7KJVE=
=ytRr
-----END PGP SIGNATURE-----
More information about the Zope-Dev
mailing list