Thursday, May 25, 2006

Contributing to Python

I did not get involved in Python development until I'd been at CNRI for a couple of years. If I look at the Python history file and CVS/SVN logs, I did make a single checkin until 1997. My first projects were the resource module and improvements to the zlib/gzip interface.

The resource module exposes the Unix getrusage/setrusage system calls. I created it when we were working on the Knowbot system, because we wanted to be able to limit the resource consumption of hosted programs (Knowbots). I don't recall that we ever made much progress on the resource consumption problem, though. Anyway, this was my first contribution to Python, but I see that I gave it to Guido and he checked it in for me after some editing. I was a fairly novice C programmer at the time.

The other project I worked on at that time was improvements to the zlib interface. These represent my first actual checkins--in the summer and fall of 1997. I can't recall how much of the working was original. Andrew Kuchling had done a lot of work in this area and wrote the original gzip module. Since no one outside CNRI had CVS access, I was checking in Andrew's code. But I think I made some original contributions here, too.

I'll see if I can think of more stories from early development projects. For now, I'll just summarize the raw data from the CVS/SVN log. I have made 931 checkins to the Python project. By year, the breakdown is
  • 1997, 10 checkins
  • 1998, 15 checkins
  • 1999, 11 checkins
  • 2000, 212 checkins
  • 2001, 376 checkins
  • 2002, 157 checkins
  • 2003, 117 checkins
  • 2004, 18 checkins
  • 2005, 8 checkins
  • 2006, 18 checkins
It's no surprise that 2000 and 2001 were my most active years. PythonLabs joined BeOpen in 2000 and we spent a few months working almost full-time on Python development. I was release manager for Python 1.6 and Python 2.0, which was a whole lot of fun. The numbers are probably a little inflated from that time, because we didn't have open CVS access in early 2000.

No comments: