Breaking Down Git Activity of the Swift Programming Language

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.

The Vitals

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)

Weekly Activity

Commits by Week for Past 32 Weeks, GitStats

Commits by Week for Past 52 Weeks, Github

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

Commits by Hour of the Day, Gitstats

Activity by Hour, Github

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

Commits over Time for Entire Report Period, Gitstats

Commits over Time since July 2010, Github

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

Commits by Timezone of Contributor

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.

Top Authors


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.

Language Mix


The Swift Programming Language consists almost entirely of C++ and Swift, which consists primarily of code in the test folder.

Summary

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…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.