[Update: We have finally published the complete report about OpenStack Folsom. Although the details mentioned here are still relevant, the numbers are much more complete and accurate in that final report.]
OpenStack is expected to release their next major version, codenamed Folsom, in a few days. To prepare for that release, we at Bitergia have performed an analysis on the development repositories of Folsom core projects (those that appear as “core projects” in the OpenStack Projects webpage plus the OpenStack Manuals project) with the aim of better understanding their release cycle since the last major release, back in early April. While we work on the final analysis, timed to get out when the new release is ready, you can have a look at a general preview of it, updated as of today.
Let’s start with some numbers. According to our data, during the five months and a half since the Essex release, the eight core projects composing OpenStack have been changed more than 3,400 times (number of commits), with those changes affecting more than 5,000 different files. These changes have been performed mostly by a core group of 62 developers, with a total of 283 developers making changes during this period. Those developers belong to 46 different companies.
Entering into details, we have structured the study in several sections: a general analysis of changes to source code and tickets, a per-project analysis, and a per-company analysis, complemented by a general summary. The study includes the evolution of several parameters (commits, developers, tickets open & closed, files touched, etc.) over the analyzed period. Most evolution charts are presenting metrics per week.
The rest of this post comments some of the data shown. You can have a look at it, and / or go straight to the full preview of the report. You can also have a look at our previous post, How companies are contributing to OpenStack, which showed some preliminary results, and explained a bit the methodology for the companies analysis. And stay tuned, our final report will be released when Folson is released…
The general overview page shows the general activity during the preparation of Folsom. Commits (times the code was changed), committers (developers) and files touched per week are good proxies to know about the activity of a project. In this case, we can see a general increase in activity as time passes and release time approaches. In the case of files touched, peaks in April and August are interesting: during those weeks, about 1,000 files were touched, compared to about 400-600 for most of the period. That usually means a lot of longitudinal activity (that spread over large areas of the project).
Movements in he issue tracking system (the ticketing system) are telling about activity as well. Ticket opening (which is usually more related to the community of engaged users) is somewhat uniform during the period, except for a clear fall during late June and early July. But ticket closing is different, with a general upward trend, and clear peaks of activity. This is usually more related to the reactive activity of the community of developers, and in this case shows (except for the peaks) a trend similar to that of changes in the source repository.
From another point of view, the analysis of tickets open and closed by project shows another angle of the inner life of OpenStack. For all projects, there are more tickets open than closed, but not all of them are equal. Nova is clearly getting much more attention (in terms both of openings and closings) than the rest of components.
The analysis of the activity by company shows, to some exstent, a picture of how they are contributing to make OpenStack real. Of course, commits (or committers / developers) offer only one perspective of contributions (a company may contribute in many other ways, and commits are by no means a uniform metric), but it can provide a first idea of how companies are behaving.
In this chart, which is a summary for this commit-based activity, not only the number of commits and committers is relevant. The relationship between both is also telling a story: as a general rule, the higher the ratio of commits to committers, the more intense the activity of those committers is (at least with respect of changes to the code). Of course, many factors affect the number of commits by committers, starting by personal preference on how to commit changes. But other things being equal, the number of commits and committers is telling, for example, whether a company has a small team of people focused in the project, or a large group with shallower participation.
[For more information about how to interpret the charts for companies, please refer to How companies are contributing to OpenStack (although for the data, the sutdy we're presenting here is more accurate)]
The section on projects show the different patterns and intensity of their corresponding activity. To begin with, it is important to notice that scales in the Y axis are absolute, of different magnitude. For example, the Nova project, above, has a graph for commits with a peak of about 200 commits per week,while the Keystone project has no more than 30 per week. The shape of the curves, the weeks where they have peaks or falls, etc. are telling how those projects have been developed, how many people have been contributing to them, and when, etc.
In summary, free / open source software projects, and specially those having large communities like OpenStack, are complex entities with their own life. And there are may facets to take into account when trying to understand them. We hope to shed some light (and numbers), that help to better track and improve what’s happening. Because you know, you cannot improve what you cannot measure…
[Final note: All the numbers included in this study could still have some errors, but they have already gone through a number of validations, and are correct to our best knowledge. This said, remember you can always download the datasets and do a parallel analysis, if you're interested. We have analyzed only the projects considered as core projects in the OpenStack Projects webpage: that means that activity (and people and companies) working in other parts of OpenStack, such as libraries, are not considered in this study.]