• 
      

    Fix node_modules validation when building extensions.

    Review Request #11608 — Created May 20, 2021 and submitted

    Information

    Djblets
    release-2.x

    Reviewers

    When building extension packages against a production install of a
    consuming application, it was likely that a build_pipeline_settings()
    call in the app's settings.py would have path validation enabled,
    looking for node_modules, and that the validation would fail.

    In reality, we didn't care much about the presence of this path at this
    stage, since the packaging process would be managing its own
    node_modules. Rather than make the consuming app jump through hoops,
    we now have a special environment variable that can be set to force
    validation to be turned off. This mirrors the behavior of applications
    using Djblets pre-2.0.

    On top of this, we also explicitly define NODE_PATH to point to the
    managed copy, ensuring it will be used instead of another, and avoiding
    other lookup issues that could occur.

    Tested building extensions against both a Review Board development server
    and a production server.

    Tested both initial builds (without a pre-populated node_modules directory)
    and with a repeated build.

    Summary ID
    Fix node_modules validation when building extensions.
    When building extension packages against a production install of a consuming application, it was likely that a `build_pipeline_settings()` call in the app's `settings.py` would have path validation enabled, looking for `node_modules`, and that the validation would fail. In reality, we didn't care much about the presence of this path at this stage, since the packaging process would be managing its own `node_modules`. Rather than make the consuming app jump through hoops, we now have a special environment variable that can be set to force validation to be turned off. This mirrors the behavior of applications using Djblets pre-2.0. On top of this, we also explicitly define `NODE_PATH` to point to the managed copy, ensuring it will be used instead of another, and avoiding other lookup issues that could occur.
    06d24cf09ff0d9bf9271bf68124f43deaff23bd9
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (a154de8)
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-2.x (a154de8)