[Zope-dev] extracting things out of zope.app.component
Hanno Schlichting
hannosch at hannosch.eu
Tue Jan 27 13:49:16 EST 2009
Martijn Faassen wrote:
> We're working (at a small Grok sprint) on refactoring bits of Zope to
> reduce the insane dependency relations that exist between some packages.
> The goal is a nice layered dependency structure for Zope 3 packages.
This is awesome news :)
I maintain dependency graphs for all zope packages included in Zope2
trunk at http://hannosch.eu/dependencies/zope/. Those should be correct
covering the state from yesterday before your release-marathon. But I
think the depdendencies didn't change for any of the packages I cover.
If you want to generate those yourself, to get an easy graphical way of
understanding the mess, then the following steps should get you there:
easy_install tl.eggdeps
Thanks Thomas! This parses the requires.txt in the egg_info folders. So
make sure they are updated after you edit any setup.py files. Run:
eggdeps -x -d zope.foo -i setuptools > zope.foo-full.dot
[-x ignores extras, -d specifies a dot file as output, -i ignores
setuptools]
In order to make the graphs more readable you can remove the transitive
dependency edges from the graph:
tred zope.foo-full.dot > zope.foo.dot
And finally produce a nice visual graph:
dot -Tjpeg zope.foo.dot > zope.foo.jpeg
[-Tsvg or -Tpng should work as well]
tred and dot are part of graphviz. If you happen to run Mac OS and use
MacPorts you need to install graphviz-devel instead of the graphviz port
for tred to work. In the latest stable graphviz port tred is broken.
Hanno
More information about the Zope-Dev
mailing list