On Wed, Jan 12, 2022 at 9:33 AM Xavier Morel via code-quality <
code-quality@python.org> wrote:

> Hello,
>
> Sorry for the bother but I had a question about balancing personal and
> project uses of flake8: on a project we're trying to progressively
> introduce flake8 (so enabling a subset of all checks on a subset of all
> files).
>
> We tried adding a config doing via "select" and "ignore" in the existing
> setup.cfg, however this turned out to break a lot of people's linting,
> as their editor simply ran flake8 in the default configuration and they
> used that for their contributions (even though it was not checked
> project-wide).
>
> Looking further into this, it looks like recent versions of flake8 have
> "extend-ignore" and "extend-select" to avoid breaking things locally,
> however there are a few issues I don't know how to fix, or whose
> semantics is not clear:
>
> - according to the documentation, CLI values have the highest priority,
>    but how does that work with select versus extend-select? Is `--select`
>    used as the baseline then `extend-select` from the configuration files
>    gets added to that?
>

No this means that what you specify on the CLI will override whatever is in
the configuration file. You can specify `--extend-select` on the CLI as
well. Think of it like this:

There's a default list of ignores and select so you have some code that
looks vaguely like:

select = ["E", "F", "W", "C"]
ignore = [...]

Then when you specify extend-select we do

select.append(extend_select)

Whereas if you use select in your config file we're doing

select = user_specified_select  # cli or config

So if you have extend-select in your config, and then specify --select on
the CLI, we'll still follow that algorithm.


> - is `--select ''` the proper way to deselect everything?
>

As in you only want to report the things you've selected? Yes.


> - is there a way to make exclusions error-specific, or is an other
>    workaround necessary to add large sections of the project to
>    exclusions for the CI, but not prevent linting for people?
>

I don't know what you mean. I'm going to take a guess though,

You want to ignore errors from specific files? There's per-file-ignores you
can specify in your config (or on the CLI) to do just that. That will
affect everyone though if you put it in the config, so changing how you run
flake8 for CI would mean needing to specify that.

Also, it's worth thinking about the fact that you can tell Flake8 which
config file to read, so you _could_ tell it to read a different file for CI


>
> Regards,
>
> Xavier
> _______________________________________________
> code-quality mailing list -- code-quality@python.org
> To unsubscribe send an email to code-quality-le...@python.org
> https://mail.python.org/mailman3/lists/code-quality.python.org/
> Member address: graffatcolmin...@gmail.com
>
_______________________________________________
code-quality mailing list -- code-quality@python.org
To unsubscribe send an email to code-quality-le...@python.org
https://mail.python.org/mailman3/lists/code-quality.python.org/
Member address: arch...@mail-archive.com

Reply via email to