Thursday, January 27, 2011

It Takes a Village...

There are a lot of reasons someone might want to start an open source software project.  You may be motivated by idealistic notions like freedom (as in both "free speech" and "free beer"), contribution to a community, and the desire for higher quality software due to the many eyes that scrutinize the code.  Or, you could be motivated by more base desires like reputation, influence and the potential for paid work.  Whatever the motivation though, it's clear that to truly achieve any of these goals you need people to take notice.  You need users.  You need a community.

Another thing that has become clear to me over the past six months or so is that one of the best ways to build a community for an open source project is to host it on github.com.  I'm not really sure why this is true.  The underlying git DVCS system is certainly very powerful and efficient but it also can be cryptic and unintuitive at times.  It could be the very distributed nature of git and github but there are other DVCS out there with hosted, centralized master repos.  They are all good but they don't seem to be as good at motivating people to participate as github.  Maybe github have just hit on just the right combination of power, flexibility and gee-whiz GUI.  Whatever the reason, the results for the boto project have been pretty amazing so far.

In the six months we have been on github.com (our first commit there was on July 12th, 2010), we have:
  • 290 people watching the boto repository.
  • 66 people who have forked, or copied, the repository to allow them to experiment on their own.
  • 61 pull requests, which are the culmination of those experiments in forked repositories.  They are basically people asking to have their local modifications merged with the main boto repository.  Thus far 50 have been closed, 11 are still open.
  • 340 commits to the repository by 35 different contributors.  That's about 1.7 commits per day.  Commits have ranged from single line typo fixes to entire new boto modules.
  • Major contributions from Google in support of their Google Storage service.
  • 11495 downloads of packaged boto releases from our Google code project page.
  • 35978 downloads of just the 2.0b3 packaged release from pypi.python.org, the Python package index
  • 42,420 visits (124,278 page views) by 10,734 unique visitors to our Google project page and 13,620 views of our github project page in the last 90 days.
  • I received three, count them three, unsolicited contributions for a boto module to support the new Simple Email Service from AWS within 24 hours of the services announcement.
I'm not suggesting that all of this is due to github.  It certainly helps that boto provides an interface to a very popular set of cloud-based services in a very popular programming language.  But github has clearly been a factor in building the community and increasing contributions.

So, thanks github and thanks to the boto community.  I also want to take this opportunity to thank the my colleagues and the management team at Eucalyptus Systems for supporting me in my efforts to support the boto community.  It really underscores their commitment to open source software.