Authors: graph

Filed under: authors — Tags: , — admin @ 2:14 pm

Authors

We used data available from the CPANTS database to reconstruct the relationships between developers inside the CPAN.

Discussions

Nodes

A graph node is an author : a Perl developer having commited a distribution (a software library) to CPAN.
An edge is a relationship between two authors : one (or both) of these two authors relies on the package developed by the other.

Layout

We used a force-directed based layout algorithm on the graph. Each node is affected by a repulsion force by all other nodes, except for nodes having a connection with him (attraction force).
As a result, the stronger the relationship is (ie. more packages involved), the nearest the two authors will be.
Some special authors

The Modern Perl party

  • Developers from Moose, Catalyst, DBIx::Class..
  • In the upper left part – one can see Steven, Sartak, perigin, jrockway, mstrout, nothingmuch, marcus ramberg
  • jrockway / steven / nothingmuch form a small cluster

Downloads

These documents are all under the creative commons licence. You can open .gexf graph files with the opensource editor Gephi 0.6. These graphs contains only the “core” of CPAN.

Web Community : graph

Filed under: community — Tags: , , , — admin @ 2:11 pm

Static Javascript map

A static view of the cpan community. You can zoom-in with the mouse scroll. Click on the “fullscreen” icon.

Dynamic Flash map

thumb.community2b
This map allow searches and interactive exploration.

Downloads

Distributions : graph

Filed under: distributions — Tags: , , — admin @ 9:23 am

Distributions

We used data available from the CPANTS database to reconstruct the network of dependencies between packages inside the CPAN. After removing small independent sets, emerge the “core” of CPAN.

Discussions

We initialy used Graphviz Perl module to generate an hierarchical, butterfly-like view of the graph.

With this kind of representation, the package on which we focus is a trunk, dependencies are the roots, and other libraries which use the package are the leaves.
This is interesting, because Perl modules (like everything having a lifecycle) grow, evolve, and may die, or be recycled into another library.

But at the macro level, the full community appears as a complete ecosystem: a dynamic system in which each entity evolve with other species in order to adapt to their environment (other packages, industry tendencies, developers lifecycle..).
We believe that visualization and exploration of software repositories as large-scale dynamical networks is, and we hope to see similar initiatives in other softwares communities. We invite anybody interested in such network to download Gephi and the CPAN graph to create nice visualizations and discover interesting patterns!

Downloads