-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Lennart Regebro wrote:
On 10/20/07, Martijn Faassen <faassen@startifact.com> 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@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-----