Weblog

January archive

Django 0.95.1 released

January 21, 2007

We've just rolled out Django 0.95.1, a new minor release of Django which includes fixes for several bugs discovered in the original 0.95 release; 0.95.1 includes:

  • A patch for a small security vulnerability in the script Django's internationalization system uses to compile translation files (changeset 4360 in the "0.95-bugfixes" branch).
  • A fix for a bug in Django's authentication middleware which could cause apparent "caching" of a logged-in user (changeset 4361).
  • A patch which disables debugging mode in the flup FastCGI package Django uses to launch its FastCGI server, which prevents tracebacks from bubbling up during production use (changeset 4363).

It's recommended that anyone using the official 0.95 release upgrade to 0.95.1 to get these fixes, or apply the patches from the changesets linked above.

New ticket system workflow

January 18, 2007

As Django has grown popular and more people have been submitting feature ideas and bug reports, we've had problems scaling our human resources to handle the extra workload. Helpful bug reports got lost in the Great Sea of Tickets, which was frustrating to both contributors and maintainers.

Fortunately, we hope to have fixed that.

As of yesterday evening, we've completely revamped our ticket workflow, along with the software we use to manage it. We spent some time discussing the issues over the past week, and yesterday Jacob installed a brand-new version of Trac, our bug-tracking software, and customized it to fit the optimized ticket workflow we came up with.

What's changed? First, if you've submitted a ticket in the past, you'll notice that the "Create New Ticket" page is much simpler. We've removed the fields that we weren't using and cleaned up the layout a bit.

Next, we changed the functionality of the existing-ticket page, adding fields such as "Needs documentation," "Has patch" and "Needs tests." These new fields are much more in-line with our ticket triage process.

From now on, every new ticket will be categorized according to these criteria by our new ticket managers (more on them in a bit), entering the workflow described on our ticket triage page. In short: a ticket comes in and a ticket manager assesses it as either "accepted," "invalid/worksforme" or "requires a design decision." If it's accepted, we'll keep track of the three essential parts of a solution -- a patch, documentation and unit tests. Once those three parts have been submitted and meet our standards, the ticket will be marked as "ready for checkin."

We've got a fancy new diagram that explains this whole process.

This new process has a multitude of advantages. Ticket submitters get much more detailed (and quicker) feedback about the status of their tickets. Committers get more helpful reports about exactly which tickets are ready to be looked at. People looking to help out with small tasks can now access useful reports -- e.g., tickets needing unit tests or tickets needing documentation -- for a clear list of where they can chip in.

The whole process is much more in line with the workflow we've adapted over the past year, and I suspect our ticket responsiveness will improve greatly.

The last, most important, piece of the puzzle, is that we now have official ticket managers, a group of volunteers who work together to manage ticket metadata and otherwise streamline the process. Although anyone can -- and is encouraged to -- help out keeping tickets organized, these folks have volunteered to take ownership of the ticket tracker in the long term. Please welcome Chris Beaven (SmileyChris), Simon Greenhill, Michael Radziej and Gary Wilson!

Quote of the day

January 10, 2007

I love this quote from Scott Gilbertson at Wired.com:

Django is a framework built on Python that you can use to build a Content Management System or a blogging tool, but it is not limited to that. In fact Django reminds me a bit of the character in Airplane who always answers the “what do you make of that?” question literally… Why, I can make a hat or a brooch or a pterodactyl…

You’d be hard pressed to find something in the world of web development that Django can’t make.

Django at PyCon

January 2, 2007

It's that time of year again!

PyCon 2007 is is rapidly approaching with an amazing line-up of talks on all sorts of Python-related topics. If you've got the opportunity, I highly recommend going. The conference is a steal at $195 ($125 for students) if you register before January 15th.

Of course, there's also a large array of Django-oriented activities at PyCon; here's a list of the (officially planned) activities (in chronological order):

  • On Feb 22nd (the tutorial day) I (Jacob) will be teaching back-to-back three-hour Django tutorials. The morning tutorial is an introduction to Django designed for anyone interested in getting started with Django.

    After lunch, I'll move on to an advanced Django tutorial, covering a lot of what goes on under the hood. Anyone who knows Django and wants to dig deeper should really enjoy this one. You can, of course, sign up for both.

    (I should point out by way of disclaimer that I get a bit of money for each person who attends one of my tutorials. I'd promote them here anyway, of course, but full disclosure is the best policy and all that.)

  • During the conference proper, I'll be talking about the lessons in Open Source development that we've learned in 18 months of running the Django project. It's been an amazing ride, and we've all learned a huge amount about what it means to be involved in Open Source.

    This talk is tentatively scheduled for Saturday (Feb. 25th), but the schedule is still being finalized so that date may change.

  • There's also a web frameworks panel planned for Friday (Feb. 24th) afternoon. Titus Brown plans to bring together developers from the many Python web frameworks; I'm really looking forward to seeing all these different points of views.

  • Finally, we'll again hold a Django sprint in the four days following the conference (Feb. 26th through Mar. 1st). If you've never attending a sprint before, you can read more about sprinting on the PyCon wiki; essentially sprints are a focused development session wherein a bunch of developers gather in a room and bang out code.

    We've not yet decided on what we'll focus on during the sprint, but if you're interested in getting involved in Django development (or if you're involved already), we'd be happy to have you! I'll probably give an informal "how to contribute to Django" session on the first day of the sprint for anyone who's interested.

I hope to see a bunch of Djangonauts there. I've been to PyCon for the last couple of years, and it's always been fantastic, and I can see from the line-up of talks that this year will be no exception.

Remember to register before Jan. 15th if you want to save sixty bucks!