• 
      

    Fix working with site directories containing custom commands.

    Review Request #11615 — Created May 24, 2021 and submitted

    Information

    Review Board
    release-4.0.x

    Reviewers

    Review Board 4.0 regressed working with site directories containing
    custom commands. There were two problems:

    1. The usage of exec() no longer worked, since we introduced a nested
      function within the same function calling that. Turns out this isn't
      legal in Python.

    2. Our method of injecting custom commands no longer worked.

    To fix this, we now have a new self-contained method responsible for
    grabbing the custom command. We then run it by using newer support for
    providing custom command classes to run (which does require that we
    create a specialized subclass of ManagementUtility).

    With this, we should have a more future-proof way of loading custom
    commands.

    Created a site directory with custom commands and reproduced the failure
    condition. Tested that the new code worked on Python 2.7 and 3.x.

    Verified that standard commands continued to work, and that both standard
    and custom commands also continued to show the correct help output.

    Summary ID
    Fix working with site directories containing custom commands.
    Review Board 4.0 regressed working with site directories containing custom commands. There were two problems: 1. The usage of `exec()` no longer worked, since we introduced a nested function within the same function calling that. Turns out this isn't legal in Python. 2. Our method of injecting custom commands no longer worked. To fix this, we now have a new self-contained method responsible for grabbing the custom command. We then run it by using newer support for providing custom command classes to run (which does require that we create a specialized subclass of `ManagementUtility`). With this, we should have a more future-proof way of loading custom commands.
    7350a4a9071072942e99ff6a9e443f68ac80fcee
    chipx86
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-4.0.x (8fc5e4e)