Tres Seaver wrote:
+100 to shedding the dependencies. Could we have the conditional import work as a fallback to a utility lookup? And then change 'zope.applicationcontrol' to register such a utility?
This should be possible, but the utility lookup would have to be conditional as well since it would have to target zope.app.applicationcontrol.interfaces.IApplicationControl which may not be available either after the dependency on zope.app.applicationcontrol has been lifted. OTOH, if the application controller were to be registered as a utility, should it stay importable from the module, at least for a transition period? If zope.app.applicationcontrol.applicationController was removed, would it be sufficient to adapt the zope.app.publication tests, or are there other packages expected to break in that case? Philosophically, when is it best to provide something like the application controller as a global utility and when is it sufficient to bind it to a name in a module? -- Thomas