Jump to >

Djblets 2.3 Release Notes

Release date: February 8, 2022


  • Bumped the version of the packaging-only dependency babel to 7.x.

  • Bumped the version of the packaging-only dependency babel-plugin-dedent to 2.x (2.1+).


  • Added compatibility shims to allow Django 1.11 to work on Python 3.10.

    Python 3.10 removed some legacy imports in the collections module, which were still being used in Django 1.11. Now, so long as the djblets module is imported early enough, Django 1.11 will continue to work.

  • Updated all Djblets-provided Django middleware to work as old-style middleware or new-style middleware.

    This allows the middleware to be used in the old MIDDLEWARE_CLASSES setting, or in the modern MIDDLEWARE setting.

    Support for working as old-style middleware will be removed in Djblets 3.0.


  • Fixed cache_memoize() with values that don’t have a length.

    This fixes storing booleans, integers, and other such values as cached data without first having to cast to a string or store in a list.


  • Extensions can now provide modern Django middleware.

    Before, only legacy Django middleware were supported.

    Support for legacy middleware will be removed in Djblets 3.0.

  • Babel 7.x is now used for building ES6-compatible JavaScript in extensions.

    This shouldn’t impose any backwards-compatibility issues.

  • Added new extension state management capabilities for unit tests using ExtensionTestCaseMixin.

  • Fixed a crash with attempting to disable an extension with load errors.

  • Fixed extension state cleanup issues in unit tests using ExtensionTestCaseMixin.



  • Christian Hammond

  • David Trowbridge