HomeWildfire Games

Lint update: use arclint, remove JSHint, remove coala on CI.

Description

Lint update: use arclint, remove JSHint, remove coala on CI.

This runs linting using the "arc lint" command of arcanist, which notably gets run automatically as part of the arc diff workflow.

Changes:

  • The major change is that arc lint reports, by default, only issues on changed lines instead of changed files (--lintall changes that).
  • JSHint is largely redundant with eslint and does not support some of the new Javascript functionality that we are able to use in 0 A.D., such as conditional chaining, thus it is removed (of course, users can still run it manually).
  • Eslint 7 is supported out of the box and updated to ES 2020
  • cppcheck and eslint are optional - if the executable is not found (e.g. in PATH), it will fallback to a 'dummy' PHP script that does nothing. This has been tested on windows, mac and Debian (CI).
  • The licence year linter now suggests replacement, and has been rewritten as an arcanist linter.
  • Add a JSON error linter.

The intention is to have non-intrusive external linting, and largely the same text linting.

Coala has largely gone unmaintained in the past few years (more so than arcanist anyways) and installing it on modern Python is convoluted.

Differential Revision: https://code.wildfiregames.com/D3639

Event Timeline

Forgot to remove the coala/ folder, as svn doesn't do that on its own when it becomes empty.
I'll fix the commit once I've checked that everything else runs correctly.