Dependencies within Cacophony
Dependencies within Cacophony
Posted by Jeff Disher
Dependencies within Cacophony
I recently wrote a little script to scrape the Cacophony source files to find patterns between the packages, based on imports. These relationships are then passed into dot to render as a graph.

This is what the system looked like, when I first wrote the script (commit c826216f77ea5db7fd27976c7ea6ec3715f1368d), and I don't like the look of it. There is clearly a lack of structure as there are too many cyclic dependencies and the low-level data and high-level components are just mixed together all over ("ROOT" should be at the top and "types" should be at the bottom).

One of the main reasons to do this is to make the code easier to explain, from a top-down perspective. It also gives me a sense of what it would feel like to try to walk through the code. In this shape, it would be clearly difficult to even tell where to begin (the main entry-point is in ROOT, but then what?).

I will make another post with the shape after a bunch of changes with the description of what changed.

Jeff.