User-level configuration generated probably something close to one fifth of the legitimate bug reports we received (I'm not including the people complaining about the behaviour of a check because those are probably something like 60% of all issues).

Flake8 3.x and earlier merged configuration files because Flake8 1 and 2 were built on top of pycodestyle which has the same logic. Flattening configuration in this way led to severe confusion and meant no two people working on the same codebase would have the same output.

--show-config was more-or-less implemented in our verbose logging which did it's best to help people understand the provenance of the various options.

In the end, project configuration is the most consistent way of providing people a good experience with Flake8. It means that people will all see the same results from the same version of the tool as the configuration is part of the project. As you've already found, there's nothing preventing you from specifically using whatever other configuration file you want.

I lived with the nightmare of managing and merging user configuration for nearly a decade. I'm not going back to that sheer and utter misery. It's not worth it to me. I'm not going to continue to justify it either

On Tue, Nov 2, 2021 at 2:46 AM Georges Gouriten <georges.gouriten@gmail.com> wrote:

I see.

I don't really understand the logic though.

From what I read, user were confused, what exactly were they confused by?
Was it not knowing which configuration file was loaded (project or user)?
Or not knowing at all if a config file was loaded?

In those cases, did you think of something like a --show-config option to display the loaded config file, or a message at flake8 execution mentioning the config file loaded?

To me, those would seem a better option than removing a useful feature.

Regards

On Mon, Nov 01, 2021 at 12:25:18PM -0500, Ian Stapleton Cordasco wrote:
> No, it will not read a user file. It was explicitly removed in 4.0
> https://flake8.pycqa.org/en/latest/release-notes/4.0.0.html#backwards-incompatible-changes
>
> On Mon, Nov 1, 2021 at 12:24 PM Georges Gouriten <georges.gouriten@gmail.com>
> wrote:
>
> > Hello,
> >
> > I am using flake8 and I could not find a way to use a configuration file
> > at user level.
> >
> > What I read in the documentation is a way to have a project configuration
> > file:
> > https://flake8.pycqa.org/en/latest/user/configuration.html
> >
> > But I could not find anything about having a ~/.config/flake8 or something
> > like that.
> >
> > Is it something that could be implemented?
> >
> > So far, I use a bash script when needed:
> > flake8 --config ~/.config/flake8 "$@"
> >
> > But I would rather have flake8 implementing a hierarchical check for
> > project file then user file, I would not need to manually pick if I run
> > flake8 directly or my bash script.
> >
> > Regards
> >
> > _______________________________________________
> > code-quality mailing list -- code-quality@python.org
> > To unsubscribe send an email to code-quality-leave@python.org
> > https://mail.python.org/mailman3/lists/code-quality.python.org/
> > Member address: graffatcolmingov@gmail.com
> >