Wednesday, March 23, 2005

Sprint status reports

The sprinters gave brief reports on their work at a session just before lunch today. This session was a last minute addition to the schedule, and I arrived most of the way through Ted Leung's talk on the Chandler sprint. I mentioned the distutils sprint in a previous post.

What is a sprint?
A sprint is a focused development session, in which developers pair in a room and focus on building a particular subsystem. A sprint is organized with a coach leading the session. The coach sets the agenda, tracks activities, and keeps the development moving. The developers work in pairs using XP's pair programming approach.
Barry Warsaw talked about the Mailman 3 sprint. He recommends SQLObject as an object-relational mapping that allows you to write your classes in idiomatic Python. SQLObject generates SQL code automatically.

There were several Zope-related sprints. Jim Fulton reported on some ZODB and Zope work. Tim Peters and Christian Theune added blob support to ZODB and ZEO. Zope had problems handling large files (like multi-MB source code distributions) -- performance and memory consumption were big problems. The blob support basically puts large object on the local filesystem and integrates regular file modifications with the transaction machinery. Christian also did some basic code maintenance on ZODB.

Garrett Smith and Babu (? didn't catch his last name) made some great improvements to the pluggable authentication mechanism in Zope3.

Michael Bernstein and Andy Dustman spent several days writing a weblog application for Zope3. There are basic blog posts and Atom feeds. It took a long time because they used the Dublic Core metadata in the add and update mechanism for post. It was hard to get the schema working correctly. It was hard to get into adapters and interfaces. The resulting code ended up being small, but they had to delete a lot of code. "Zope 3 is a lot easier to read than it is to write."

Mike McLay reported on a sprint involving students from three different Arlington county high schools. (Two different schools use Python as a teaching language.) They worked on a school tool
application; they did more design than writing code. They are updating an old-style Zope application to use page templates and an external backend database. They learned about SQLObject at the sprint, from the Mailman group, and started using it.

Brett Cannon, author of the python-dev summaries for the last two years, worked on the AST branch for a few days. The big goal of the sprint was to document the design for the Python compiler. I started the AST branch a couple of years ago, but never wrote a proper design
doc. John Ehrseman is working on decorators, and Nick Coghlan is working (from his home) on generator expressions. It sounds like the work to upgrade the branch to Python 2.4 is nearly complete. What's left is the rather tedious work of testing and verifying that error handling is correct. It looks like the basic design document is in good shape, though.

I didn't catch the details of the PyPy sprint, except that they got the pickle tests running and uncovered some problems with the implementation of new-style classes. New-style classes are largely undocumented, so this isn't much of a surprise. The pickle support is deeply integrated with new-style classes, because pickle needs to create and initialize objects (including immutable objects) and introspects on them to discover the object state. Several people of the PyPy project have observed that their implementation of new-style classes is sufficiently high level that it could be the good starting point for a specification; it's easier to read the intent of the Python code than it is of the C code.

No comments: