Jump to >

Djblets 0.5.8 Release Notes

Release date: March 27, 2010


  • Made many more speed improvements in the datagrids.

    This builds upon the previous set of improvements.

    We now parse and cache the cell and header templates before any rendering is done, instead of doing it once per cell.

    We also cache cells by their displayed content, so that two cells that would show the same rendered data will only render once. This is especially useful for cells showing such things as usernames.

    This can easily take seconds off the load of a heavy datagrid.

  • Objects in the datagrid with custom primary keys that aren’t named ‘id’ now work.

  • The Edit Columns icon is now a pencil instead of just “…’, making it easier to see it and figure out its purpose. (Bug #910)


  • The feedparser library is now only imported when needed. This reduces startup time for requests by as much as a quarter of a second, as feedparser is a very large library and takes time to import.

    This should improve performance for any site that at all lists djblets.feedview in INSTALLED_APPS, even for pages not making use of feedview.


  • The stale settings issue appears to be fixed in this release. It needs more testing in large deployments, but we’ve identified a couple cases that would cause this problem and have fixed them.
  • The mail authentication information is now saved as plain strings instead of unicode strings in order to fix a compatibility issue with Python 2.6’s HMAC library.
  • The SiteConfiguration’s settings field is now read-only in the Django administration UI in Django 1.2.


  • WebAPIErrors can now take HTTP status codes that will be sent to the browser. These default to 400, though the built-in errors may define different codes.

    This change does break backwards-compatibility if a client calling the API makes the assumption that every result with a payload will be an HTTP 200 OK. Clients shouldn’t make these assumptions, but it’s possible that they do.

  • Added support for Basic HTTP Authentication.

    Clients making a call when not logged in to a restricted URL will now get an HTTP 401 Unauthorized, along with a WWW-Authentication header specifying that Basic Auth is to be used.

    Clients can use standard Basic Auth to pass credentials to any URL requiring such authorization in order to log in. This removes the need for special login URLs.

    This makes APIs more accessible to applications like wget or curl.

  • Added an easy way to do pagination with the web API.

    API calls returning lists of data can now paginate the results, returning only a certain amount of data. The results and the total number of items across all pages will be returned.

    URLs are provided in the resulting JSON payload that point to the previous or next queries. Callers can pass a ‘start’ parameter to the URL to specify the first item’s index (0-based), and ‘max-results’ to specify the maximum number of items it wants in that request (which may be capped server-side).


  • Christian Hammond
  • David Trowbridge