Chris McDonough wrote:
> That package is now done...
> I've adjusted the trunk of bfg and the trunk of chameleon.zpt to use ZCML
> declaration implementations from this rather than using the "stock"
> implementations from zope.component.
Given that Plone also uses chameleon.zpt (via five.pt) this means that,
if I understand correctly, Plone now gains this dependency, and part of
the Plone stack uses what will seem to most people like an arbitrary,
almost-identical-but-not-quite way of configuring components that's
different to what the rest of the stack uses.
I realise Plone isn't your main concern here, but this is basically
what's going to happen to anyone who use lower level Repoze components
that use this means of configuration in a non-BFG context (or at least
in conjunction with more general Zope stuff).
I think that's a shame, because it's an argument against adopting Repoze
components in other frameworks. Plone already has far too many
almost-identical-but-not-quite ways of configuring things and we're
trying hard to consolidate. We don't have to use repoze.zcml ourselves
(and we almost certainly won't), but as people try to understand the
stack, it's another thing they have to be aware of. As we start using
more Repoze components (trunk already pulls in siz repoze eggs) it's
something we may start bumping up against higher up in the stack than
the template engine.
From experience, it's not unlikely that people will then start copying
the approach used by Chameleon and then get rather confused when they
realise that <utility /> can mean two subtly different things depending
on an xmlns line at the top of their configure.zcml.
I'm not saying what you've done was bad for repoze.bfg, but at least be
cognisant that repoze.bfg and by extension, possibly the wider repoze
stack, is starting to smell more like a fork of "Zope" (or at least a
particular combination of various Zope components), that's going to make
the attractive bits of the stack harder to swallow for other users of Zope.
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book
Repoze-dev mailing list