my configuration
$ cat .arclint
{ "linters": { "pylint": { "type": "pylint", "include": "(\\.py$)", "exclude": "(^DB/)" } } }
$ cat .arcconfig
{ "lint.engine": "ArcanistConfigurationDrivenLintEngine", "lint.pylint.codes.error": "^(E|F).*", "lint.pylint.codes.warning": "^(W|R).*", "lint.pylint.codes.advice": "^C.*", "unit.engine": "NoseTestEngine" }
From the latest pulled version of arcanist (7b61faa1927ece536edac2c81b2f8f35ac4ca4f6), running the following throws an exception
$ arc lint
Exception Linter 'pylint' specifies invalid type 'pylint'. Available linters are: csharp, chmod, filename, phutil-xhpast, xhpast, csslint, gjslint, coffeelint, cppcheck, cpplint, flake8, golint, jshint, jsonlint, lessc, pep8, phpcs, puppet-lint, pyflakes, ruby, scala-sbt, generated, merge-conflict, nolint, phutil-library, script-and-regex, spelling, text, xml. (Run with --trace for a full exception trace.)
I believe this is because src/lint/linter/ArcanistPyLintLinter.php is missing a getLinterConfigurationName function.
Indeed applying the following change fixes the problem:
diff --git a/src/lint/linter/ArcanistPyLintLinter.php b/src/lint/linter/ArcanistPyLintLinter.php index 9ce9202..ae77d51 100644 --- a/src/lint/linter/ArcanistPyLintLinter.php +++ b/src/lint/linter/ArcanistPyLintLinter.php @@ -199,6 +199,10 @@ final class ArcanistPyLintLinter extends ArcanistLinter { return 'PyLint'; } + public function getLinterConfigurationName() { + return 'pylint'; + } + private function getLinterVersion() {
If this is the correct solution could we please get this fixed on master?