Quick update:
- Items *1* (flake8 upgrade) and *2* (removing sub .flake8 files) are now
landed.
- Item *3* (blacklist) should land in the next week or two.
- Items *4-5* have no timeline yet.

On Fri, Feb 1, 2019 at 11:08 AM Andrew Halberstadt <a...@mozilla.com> wrote:

> Hi everyone,
>
> Just wanted to let you know of a few upcoming changes to our
> flake8 linter that I'm planning:
>
> *1. Upgrading flake8, pycodestyle and pyflakes*
>
> It's been awhile since we've bumped these tools. The upgrades
> will be:
> flake8: 3.5.0 -> 3.7.4
> pycodestyle: 2.3.1 -> 2.5.0
> pyflakes: 1.5.0 -> 2.1.0
>
> These updates add the following new error codes:
> F632, F633, F723, F811, E117, W504, W605, W606
>
> For their meanings see:
> http://flake8.pycqa.org/en/latest/user/error-codes.html
> http://pep8.readthedocs.io/en/latest/intro.html#configuration
>
> I plan to disable these new rules at first. They'll be separated
> via comment from the other intentionally disabled rules in the
> config.
>
>
>
> *2. Deprecating subdirectory .flake8 files (bug 1515746
> <https://bugzilla.mozilla.org/show_bug.cgi?id=1515746>)*
>
> There will be a single  canonical .flake8 file in the root of the
> repository. The main motivation for this is an implementation
> detail where this feature is preventing us from switching to a
> blacklist. But this will also simplify our configs and code, keep
> editor integrations in-line with |mach lint|, and improve perf.
>
> This is now possible because of flake8 3.7's new per-file-ignores
> <http://flake8.pycqa.org/en/latest/user/options.html#cmdoption-flake8-per-file-ignores>
> feature. This can be implemented without any change to how our
> current files are linted, i.e no source code will be modified as part
> of this change.
>
>
>
> *3. Switching to a blacklist (bug 1367092
> <https://bugzilla.mozilla.org/show_bug.cgi?id=1367092>)*
>
> Currently we register
> <https://searchfox.org/mozilla-central/source/tools/lint/flake8.yml#4>
> which files and directories should be linted.
> This is not ideal because any new code added outside of those
> directories will not be linted by default. Instead, we will define
> which paths *shouldn't* be linted. This will be possible thanks to
> the deprecation of subdirectory configs (it's a long story).
>
> As part of this process I intend to only exclude what is absolutely
> necessary (within reason). This means some .py files which had
> no issues but weren't being linted will start being linted. It also
> means new modules will automatically be linted.
>
>
>
> *4. Enabling flake8-isort (bug 1492495
> <https://bugzilla.mozilla.org/show_bug.cgi?id=1492495>)*
>
> Isort is a tool to format python imports, and flake8-isort is a shim
> to use it as a linter. I'm proposing flake8-isort over the more
> popular flake8-import-order because we'll get automatic fixing for
> free. Manually re-ordering imports is not something I think anyone
> should be subjected to.
>
> Isort is configurable, but the default is pretty close to what we
> unofficially tend to use anyway, namely:
>
> # stdlib imports
> import os
> import sys
> from collections import OrderedDict, defaultdict
>
> # external dependency imports
> import requests
> from mozprocess import ProcessHandler
>
> # internal imports
> import mymodule
> from . import name
>
> I think I'd like to enable this at the 'warning' level to start (so it
> doesn't cause backouts or show up without --warnings). This will
> give people a feel for the new syntax and allow us to start using
> --fix to re-order imports before making it a hard requirement.
>
> This item item is potentially controversial, so let me know if you
> have any objections to enabling this.
>
>
> *5. Mass enabling of rules*
>
> With flake8 + dependencies upgraded and flake8-isort installed,
> we'll have many new rules (which were all turned off by default) to
> triage and enable. Ideally this would all happen in a single massive
> commit similar to our format efforts in other languages. We would
> use the magic commit string to keep it out of git/hg blame.
>
>
> Not everything will happen all at once, the items at the top of the
> list will land before the items near the bottom. Let me know if you
> have any questions or objections!
>
> Cheers,
> Andrew
>
_______________________________________________
dev-builds mailing list
dev-builds@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to