← Back to team overview

launchpad-dev team mailing list archive

Dependencies between packages (with pictures!)

 

Hello Launchpadders,

I got a bit distracted at the Soyuz mini-sprint today and decided to
finish a thing I started at the Wellington sprint in January: I want
to visualize the relationship between our top-level packages.

You might remember that we wanted their to be a clear dependency flow
between packages: e.g. lp.app -> lp.bugs -> lp.registry ->
lp.services. In this model, we'd have a very simple DAG for our
dependencies. You might also be aware that we are not there yet.

I thought it would be interesting to see how far away we are, and
maybe to have a way of getting a visual sense of any progress we make.

I've got a branch of Launchpad that tweaks the Makefile and adds new
targets 'lp-clustered.svg' and 'lp-clustered.dot' that will generate a
picture and graph data for Launchpad's import dependencies. The branch
is at:
    bzr branch lp:~jml/launchpad/visible-dependencies

I'm happy to talk about how this works and the decisions I made, but
this email is too long already.

To make the files, you'll need the *excellent* package "snakefood":
    sudo apt-get install snakefood
    http://furius.ca/snakefood/

To view the dot file, I would recommend using dotviewer from pypy. Get it with:
    svn co http://codespeak.net/svn/pypy/trunk/dotviewer

dotviewer depends on pygame:
    sudo apt-get install python-pygame

jml

Attachment: lp-clustered.svg
Description: image/svg

Attachment: lp-clustered.dot
Description: application/msword-template


Follow ups