• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. Djblets
    2. Djblets 3.1 Release Notes
  • Home
  • Djblets 5.2.1 Release Notes
  • Djblets 5.2 Release Notes
  • Djblets 5.1.1 Release Notes
  • Djblets 5.1 Release Notes
  • Djblets 5.0.2 Release Notes
  • Djblets 5.0.1 Release Notes
  • Djblets 5.0 Release Notes
  • Djblets 4.0 Release Notes
  • Djblets 4.0 Beta 3 Release Notes
  • Djblets 4.0 Beta 2 Release Notes
  • Djblets 4.0 Beta 1 Release Notes
  • Djblets 3.3 Release Notes
  • Djblets 3.2 Release Notes
  • Djblets 3.1 Release Notes
  • Djblets 3.0 Release Notes
  • Djblets 3.0 RC 1 Release Notes
  • Djblets 3.0 Beta 2 Release Notes
  • Djblets 3.0 Beta 1 Release Notes
  • Djblets 2.3.4 Release Notes
  • Djblets 2.3.3 Release Notes
  • Djblets 2.3.2 Release Notes
  • Djblets 2.3.1 Release Notes
  • Djblets 2.3 Release Notes
  • Djblets 2.2.3 Release Notes
  • Djblets 2.2.2 Release Notes
  • Djblets 2.2.1 Release Notes
  • Djblets 2.2 Release Notes
  • Djblets 2.1.1 Release Notes
  • Djblets 2.1 Release Notes
  • Djblets 2.0 Release Notes
  • Djblets 1.0.18 Release Notes
  • Djblets 1.0.17 Release Notes
  • Djblets 1.0.16 Release Notes
  • Djblets 1.0.15 Release Notes
  • Djblets 1.0.14 Release Notes
  • Djblets 1.0.13 Release Notes
  • Djblets 1.0.12 Release Notes
  • Djblets 1.0.11 Release Notes
  • Djblets 1.0.10 Release Notes
  • Djblets 1.0.9 Release Notes
  • Djblets 1.0.8 Release Notes
  • Djblets 1.0.7 Release Notes
  • Djblets 1.0.6 Release Notes
  • Djblets 1.0.5 Release Notes
  • Djblets 1.0.4 Release Notes
  • Djblets 1.0.3 Release Notes
  • Djblets 1.0.2 Release Notes
  • Djblets 1.0.1 Release Notes
  • Djblets 1.0 Release Notes
  • Djblets 1.0 RC 1 Release Notes
  • Djblets 0.10 Beta 2 Release Notes
  • Djblets 0.10 Beta 1 Release Notes
  • Djblets 0.9.9 Release Notes
  • Djblets 0.9.8 Release Notes
  • Djblets 0.9.7 Release Notes
  • Djblets 0.9.6 Release Notes
  • Djblets 0.9.5 Release Notes
  • Djblets 0.9.4 Release Notes
  • Djblets 0.9.3 Release Notes
  • Djblets 0.9.2 Release Notes
  • Djblets 0.9.1 Release Notes
  • Djblets 0.9 Release Notes
  • Djblets 0.9 RC 1 Release Notes
  • Djblets 0.9 Beta 2 Release Notes
  • Djblets 0.9 Beta 1 Release Notes
  • Djblets 0.8.29 Release Notes
  • Djblets 0.8.28 Release Notes
  • Djblets 0.8.27 Release Notes
  • Djblets 0.8.26 Release Notes
  • Djblets 0.8.25 Release Notes
  • Djblets 0.8.24 Release Notes
  • Djblets 0.8.23 Release Notes
  • Djblets 0.8.22 Release Notes
  • Djblets 0.8.21 Release Notes
  • Djblets 0.8.20 Release Notes
  • Djblets 0.8.19 Release Notes
  • Djblets 0.8.18 Release Notes
  • Djblets 0.8.17 Release Notes
  • Djblets 0.8.16 Release Notes
  • Djblets 0.8.15 Release Notes
  • Djblets 0.8.14 Release Notes
  • Djblets 0.8.13 Release Notes
  • Djblets 0.8.12 Release Notes
  • Djblets 0.8.11 Release Notes
  • Djblets 0.8.10 Release Notes
  • Djblets 0.8.9 Release Notes
  • Djblets 0.8.8 Release Notes
  • Djblets 0.8.7 Release Notes
  • Djblets 0.8.6 Release Notes
  • Djblets 0.8.5 Release Notes
  • Djblets 0.8.4 Release Notes
  • Djblets 0.8.3 Release Notes
  • Djblets 0.8.2 Release Notes
  • Djblets 0.8.1 Release Notes
  • Djblets 0.8 Release Notes
  • Djblets 0.8 RC 2 Release Notes
  • Djblets 0.8 RC 1 Release Notes
  • Djblets 0.8 Beta 3 Release Notes
  • Djblets 0.8 Beta 2 Release Notes
  • Djblets 0.8 Beta 1 Release Notes
  • Djblets 0.8 Alpha 2 Release Notes
  • Djblets 0.8 Alpha 1 Release Notes
  • Djblets 0.7.33 Release Notes
  • Djblets 0.7.32 Release Notes
  • Djblets 0.7.31 Release Notes
  • Djblets 0.7.30 Release Notes
  • Djblets 0.7.29 Release Notes
  • Djblets 0.7.28 Release Notes
  • Djblets 0.7.27 Release Notes
  • Djblets 0.7.26 Release Notes
  • Djblets 0.7.25 Release Notes
  • Djblets 0.7.24 Release Notes
  • Djblets 0.7.23 Release Notes
  • Djblets 0.7.22 Release Notes
  • Djblets 0.7.21 Release Notes
  • Djblets 0.7.20 Release Notes
  • Djblets 0.7.19 Release Notes
  • Djblets 0.7.18 Release Notes
  • Djblets 0.7.17 Release Notes
  • Djblets 0.7.16 Release Notes
  • Djblets 0.7.15 Release Notes
  • Djblets 0.7.14 Release Notes
  • Djblets 0.7.13 Release Notes
  • Djblets 0.7.12 Release Notes
  • Djblets 0.7.11 Release Notes
  • Djblets 0.7.10 Release Notes
  • Djblets 0.7.9 Release Notes
  • Djblets 0.7.8 Release Notes
  • Djblets 0.7.7 Release Notes
  • Djblets 0.7.6 Release Notes
  • Djblets 0.7.5 Release Notes
  • Djblets 0.7.4 Release Notes
  • Djblets 0.7.3 Release Notes
  • Djblets 0.7.2 Release Notes
  • Djblets 0.7.1 Release Notes
  • Djblets 0.7 Release Notes
  • Djblets 0.6.31 Release Notes
  • Djblets 0.6.30 Release Notes
  • Djblets 0.6.29 Release Notes
  • Djblets 0.6.28 Release Notes
  • Djblets 0.6.27 Release Notes
  • Djblets 0.6.26 Release Notes
  • Djblets 0.6.25 Release Notes
  • Djblets 0.6.24 Release Notes
  • Djblets 0.6.23 Release Notes
  • Djblets 0.6.22 Release Notes
  • Djblets 0.6.21 Release Notes
  • Djblets 0.6.20 Release Notes
  • Djblets 0.6.19 Release Notes
  • Djblets 0.6.18 Release Notes
  • Djblets 0.6.17 Release Notes
  • Djblets 0.6.16 Release Notes
  • Djblets 0.6.15 Release Notes
  • Djblets 0.6.14 Release Notes
  • Djblets 0.6.13 Release Notes
  • Djblets 0.6.12 Release Notes
  • Djblets 0.6.11 Release Notes
  • Djblets 0.6.10 Release Notes
  • Djblets 0.6.9 Release Notes
  • Djblets 0.6.8 Release Notes
  • Djblets 0.6.7 Release Notes
  • Djblets 0.6.6 Release Notes
  • Djblets 0.6.5 Release Notes
  • Djblets 0.6.4 Release Notes
  • Djblets 0.6.3 Release Notes
  • Djblets 0.6.2 Release Notes
  • Djblets 0.6.1 Release Notes
  • Djblets 0.6 Release Notes
  • Djblets 0.5.9 Release Notes
  • Djblets 0.5.8 Release Notes
  • Djblets 0.5.7 Release Notes
  • Djblets 0.5.6 Release Notes
  • Djblets 0.5.5 Release Notes
  • Djblets 0.5.4 Release Notes
  • Djblets 0.5.3 Release Notes
  • Djblets 0.5.2 Release Notes
  • Djblets 0.5.1 Release Notes
  • Djblets 0.5 Release Notes
  • Djblets 0.5 RC 2 Release Notes
  • Djblets 0.5 RC 1 Release Notes
  • Djblets 0.5 Beta 1 Release Notes
  • Djblets 0.5 Alpha 3 Release Notes
  • Djblets 0.5 Alpha 2 Release Notes
  • Release Notes
  • Djblets 3.1 Release Notes¶

    Release date: November 1, 2022

    Packaging¶

    • typing_extensions 4.4.x or higher is required.

    djblets.registries¶

    • Added Python type hints for the whole module.

    • Registries can now specify their item type using Python’s type generics.

      This allows a subclass to benefit from type hints, helping IDEs and type checkers ensure code interfacing with the registry is written correctly.

      Simply subclass using the following form:

      class MyRegistry(Registry[MyItemType]):
          ...
      
    • Added Registry.get_or_none(), which returns None if the item is not present in the registry.

      It’s now recommended that consumers use this instead of using ExceptionFreeGetterMixin, in order to ensure consistency in the behavior of get().

    djblets.secrets¶

    • Added Python type hints for the whole module.

    • Added support for deprecated tokens.

      Token generators can now be marked as deprecated by setting settings.DJBLETS_DEPRECATED_TOKEN_GENERATORS to a set of token generator IDs.

      This can help with phasing out API tokens or other forms of tokens. The API support has been updated to make use of this.

    • Fixed a generation problem with API tokens created in Djblets 3.0.

      These tokens use a Base62-encoding, but the character set used was wrong. This led to tokens that weren’t exactly Base62.

      This is fixed in this release, and only affects consumers looking to validate tokens through custom code. Djblets still considers these tokens valid.

    djblets.siteconfig¶

    • Added Python type hints for the whole module.

    djblets.webapi¶

    • Added support for customizing URI template names.

      The new WebAPIResource.uri_template_name and WebAPIResource.uri_template_name_plural attributes can be used to specify the names for the root resource’s URI template mapping.

      These default to the resource’s standard names, as before.

    • Added enforcement of unique URI template names.

      URI template names must now be unique. This is enforced when building the API resource tree. A conflict will log when settings.DEBUG is True, or raise an error if False.

      This may affect existing consumers that were silently getting conflicts between different resources, with different mappings on different versions of Python.

    • Added BaseWebAPIToken.is_deprecated() to check if a stored token is deprecated.

    • API requests made with deprecated API tokens now contain a X-API-Token-Deprecated HTTP header containing a message to display.

    Contributors¶

    • Christian Hammond

    • David Trowbridge

    • Michelle Aubin

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • Packaging
    • djblets.registries
    • djblets.secrets
    • djblets.siteconfig
    • djblets.webapi
    • Contributors