views:

268

answers:

2

I wrote a tool for find dependency relationships behind a Python project. It is Gluttony. I run it on Plone, the result is impressive. I output the diagram with Networkx, and it looks like this:

Dependency diagram of Plone, output by Networkx (Gee! It looks like World of Goo!)

A mess! I didn't handle layout with Networkx. That's why it is a mess. The tool can output Graphviz format file. I tried to render the diagram with dot command. I use command like this:

dot -Kdot -Tpng -oplone plone.dot

I got a huge image after long running, but the result seems wrong. I can't see anything on the result image. It looks like a white paper, nothing on it. What's wrong? Is the diagram too big to render? What should I do for rendering such a huge complex diagram?

I can get correct result from other small diagram, like this one: Dependency diagram of sprox

Even a much bigger diagram can be rendered correctly, let's see the diagram of TurboGears2

I think it should be fun to see the dependency relationship of such monster project like Plone. Also it is useful for researching. Unfortunately, I can't output diagram correctly. Cold someone help me out? Thanks.

Here is the Graphviz format file of Plone: plone.dot

+1  A: 

If you can produce an image: Graphviz tends to create huge files. Zoom in.

For me graphviz regularly crashes on your file. It seems to max out on 32 kPixels per side and your file would be larger, resulting in an integer overflow.

Try splitting the file up into multiple sub-graphs (Additional points for using graph algorithms for finding good separation points).

Update:

I threw up a quick script to split dot files. It's not perfect, but it works reasonable.

ebo
+2  A: 

The command dot plone.dot -Tsvg > plone.svg renders this scalable vecor graphic:

alt text

I can open the .svg file fine in Inkscape and zoom in till 100%.

BioGeek