Drupal 8 By Git Commit

Drupal 8 By Git Commit

Drupal, an open source content management system, has grown into one of the largest open source projects actively maintained today (by some measures). From its humble beginnings as a dorm-room community project, it's since grown into one of the go-to content management platforms for some of the world's largest companies, governments, institutions, and other organizations.

For this, and many other reasons, members of the Drupal community have grown concerned about the extent to which control over the destiny of the project is exerted by large, corporate entities. Community member and Acquia employee xjm took a deeper look at influence in Drupal8 recently, enumerating the challenges faced in attempting to quantify corporate influence in the Drupal community.

In an effort to provide more transparency over who makes changes to Drupal, I've created a visualization that attempts to map contributions over time. There's no tie-in yet to corporate affiliations of contributors, but it does provide a window into direct, code-level changes to the upcoming release of Drupal in a meaningful, digestible way.

An introduction to the viz

The following interactive visualization is built on metadata pulled from the core Drupal project's git version control repository--in particular, commits to the 8.0.x branch--from March 2011, when the branch was created, to March 9th, 2015. On its own, git only provides us with limited data: date, committer, and commit message; but additional metadata has been parsed from the commit messages, including a "contributor set" (all persons who contributed to the committed code) as well as an associated issue #. Data was pulled from the Drupal core git repository like so:

git log --pretty=format:'"%h","%an","%aD","%s",' --no-merges --since "march 2011" > ~/d8-commits.csv

Naturally, this visualization only shows direct code contributions to Drupal, and does not track contributions in the form of: documentation, mentoring, etc. However, it at least provides an interesting window, and perhaps some level of transparency, into the version control repository, an otherwise difficult thing to understand.

Interacting with this visualization

Use the filters and search box at the top to filter all charts in the visualization. Clicking anywhere in the bar chart or tree map will filter things down in the dashboard as well.

Click into rows in the commits table at the bottom to easily jump to the commit itself (and view the diff) or open the associated issue.

Note there have been other efforts to track similar contribution numbers, including drupalcores.com. Numbers may differ based on how "contributor" is defined vs. "commit mentions," and other data cleanliness issues.

DrupalCon Amsterdam sprint image courtesy Boris Baldinger.