• 
      

    Update the General Settings form to improve cache backend configuration.

    Review Request #11066 — Created July 4, 2020 and submitted

    Information

    Review Board
    release-4.0.x

    Reviewers

    This change modernizes the General Settings page a bit, focusing on the
    cache backend settings. We don't have pluggable cache backends, like we
    do with many other parts of the product, so the General Settings page
    has traditionally managed the settings for memcached, file-based cache,
    and local memory cache in a pretty hard-coded way, and this didn't work
    well with browser-side validation.

    The cache backend configurations are now managed by their own forms, and
    registered in a central place. This doesn't give us pluggable backends,
    but it's a step toward allowing that in the future without having to
    revisit all of this code.

    This leaves the main form without all the hard-coded mappings and
    constants, leaving all knowledge of explicit cache backends to the
    registration dictionary. It also lets us use the new subform support to
    manage the display and validation of the correct form for the selected
    cache backend.

    Since this is being changed anyway, some tweaks were made to help guide
    users and prevent issues. The "Local Memory" cache backend is now only
    enabled for development (non-PRODUCTION) installs, rather than being
    keyed off by the DEBUG setting. This prevents it from showing up if an
    install has been flipped to debug mode.

    The option for the memcached backend now lists "(recommended)" after it,
    giving users a hint that they should probably choose that rather than
    the file cache backend.

    There's also a tweak to a template location, to fix the path that's
    referred to by Djblets for some of the fieldset rendering.

    With all this, the General Settings page should now be complete and
    operational for Review Board 4.0.

    Tested loading and saving all of the cache backends in the General
    Settings page, verifying the results in each case.

    Summary ID
    Update the General Settings form to improve cache backend configuration.
    This change modernizes the General Settings page a bit, focusing on the cache backend settings. We don't have pluggable cache backends, like we do with many other parts of the product, so the General Settings page has traditionally managed the settings for memcached, file-based cache, and local memory cache in a pretty hard-coded way, and this didn't work well with browser-side validation. The cache backend configurations are now managed by their own forms, and registered in a central place. This doesn't give us pluggable backends, but it's a step toward allowing that in the future without having to revisit all of this code. This leaves the main form without all the hard-coded mappings and constants, leaving all knowledge of explicit cache backends to the registration dictionary. It also lets us use the new subform support to manage the display and validation of the correct form for the selected cache backend. Since this is being changed anyway, some tweaks were made to help guide users and prevent issues. The "Local Memory" cache backend is now only enabled for development (non-`PRODUCTION`) installs, rather than being keyed off by the `DEBUG` setting. This prevents it from showing up if an install has been flipped to debug mode. The option for the memcached backend now lists "(recommended)" after it, giving users a hint that they should probably choose that rather than the file cache backend. With all this, the General Settings page should now be complete and operational for Review Board 4.0.
    722878f43ba62ab687c83c3fc35e42e0b1ad910c
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-4.0.x (f6e833f)