In the current pylint handling, the only way to use an alternative
config is to explicitly pass it with the "--rcfile" flag, which is
confusingly inconsistent with normal pylint config file resolution.
This change allows local pylintrc files or PYLINTRC env var to override
the default depot_tools config, which is often desirable to enforce
different style guidelines for different projects.
For reference, the config file search order[1] is:
1) File specified by the "--rcfile" flag
2) pylintrc in the CWD
3) .pylintrc in the CWD
4) first pylintrc found up the python module hierarchy, if CWD is in
a module hierarchy
5) $PYLINTRC env var
6) $HOME/.pylintrc
7) $HOME/.config/pylintrc
8) /etc/pylintrc (or equivalent on other platforms)
- 1-5 will take precedence over the new depot_tools default.
- If there is no match for 1-5 and there is no PYLINTRC env var,
depot_tools will set PYLINTRC to its default and that will be used.
- If there is no match for 1-5 and the PYLINTRC env var is empty, then
it will fall through to 6-8.
[1] Newer pylints have additional options, but these are the options,
and the order, common to all versions of depot_tools pylint.
Change-Id: Ib725b15bb639dc9c7cb9009fd3b504124e0c1f2a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2708749
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Commit-Queue: Michael Moss <mmoss@chromium.org>
This allows people to pin a specific version of pylint when running
it. The default behavior is unchanged: we run pylint-1.5.6 still
as we've created a vpython wheel in cipd for it. But for projects
that want to move to a newer version, they can pick any of the new
1.x wrappers. Having the full set of versions here allows projects
to incrementally move to newer versions as the lint delta between
1.5 & 1.6 tends to be much smaller than 1.5 & 1.9.
We don't include support for the newer 2.x series as those only
support Python 3 which the codebase isn't ready for.
Bug: 866772
Test: `./pylint ...` still works & shows pylint-1.5
Test: `./pylint-1.5 ...` runs the v1.5 version
Test: `./pylint-1.8 ...` runs the v1.8 version
Change-Id: I7c47187493564db81e3eb28c6dbd09e6309ead46
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1752507
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>