Update JSHint for new tool support and more reliable output parsing.

Review Request #11550 — Created March 23, 2021 and submitted

Information

ReviewBot
release-3.0.x

Reviewers

This updates JSHintTool to subclass the newer BaseTool, and to use
the newer features it offers (dependencies, improved configurable file
extension handling, and centralized base command building, and
standardized error code/column output).

The new version of the tool also passes a custom JSHint reporter that
returns simple JSON output containing only the information we need for
reporting. This eases parsing considerably, as we can guarantee that any
of the information we use for comments will be completely accurate.

Unit tests were added to cover the new JSHint parsing, and to provide
integration tests. These currently require doing a npm install jshint
in the bot/ directory to run.

Unit tests pass on Python 2.7 and 3.x.

Manually tested the jshint tool with the custom reporter, and parsed
using that data.

There are plans to add integration tests for tools down the road, but
that will require some additional work.

Summary ID
Update JSHint for new tool support and more reliable output parsing.
This updates `JSHintTool` to subclass the newer `BaseTool`, and to use the newer features it offers (dependencies, improved configurable file extension handling, and centralized base command building, and standardized error code/column output). The new version of the tool also passes a custom JSHint reporter that returns simple JSON output containing only the information we need for reporting. This eases parsing considerably, as we can guarantee that any of the information we use for comments will be completely accurate. Unit tests were added to cover the new JSHint parsing, and to provide integration tests. These currently require doing a `npm install jshint` in the `bot/` directory to run.
a99d58287c5beb692890b5dd8709d9f9c48f511d
chipx86
david
  1. Ship It!
  2. 
      
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-3.0.x (888840a)