Better handle dependency-related messages in and settings.

Review Request #9471 — Created Jan. 8, 2018 and submitted

Review Board

Since nearly the beginning, we've had check for required and
optional dependencies that could not be handled by the package's
dependency list, like git, cvs, etc. That code hasn't been updated much,
and had a lot of room for improvement. It also missed some of the more
recent mandatory dependencies.

This change fixes all this up, starting with adding dependency notices
for NodeJS, node_modules (and binaries within it), and removing some
legacy dependencies that are no longer worth checking for. The error
messages themselves have all been updated, giving some hints for
installation in order to help users deal with them.

The code for managing these dependency messages have moved from to This gives us a more formal (but
strictly internal) API for these types of checks, and lets us clean up a bit. Along with the cleanup of those functions, one
check (for determining if lives within a reviewboard
directory) has been removed, as it hasn't really been relevant since the
mid-1.0 days.

These dependency messages have a much nicer display, prefixing any
required dependency errors with "ERROR:" and any optional dependency
warnings with "WARNING:". The actual text is wrapped to fit on the
screen, aligning after the ERROR/WARNING prefix, and adding a blank line
between each, helping to read the new content.

Tested each of the dependency issues (by forcing the display of each).
Verified the display and that URLs were correct. Also verified that if
any are shown, the final text with the manual URL was displayed.

  • 0
  • 0
  • 1
  • 0
  • 1
Description From Last Updated
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.


  1. Ship It!
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-3.0.x (e41abd6)