* 2009-10-09 13:59, Martijn Faassen wrote:
I propose we create a new zope.componentzcml package that contains the zope.component.zcml code. This package is *optionally* dependent on zope.security as well as zope.proxy. It should work with just a dependency on zope.i18nmessageid and zope.configuration. We should figure out a way to test out both situations somehow. Ideas?
zope.component's dependencies are: install_requires=['setuptools', 'zope.interface', 'zope.event', ], The extra dependencies are: extras_require = dict( hook = ['zope.hookable'], persistentregistry = ['ZODB3'], zcml = ['zope.configuration', 'zope.security', 'zope.proxy', 'zope.i18nmessageid', ], test = ['ZODB3', 'zope.testing', 'zope.hookable', 'zope.location', ], docs = ['z3c.recipe.sphinxdoc'], ), Considering that we are not really getting rid of all the extras, instead of creating a new package I'd rather make the dependency on zope.security and zope.proxy optional in zope.component: it is possible to do it with conditional imports, and we are not breaking any application already depending on zope.component[zcml], unless they need zope.security but they are not directly depending on it (which is bad and wrong, in any case). Note that we are already using conditional imports in zope.component._api. Anyway, I'm fine with what Martijn proposed if nobody else supports my idea. Best regards, Fabio