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)