It’s been a while since I did a Git repo visualisation, which means I am definitely overdue to talk about the Habitat community. In this blog post I will show-off the main repos for Habitat (at least the main ones I have been hanging out in) and describe what I have found.
Getting At The Code
I’ve been involved with Habitat for a few months now. I have been lucky in that my work with Habitat coincided with ChefConf, which gave me the opportunity to meet community members face-to-face. But had I not been to ChefConf, how might I gain an understanding for who the high-bus-factor contributors are?
In step the now-famous1 blue blobs.
The Habitat project lives on Github spread across 14 repos. The most active projects are “habitat” (the main codebase of the Habitat application) and “core-plans” (the repository of build-from-source packages providing the dependencies for your application).
Without further ado, here’s the blue blobs for Habitat (click to enlarge):
I’ve been staring at these blue blob visualisations for years now. As a result I think the things that I find interesting in them has become somewhat esoteric over time. That said, this visualisation has all the hallmarks I expect of a new project:
- A period where only a few crucial individual get things kicked-off;
- Followed by a period of recruiting one-time-only contributors;
- Finally the start of a longer-term community.
So what’s so interesting in here? Let’s start with Adam Jacob. Adam appears to have worked alone on Habitat for a whole 4 months before he was joined by someone else. I assume Habitat was not some super-secret project for him, but it is very interesting that it was 4 months before someone else joined in.
The other thing that is interesting here is the influence of Chef: “contributors”2 such as “Delivery Server” and “The Friendly Habitat Sentinels” speak to the presence of bots doing useful things around the project. If this was a “pure community effort” these would not typically appear until much later in the lifetime of the project. The overall “blueness” of this visualisation is quite low; something I’d expect of a newish project. What is interesting, is that the people who are contributing over extend periods are also contributing lots (darker shades of blue). Many of these contributors are, of course, employees of Chef.
The core-plans repo3 contains commonly-required build/run-time dependencies for the applications that Habitat users are packaging. You know, like gcc. I suspect we are more likely-to find non-Chef-employee contributions in this repo.
At least my own contributions are a little more apparent!
The most striking thing here is the distribution of effort. There is a reasonable amount of blue in that chart and it is nicely distributed across many contributors. This is the mark of a healthy community effort. Of course, the most frequent contributors are Chefs.
Of course there is a lot more to the Habitat community than simply what happens inside Git. Of particular note are:
- The Habitat Community slack channel
- The Community page which includes suggestions of tasks to work on and a visualisation of the overall roadmap.
As always there is a huge amount of caveats attached to use of the blue blobs; most notably, way more happens within a community than simply what we see in Git. That said, these visualisations are a good way for finding out who are the key contributors to a community. Particularly useful knowledge when you reach out for help for the first time.
Like I have done for other communities in the past I’ll roll out some annual updates like this for Habitat. Of course, for day-to-day community management, something a little more robust is required.
Work is already in place for that and you can bet I’ll be writing about it when it is all in place.