About

A Dependency Graph is a direct acyclic graph that represents the dependency relation between modules and is used to install dependency of dependency automatically.

Diamond Representation

dependency are generally stored in a tree format (ie the file system tree) and that's add a level of complexity to dependency manager because a direct acyclic graph allows a diamond relationship (ie two dependency of a dependency shares the same dependency)

For example:

  • when a library A depends on the libraries B and C,
  • and the libraries B and C depend together on D,

The dependency graph takes the form of a diamond .