• 
      

    Add the beginnings of simpler dependency checking for tools.

    Review Request #11529 — Created March 16, 2021 and submitted — Latest diff uploaded

    Information

    ReviewBot
    release-3.0.x

    Reviewers

    Most tools have an executable they depend on. A command line tool or
    script that performs the actual checks. As part of worker startup, each
    tool's check_dependencies() is called in order to check that any and
    all command line tools were satisfied.

    This process was repetitive, and a bit flawed. A couple of tools needed
    manual configuration in order to find the tools, but assumptions were made
    about the presence of configuration keys in one of these cases, despite
    never making that a part of the default configuration. Other tools had
    no ability to customize the location of the command line script.

    This change introduces a new exe_dependencies attribute, which
    BaseTool.check_dependencies() will check. Each item will be checked
    both against a new exe_paths environment variable and against $PATH,
    allowing customization.

    If found on $PATH, the path will be placed back in exe_paths,
    allowing tools to directly look up the location. That both simplifies
    their code and avoids an implicit lookup on $PATH every time the tool
    is executed.

    Unit tests pass.

    Made changes to all the tools (not part of this change) and verified that
    dependency resolution worked correctly, and that results were cached.

    Commits

    Files