Djblets 3.0 Beta 1 Release Notes¶
Release date: July 19, 2022
This release contains all bug fixes and features found in Djblets version 2.3.1.
Installation¶
To install this release, run the following:
$ sudo pip3 install \
-f https://downloads.reviewboard.org/betas/reviewboard/5.0-beta-1/ \
--pre -U Djblets
We do not recommend upgrading a production server with this version of Djblets. This version is still in development, and is not guaranteed to have API stability.
Packaging¶
Djblets 3.x supports Python 3.7-3.10.
Django 3.2.x is required.
cryptography 1.8.1+ is now required. This is a new dependency.
django-pipeline 2.0.8 - 2.0.x is required.
markdown 3.3.x is required.
For building packages, the following Node.JS package versions are now required:
less
4.1.3 - 4.1.xuglify-js
3.16.1 - 3.16.x@babel/cli
7.17.10 - 7.17.x@babel/core
7.18.5 - 7.18.x@babel/preset-env
7.18.2 - 7.18.xbabel-plugin-django-gettext
1.1.1 - 1.1.x
djblets.cache¶
Improved cache key normalization and hashing.
make_cache_key()
has been improved to more safely handle various special characters.Long cache keys are also now hashed using SHA256 instead of MD5, which is much less likely to encounter hash collisions.
Added support for encrypting cached data.
Several methods in this module now include
use_encryption
andencryption_key
arguments, which allows encrypting cache keys and values with AES.
djblets.conditions¶
Added
ConditionValueMultipleChoiceField
.This new condition choice field allows choices to present a multiple choice selector without being backed by a database query.
djblets.datagrid¶
The datagrid
load_extra_state()
method is now expected to return a list of the field names to save in the profile. Returning a boolean is deprecated, and support will be removed in Djblets 4.0.
djblets.extensions¶
Fixed the text of the instructions for reloading failed extensions.
When an extension fails to load, the management UI would show instructions for how to fix it. This included an out-of-date label for the button, which has been updated to reflect the correct text.
djblets.forms¶
Updated
ListEditWidget
to be able to handle any type of widget and form field.This form widget was previously limited to lists of strings. It now supports lists of any type of value.
djblets.secrets¶
The new djblets.secrets
module has been introduced to hold
utilities related to cryptography and secrets storage. Right now, this contains
djblets.secrets.crypto
, which has helpers for using AES
encryption.
djblets.siteconfig¶
Updated apply_django_settings()
to
migrate the old MemcachedCache
cache backend to the new PyMemcacheCache
one.
djblets.testing¶
Added
TestCase.assertQueries
for advanced query checking.This new test assertion builds on Django’s
django.test.TransactionTestCase.assertNumQueries()
to add checking for the content of the queries, not just the number that occurred. This makes it possible to write tests that catch when database queries are inadvertantly changed.
djblets.util¶
Fixed deprecation warnings when using the
thumbnail()
template tag with newer versions of the Pillow library.
djblets.webapi¶
WebAPIResponse
can now serialize data that includes Pythonset
values.
Contributors¶
Christian Hammond
David Trowbridge
Michelle Aubin