Sprinting all the day long

Wow.

So the “official” Django sprint day is over, though (in my time zone, at least) work actually started yesterday and looks like it’ll keep on going into tomorrow. Already the amount of activity (as measured by the Trac timeline) is simply astounding, and that’s likely to continue; there have been about 150 commits so far, and I couldn’t even begin to count the number of patches that have been filed and the number of tickets which have been triaged.

I got a bit of a late start today and focused mostly on documentation issues; I spent the first part of the day working on a patch for ticket #4234 — documentation for django.contrib.contenttypes — and hopefully that’ll be ready to commit soon. I’ve long been a fan of the contenttypes app, and it’s always irked me that there’s no real documentation for some of the neat stuff it can do (aside from some model examples for generic relations). Aside from that I’ve put up about a dozen documentation patches, and done what I can to review a bunch more that were already in the tracker.

And I wasn’t the only one working on documentation; there’s a pretty busy changelog for the docs right now, with a ton of miscellaneous improvements and two entirely new sections:

Documentation for Django’s “shortcuts” module which, while currently containing only two functions, packs quite a punch.

Documentation for the form preview application that’s been added as part of the development of newforms . I highly recommend checking this one out, along with django.contrib.formtools which — as of right now — is still waiting to be properly documented.

In the broader world of Django development, the newforms-admin branch is getting a lot of love from several developers, and will, when finished, be a huge leap forward for Django; not only does it represent the decoupling of the admin application from various other bits of Django, it’s also driving a huge amount of innovation in the newforms library.

Attempts to fix ticket #3591 have yielded some fruitful ideas about ways to make the handling of “applications” a bit cleaner (Adrian’s suggestion of moving to a class for either INSTALLED_APPS or for the entries in it is particularly promising), and would clean up some strange things people have had to do to _meta.app_label in the past (e.g., manually assign it inside the Meta class in order to split models up across multiple files in a module).

Django’s translators have been busy, too; the last two days have seen updates to translation files for fifteen of the languages Django officially supports, plus the groundwork for a brand-new translation: Irish.

And, of course, there have been a huge number of smaller fixes and improvements. My favorite: render_to_response picked up an optional mimetype argument today, so you can now use it to directly return responses of types other than text/html (instead of manually altering the Content-Type header or instantiating your own HttpResponse ). Malcolm has been liveblogging the sprint (part 1, part 2), and brings up an interesting statistic: over one hundred and twenty tickets have been closed so far as part of the sprint. There are still a lot more open, but that’s a pretty big jump for such a short period and there are a whole lot more tickets waiting for final review and checkin now than there were forty-eight hours ago; we really ought to do this sort of thing more often.

And while it’s not technically an improvement to Django itself, it’s worth noting that Django now has a buildbot (heavy lifting was done by Matt and design by Christian), which is already easing the job of keeping an eye on the various configurations Django supports.