Fix Pipeline settings path validation for external node module paths.

Review Request #14816 — Created Feb. 12, 2026 and updated — Latest diff uploaded

Information

Djblets
release-5.x

Reviewers

We recently changed the way that we check whether babel, lessc, rollup
and uglifyjs binaries exist in the node modules path when building
Pipeline settings. We used to hard-code paths like
<node_modules_path>/.bin/rollup and check for their existence, but now
we use the npm exec command.

However, we invoke the command from the current working directory, when we
should actually be invoking it from the parent directory of the node
modules path.

This was made evident when trying to run Power Pack's unit tests. Power Pack
relies on Review Board's node modules, but since the npm exec command was
ran from the Power Pack repository, it was looking in Power Pack's node
modules instead of Review Board's.

This change fixes this so that the binaries are actually checked for in
the node modules paths, instead of the current working directory. If a
binary isn't found in any of the configured node module paths then we
raise the error.

  • Ran unit tests.
  • Was able to run Power Pack unit tests without hitting the
    ImproperlyConfigured error for rollup that I was hitting before.

Commits

Files