Since now we aren't just using ESLint in the context of a pull request
(with pronto-eslint), we're also adding the `ignorePatterns` option so
it ignores third-party files.
Note we're using ESLint 8 because ESLint 9 doesn't support our
`.eslintrc` configuration file, which we need because it's required by
pronto-eslint. However, when running pronto-eslint, we're using ESLint 6
(I think); this means that now the eslint command we run in development
and the one run by pronto might behave differently, particularly if we
add rules that have been introduced in ESLint 7 or 8. For now, since we
generated the `.eslintrc` file using ESLint 6.0.1, everything works as
expected in both situations.
The pronto-eslint gem depends on the eslintrb gem, which uses a very old
version of ESLint which doesn't support some of the rules we use.
The most useful rules here were no-tabs and func-call-spacing. It's a
shame they were added to ESLint just one month after eslintrb stopped
being maintained.
pronto-eslint depends on eslintrb, which expects the `.eslintrc` file
in JSON format. So we're migrating the `.eslintrc.yml` file to JSON and
introducing a symbolic link so the `.eslintrc` file points to
`.eslintrc.json`.
We could also use pronto-eslint_npm, but unfortunately it's not
maintained anymore and the latest version is not compatible with Pronto
0.11.