I built my first Zope 3 instance with buildout yesterday. After I got an
initial version working, I found it pretty lame to use "zope.app.zcmlfiles".
With "zope.app.zcmlfiles" I had 100 eggs without it 84 eggs (this is somewhat
However, I had to add several unneeded dependencies, because the
main "configure.zcml" of a package usually also includes the
browser "configure.zcml". For example, I have a dependency
on "zope.app.form", just because "zope.app.securitypolicy" (and other
packages) create old-style forms.
In fact, I do not even use anything declared in "IDefaultBrowserLayer", so any
browser "configure.zcml" is totally overhead for in this case. In fact,
anyone creating a new skin from scratch will want to avoid the same overhead.
I think the solution can be very simple and be effectively backward-compatible
for most cases:
1. Do not include the browser "configure.zcml" files in the
main "configure.zcml" of that package.
(a) If the package has a SETUP.cfg and "package-configure.zcml", then add the
browser "configure.zcml" include to that "package-configure.zcml".
(b) If the package is currently loaded via "zope.app.zcmlfiles"'s
"configure.zcml", then we will add the browser "configure.zcml" there.
This solution would not be fully backward-compatible with people including
package "configure.zcml" files manually. I think this is okay, since people
often do not even want the browser stuff.
A fully backward solution would be to put all the generic package
configuration in a new ZCML file and combine them both in "configure.zcml".
However, I find that solution very undesirable, so I hope noone will like it
I would like to get this change started as soon as possible to make it work
for Zope 3.4. If noone objects, I will start with this in a few days.
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
Zope3-dev mailing list