[Zope-dev] zope.app.publication dependencies (volunteersneeded!)
Martijn Faassen
faassen at startifact.com
Tue May 19 09:26:48 EDT 2009
Michael Howitz wrote:
> Am 15.05.2009 um 13:30 schrieb Martijn Faassen:
> [...]
>> Cool. It would seem to make sense that the named template mechanism is
>> bundled along with the page template library anyway (instead of the
>> form
>> library). zope.formlib currently depends on zope.app.pagetemplate
>> too so
>> we could easily leave a backwards compatibility import in place.
>
>
> Done. Moved namedtemplate to zope.app.pagetemplate and made new
> releases of
> zope.app.pagetemplate
> zope.formlib
>
> Also cut the dependency of zope.app.publication on zope.app.exception
> by moving ISystemErrorView to zope.browser. Released:
> zope.browser
> zope.app.exception
> zope.app.publication
Very cool, thanks very much for doing this work!
Looking at the new dependency cycle graphs again. This is the before:
http://startifact.com/depgraphs/zope_app_publisher_cycles.svg
And this is the after:
http://startifact.com/depgraphs/zope_app_publisher_cycles2.svg
zope.app.exception is now taken from the graph (good!)
Somehow a direct cyclical dependency between zope.app.publication and
zope.app.publication now exists where there wasn't any before.
zope.app.publication now depends on zope.app.publisher and it didn't do
so in the past. Ah, it looks like this was actually a missing dependency
which got added about 6 weeks ago. We need to get rid of it...
Let's continue with the other refactoring:
It looks like we still need to lose the dependency of zope.app.publisher
on zope.app.component, or alternatively (or in addition) lose the
dependency on zope.app.component on zope.formlib and zope.app.security.
The zope.app.security dependency turns out to be only a test dependency,
so I just made it such.
zope.app.component is starting to look pretty empty. I can see three
things still going on in it:
* some browser views in zope.app.component.browser. These are to support
the ZMI and can stay where they are.
* the registration of the zope:view and zope:resource directives. I'm
not sure what these are for, as we have browser:view and
browser:resource. Perhaps these can be safely lifted into
zope.app.publisher, which defines the browser:* varieties
* the code in zope.app.component vocabularies. This is support code to
create vocabularies for utilities. It depends on zope.interface,
zope.component and zope.schema, and zope.app.interface.
It might be sensible to move this vocabulary stuff (along with the one
in zope.app.interface that we depend on) into a package called
zope.componentvocabulary. We can jettison zope.app.component then.
zope.componentvocabulary would depend on zope.schema, zope.component,
zope.interface and zope.security only.
We can then make zope.app.publisher depend on zope.componentvocabulary
and lose the zope.formlib dependency, along with the zope.app.security
dependency.
Anyone wants to work on zope.componentvocabulary? It'd contain
zope.app.component.vocabulary + surrounding tests, and
zope.app.interface's vocabulary that it depends on.
Regards,
Martijn
More information about the Zope-Dev
mailing list