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