[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
> needs.

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:
http://www.z3lab.org/sections/blogs/philipp-weitershausen/2006_01_11_mata-los-productos

Philipp


More information about the Zope3-dev mailing list