Chris Withers wrote at 2009-2-6 12:31 +0000:
...
I would find is very unintuitive when configuration were centralized (in subpackages of "zope.configuration") rather than modular.
Configuration belongs to the application or framework component that depends on this configuration not to any central component.
I would normally agree, but this isn't quite as simple as that. ZCML cuts across packages in that, if you use ZCML, you want the directives for all the packages you have installed.
At least, I want only the directives for the packages I have *really* installed. Think of the dependancy monster a common configuration package would be. And even when I have a package installed, I may not want its registrations (because they are inadequate for me and I want to provide my own).
If you don't use ZCML, you don't want any of the directives.
using --> to mean depends on, what we want is:
zope.configuration ^ | zcmlforpackagez --> packagex
...which frees up packagex to be used without any ZCML
Apparently, you treat "zope.configuration" as a namespace package and you will never install "zope.configuration" as a whole but only the lower packages -- that might work. Nevertheless, I find it highly unintuitive to rip of the configuration and put it at a completely different place. Package names of the form "packagex" and "packagex_zcml" seem far more intuitive for me. Note that below "zope.configuration" you have to retain the namepaces of your packages to avoid name conflicts and provide a homogenous map between package and its configuration package. You would get subpackages "zope.configuration.zope.proxy", "zope.configuration.z3c.XXXX".... Nasty.... -- Dieter