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()
, andColumn.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 forrel_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