All Projects → quchen → hackage-graph

quchen / hackage-graph

Licence: other
A graph of the interdependencies of the packages of hackage.haskell.org.

Programming Languages

haskell
3896 projects

Graph of Hackage packages

The goal of this package is making the graph of Hackage package dependencies available.

The program is very much hacked together with only that goal only in mind, so the code is fairly ugly (but short enough so it doesn’t matter).

Taking only the dependencies of the latest version of each package are taken into account and ignoring packages with two or less dependencies and base, here is what Hackage looked like at the time of creation:

A higher resolution that includes package names image is available in the out directory (18 MiB PNG), as well as the raw dot file to create it. (Visualization made with Gephi.)

Since there are lots of dependencies going all over the place, the graph is mostly a giant blob. To extract useful information from it probably requires special focus in an appropriate program.

Usage

The rather program reads the locally stored package database 00-index.tar from a hardcoded location (in Main.hs), and generates data in dot format to represent all packages and which packages they depend on. The result is written to STDOUT, ready to be plotted with GraphViz compatible tools such as Gephi.

(There is another program to include a giant .cabal file that makes the core of the acme-everything package, but that’s just a joke and nobody should ever use it.)

To build and run from scratch, proceed as usual:

stack build --exec hackage-graph-as-dot > output.dot
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].