[Zope3-dev] Re: Pluggins vs Application Definition
Philipp von Weitershausen
philipp at weitershausen.de
Sat Feb 11 23:39:52 EST 2006
Jim Fulton wrote:
> Some recent discussions on the distutils-sig mailing list have
> helped me to understand some issues related to the ways we
> extend the Zope application server. Traditionally, in Zope 2,
> you extended Zope by "dropping" product packages into a special
> "Products" package. This was very convenient in many ways, but
> doesn't always provide enough control or visibiity to what's
> going on.
> In Zope 3, we went with a more explicit installation mechanism,
> in which people had to explicitly cause a package's ZCML files to be
> loaded for it to be used. We added a mechanism to make this easier,
> by simply dropping a file into a special directory, package-includes,
> so an installer wouldn't have to fool with pointy brackets.
> I've noticed that at Zope Corporation, for our customer projects,
> we tend not to use package-includes. We prefer to explicitly include
> packages we use directly oin our application ZCML files. (As
> applications, may be composed of several layers, we may include
> things at multiple levels.)
> In thinking about this, I realized that there are two different users
> here with different concerns:
> - Application developers need to build an application. They will
> generally want fairly tight control over what goes into the
> application. For them, it's valuable to say in an explicit
> way what they want.
> - If the application is extensible, then application users
> will want to be able to extend the application by adding
> "pluggins". If application users are not technically
> sophisticated, or, more importantly, not technically interested,
> they peobably would prefer to just drop something into a special
> directory and be done with it.
> In summary, I think we need *both* approaches, as they serve different
I agree with all of the above, but fail to see what your implication is.
I think we have all that now. Sure, we're not dropping Zope 3 plug-ins
into a special directory but really anywhere in PYTHONPATH. Whether that
additional freedom makes it easier is debatable, but I'd say we're still
burned from Zope 2 wrt fixed drop-in locations.
Frankly, I think something like "ez_install zope.reallycoolstuff" is
even easier than manually dropping stuff. As for the package-includes
slug, a simple ez_install-like tool could help there as well. I sketched
it out once on a blog post:
More information about the Zope3-dev