Wednesday, June 21, 2006

Python development history by the numbers

Here are some more statistics and milestones in the history of Python development. One of the key events in the development was the migration of Python's CVS repository to SourceForge, which Guido announced on May 21, 2000. It represented the first time that people other than Guido's direct co-workers had direct access to the CVS repository.

At about the same time that Python started using SourceForge, Greg Wilson alerted us to the recently started Subversion project at We eventually started using Subversion five years later. Martin v. Loewis announced the migration on Oct. 19, 2005.

Given those couple of simple milestones, I wondered how many people had commit privileges for Python CVS over time. The Python Subversion/CVS history starts on Aug 9, 1990 and Guido remains the only committer until 1992 when Jack Jansen and Sjoerd Mullender start making changes. A small number of people got additional privileges over the years.
  • 1994: Barry Warsaw
  • 1995: Fred Drake and Roger Masse
  • 1997: Jeremy Hylton
  • 1998: Andrew Kuchling, Ken Manheimer, Greg Ward
  • 1999: Greg Stein, Just van Rossum
This list doesn't capture the people who were making contributions by sending patches. Tim Peters was making contributions from the early days. Many of my earlier checkins were adding code written by other people, including Andrew Kuchling's zlib improvements, Greg Ewing's extended call syntax patch, and Neil Schemenauer's garbage collection patches.

The migration to SourceForge allowed many more people to have access. There were nine committers in 1999 and 35 in 2000. The number grew to about 49 in 2004. This year 36 different people have made checkins.

We can also count the total number of checkins by year, which reflects the same kind of explosion of activity in 2000 when 26 new developers started committing code. The PythonLabs team (Barry, Fred, Guido, Tim, and I) were working full-time on Python for a good part of 2000, so that also contributed to the surge in developer activity.

The raw number of checkins per year was:
  • 1990: 105 checkins
  • 1991: 445 checkins
  • 1992: 627 checkins
  • 1993: 287 checkins
  • 1994: 578 checkins
  • 1995: 1249 checkins
  • 1996: 1544 checkins
  • 1997: 2159 checkins
  • 1998: 2718 checkins
  • 1999: 1897 checkins
  • 2000: 4035 checkins
  • 2001: 5508 checkins
  • 2002: 4238 checkins
  • 2003: 3563 checkins
  • 2004: 2529 checkins
  • 2005: 1273 checkins
  • 2006: 1599 checkins


Guido van Rossum said...

I'm curious where the checkins by Just and Greg in 1999 came from, since I doubt that CNRI would have let others access a CVS repository hosted there. Perhaps these are from other repositories that were merged in later?

I'm also curious about the dip in activity in 2005.

Nicholas Riley said...

It's a bit hard to directly compare Subversion and CVS checkins, as CVS checkins are per-file and Subversion's aren't. Maybe counting the number of files/lines changed * # of checkins might yield slightly more comparable numbers, if you aren't already doing this.

Jeremy Hylton said...

I thought the process of migrating a CVS repository to Subversion tried to combine checkins across multiple directories into a single Subversion record. I'll ask Martin v. Loewis whether that happend.

Jeremy Hylton said...

I was surprised to see Greg and Just in the checkin list in 1999. I wonder if Guido gave them special permission to login to his computer at work.

Just van Rossum said...

I remember getting access to Jack's MacPython repository, probably at CWI. MacPython got merged with the main Python repository at some point, so that could explain my "early" commits.