Previously Dan Korostelev wrote:
I was looking at dependencies of various zope.* packages and see that some packages depend on other because of ZCML directives and some are not. For example:
The zope.app.catalog package depends on zope.app.component, but doesn't use it anywhere in non-testing code, however it does use the ``class`` directive, registered in zope.app.component.
While the zope.app.keyreference doesn't depend on zope.app.component at all, but uses ``class`` directive as well.
So, the question is: what's the common policy for that? Should we depend on packages that is used in ZCML or not? Or maybe ZCML-related dependencies should be in some extras_require, say "zcml"?
There is certainly precendence for that (zope.component and zope.i18n iirc).
Personally, I think, that extras_require way is a nice compromise for that. Because many of packages can be used greatly without ZCML configuration, but getting ZCML-reqired dependencies should be easy.
+1 Those zcml dependencies make it a lot more painful to use zope.* packages in other environments. Wichert. -- Wichert Akkerman <wichert@wiggy.net> It is simple to make things. http://www.wiggy.net/ It is hard to make things simple.