Jump to >

Djblets 0.8.14 Release Notes

Release date: January 6, 2015

djblets.cache

  • Fixed threading issues with ForwardingCacheBackend.

    In a multi-threaded environment, a thread could end up resetting the forwarded cache backend while another was attempting to access it, causing a conflict. This could result in incorrect data being returned, or a crash to occur, when load is heavy.

    We now have several safeguards to prevent problems in this situation.

djblets.datagrid

  • Added support for datagrids with alphanumeric pagination.

    A new AlphanumericDatagrid class has been added that uses an alphanumeric paginator. This allows for paginating by letters and numbers, instead of simply page numbers. That’s useful when paginating lists of users, for example.

    Patch by Ryan Done.

  • Added sandboxing for the Column subclasses.

    Column.render_data(), Column.render_cell(), Column.setup_state(), Column.get_sort_field(), and Column.augment_queryset() are now sandboxed, preventing any exceptions thrown within the methods from breaking the page. The exceptions will be captured and logged.

    Patch by Justin Maillet.

djblets.db

  • RelationCounterField now has a default value for rel_field_name, allowing it to be used in a database evolution.

    Patch by Barret Rennie.

djblets.extensions

  • The extension instance is now passed to signal callback handlers when using SignalHook.

    This instance is passed as an extension keyword argument to the handler function.

  • Added sandboxing for SignalHook.

    Signal callback functions attached via a SignalHook can now optionally be sandboxed, preventing any exceptions thrown within the callback from breaking the code emitting the signal. The exceptions will be captured and logged.

    This is the default behavior, but that behavior can be overridden by passing sandbox_errors=False.

    Patch by Justin Maillet.

  • Added sandboxing for TemplateHook.

    TemplateHook.applies_to() is now sandboxed, preventing any exceptions from breaking the page. They will instead be captured and logged.

    Patch by Justin Maillet.

djblets.urls.resolvers

  • Fixed threading issues with DynamicURLResolver.

    There were some occasional breakages that could happen in a multi-threaded environment that would break URL lookups on the root URL resolver, or in any child resolver.

Contributors

  • Barret Rennie
  • Christian Hammond
  • David Trowbridge
  • Justin Maillet
  • Ryan Done