User:Garbanzo/PacVis

PacVis Notes
PacVis is a tool from Arch that shows a tree of packages. I've been playing around hooking it to the Portage tree. Looks neat, it shows all of the links between my ~1000 installed packages.

depends on www-servers/torndado (i think that is all)

Changes made so far from PacVis
 * Hooked the installed tree from Poratage
 * Fixed a loop in the top down sort
 * Add search by partial package name
 * changed how cycles are handled
 * add new topology sort that handles cycles better
 * Show update previews (e.g. emerge -p @world)
 * Distinguish BDEPEND, DEPEND, etc

ToDos
 * Make ebuild
 * Show full Portage tree (will be too crowded? yes it will but may be interesting)
 * connect different versions of atoms of the same package
 * remove some Arch concepts (provides, optional deps)
 * fix bug that is restricting selected packages to a subset
 * display improvements
 * de-clutter
 * balance levels
 * reduce edge lengths
 * distinguish stable, testing, and live packages
 * display errors in the browser

Graph observations
Some things looking at my portage tree:

The graph is quite dense, the edges in the middle look solid until zoomed in pretty far.

Lots of cycles. The longest has over 300 packages, it'll be interesting to see how that improves excluding r/pdepends. The big cycles are hard to see, but the deps that cause the cycle can be seen. Many cycles only involve r/p deps.

@system packages have deps that are not in system

many package have deps on @system packages, i assumed those would be implied, maybe needs a specific version?

dev-ruby is typically on the bottom

the layout of emerge -e @world tree is somewhat different than the installed package. not sure if the difference is in the actual graph or just how it is layed out.

A draft of a wiki page
User:Garbanzo/PacVis_DraftPage