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
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
Jim Fulton mailto:[EMAIL PROTECTED] Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
Zope3-dev mailing list