https://github.com/quchen/hackage-graph
A graph of the interdependencies of the packages of hackage.haskell.org.
https://github.com/quchen/hackage-graph
Last synced: about 2 months ago
JSON representation
A graph of the interdependencies of the packages of hackage.haskell.org.
- Host: GitHub
- URL: https://github.com/quchen/hackage-graph
- Owner: quchen
- Created: 2014-04-05T00:04:27.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2020-05-22T10:04:18.000Z (about 5 years ago)
- Last Synced: 2025-03-24T10:38:47.948Z (3 months ago)
- Language: Haskell
- Size: 17.5 MB
- Stars: 16
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
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`](out/) directory (18 MiB PNG), as well as the raw [`dot`][dot] file to
create it. (Visualization made with [Gephi][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`][main]), and generates data in [`dot`][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][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
```[cabal-db]: http://hackage.haskell.org/package/cabal-db
[dot]: https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29
[gephi]: https://gephi.org/
[travis]: https://travis-ci.org/quchen/hackage-graph
[main]: src/Main.hs