Martijn Faassen wrote:
We've recently had some discussions on where to place the implementation of various ZCML directives. This post is to try to summarize the issue and analyze the options we have.
Thanks for summarizing this!
We have several ways to go:
a) continue with the current extra dependencies situation like in zope.component, and in fact clean up other packages that define ZCML to declare ZCML extra dependencies.
-1 from me. I see the test extra as a necessary evil to get us moving with the lessened-dependency project. Multiple extras will just cause an increasing number of combinations of packages which aren't tested anymore. If you have a extra in your package, it should be possible to move the added functionality from the extra into a package that depends on the original package.
b) pull out all ZCML implementations from where they are now and put them in special ZCML implementation packages. We could for instance have zcml.component, or zope.component_zcml, or zope.configuration.component. We had a bit of a side-tracked discussion about naming and namespace packages here.
c) pull out only those ZCML implementations that cause extra dependencies beyond zope.configuration. So, we extract the bits of zope.component into a new package, but we don't extract bits from zope.security.
+0 Seems reasonable to me. Hanno