• 
      

    Add a new, centralized reviewboard.wsgi module.

    Review Request #11473 — Created Feb. 16, 2021 and submitted

    Information

    Review Board
    release-3.0.x

    Reviewers

    Historically, we've shipped a reviewboard.wsgi file in the generated
    site directory, which could be passed to some WSGI implementations. This
    wasn't suitable for all, though, as some servers (like gunicorn) want an
    actual module path and not a standalone file on the filesystem.

    It was also bad for maintenance. We've already had to write patching
    logic in rb-site to update parts of this for Django 1.11 in
    release-4.0.x. Making more invasive changes down the road is even more
    work.

    Now we ship an actual importable reviewboard.wsgi module that contains
    all the setup. It only needs a REVIEWBOARD_SITEDIR environment
    variable to work, which can be set by a server.

    The generated htdocs/reviewboard.wsgi file is now simpler, just
    setting this variable and importing from the new reviewboard.wsgi.

    Since this is landing on release-3.0.x, no existing configurations
    will be updated. Things will continue working as-is. The plan is to
    update release-4.0.x to move existing configurations over to this
    module.

    Tested an Apache install with the old reviewboard.wsgi file forwarding
    to the reviewboard.wsgi module.

    Tested a Gunicorn install with the new reviewboard.wsgi module.

    Summary ID
    Add a new, centralized reviewboard.wsgi module.
    Historically, we've shipped a `reviewboard.wsgi` file in the generated site directory, which could be passed to some WSGI implementations. This wasn't suitable for all, though, as some servers (like gunicorn) want an actual module path and not a standalone file on the filesystem. It was also bad for maintenance. We've already had to write patching logic in `rb-site` to update parts of this for Django 1.11 in `release-4.0.x`. Making more invasive changes down the road is even more work. Now we ship an actual importable `reviewboard.wsgi` module that contains all the setup. It only needs a `REVIEWBOARD_SITEDIR` environment variable to work, which can be set by a server. The generated `htdocs/reviewboard.wsgi` file is now simpler, just setting this variable and importing from the new `reviewboard.wsgi`. Since this is landing on `release-3.0.x`, no existing configurations will be updated. Things will continue working as-is. The plan is to update `release-4.0.x` to move existing configurations over to this module.
    935cd204f7975bd886df67d66da98271104c8938
    Description From Last Updated

    Can you add a module docstring?

    daviddavid

    E402 module level import not at top of file

    reviewbotreviewbot
    Checks run (1 failed, 1 succeeded)
    flake8 failed.
    JSHint passed.

    flake8

    david
    1. 
        
    2. reviewboard/wsgi.py (Diff revision 1)
       
       
      Show all issues

      Can you add a module docstring?

    3. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-3.0.x (8f136fe)