A Review of Activity on the Swift Github Repo
The following is a review of the Swift Programming Language recently open sourced by Apple using the gitstats utility and the freely available Github Activity charts.
Generated: 2015–12–14 21:34:08 (in 225 seconds)
Report Period: 2010–07–17 16:50:59 to 2015–12–14 21:12:49
Age: 1,978 days, 1,438 active days (72.70%)
Total Files: 9,744
Total Lines of Code: 1,045,060 (2,768,677 added, 1,723,617 removed)
Total Commits: 29,925 (average 20.8 commits per active day, 15.1 per all days)
Authors: 259 (average 115.5 commits per author)
Clearly, this is a very active project for Apple and it’s 259 contributors. With the exception of the typical lulls during July 4th, Thanksgiving, and Christmas holidays, the activity is pretty consistent week-to-week. In the past three weeks, the spike in commits is amazing to see. Apple must be thrilled with this activity, though a non-trivial amount of activity appears to be external contributors catching typos. Here’s a word cloud from titles of the past 7 days of merged commits:
Hour of the Day
The daily pattern here is pretty typical of modern, distributed development teams, if maybe a little later in the afternoon than a typical company-supported project. It might be interesting to plot commits by hour to this to see if key hours of the day shifted over time.
Commits by Day of the Week
Whoa! Are there that many commits happening on the weekend? Of course this is influenced by late Friday night work trickling into Saturday morning, but I was surprised to see the Sunday activity being roughly 30% of the peak day (Thursday).
Month of the Year
As mentioned above, US holidays had an obvious productivity impact on the contributions to the Swift repository, with June and November being popular months to take vacations. That’s my theory, anyway. One wonders if the productivity of a given software project of this scale could be improved by hiring programmers in countries with inverse holiday patterns to US. 😉
Commits by Year
This is clearly a healthy and active project within Apple. What’s interesting to consider is how the language activity since mid-2014 flattened to ~175–200 commits per week. This might be an indicator that “there’s only so much to be done” or that there was a specific constraint being invoked by Apple to control the amount of change, which would be a curious hypothesis considering that they have more talented and capable C++ and Swift programmers than any organization in the world.
Commits by Timezone
Safe to assume here that most of the contributors to Swift do so from Cupertino. This will now likely shift over time as contributors not based in California begin to contribute to the platform.
Chris Lattner is clearly “Neo” to the Swift Language’s “Matrix”. Other names in this list are all key Apple engineers including Doug Gregor, Joe Groff, Dmitri Hrybenko, Jordan Rose, Michael Gottesman, Dave Abrahams, John McCall, Nadav Rotem, and Mark Lacey.
Lines of Code by Author
Commits by Author
The best visualizations for contributors comes on the Github Contributors summary page.
Commits by Domain
Nothing surprising here with 97% of commits coming from Apple employees.
Lines of Code Over Time
Just your typical 1M+ line of code project growing smoothly over time. What will be really interesting will be to see whether open sourcing the application will result in a commensurate increase in the number of lines of code or if the size code will be kept in check.
Number of Files Over Time
Again, a fairly smooth growth curve, save for the bump in December 2014 which appears to be massive activity from Doug Gregor relating to Clang Importer.
The Swift Programming Language consists almost entirely of C++ and Swift, which consists primarily of code in the test folder.
That’s it! I love reviewing code bases using gitstats and the charts in Github (which are getting better and better, BTW) and was curious to break down Swift. I hope you thought this was interesting…