> Back to everyone's favorite topic - coding style and
> that style.
And I thought we were doing so great by leaving it behind...
> I'm not picking on Josef here - I'm sure I've submitted code recently
> with lint errors, this was just the review I was looking at which
> triggered the idea:
As I already mentioned in the review, the way how Phab displays lint errors is a problem
in this particular case - the diff is hard to read. That is something I'd like to
avoid in the future.
> Since the last discussion about coding style ended in a long discussion
> about PEP8, the bits we may not like about the standard and the
> exceptions that we'd want, I'm proposing that we use strict PEP8 with
> almost no exceptions.
The big hammer solution! ;-)
> I'm not saying that that PEP8 is perfect or
> that there aren't parts of it I would like to tweak but
> - it's a well known standard, easy for non-regular contributors to
> understand and use
> - style checking tools tend to use PEP8 out of the box
> - if we don't allow exceptions, there will be less time spent on
> discussing details instead of being productive :)
The opposite is true for me. My experience with lint warnings in Phab (before we loosened
the rules) is that I spent a considerable time rewriting and reformatting the code until
the damn linter finally shut up (I'd probably need stronger words to demonstrate my
temper at that time:)). Also it made the code slightly less readable sometimes (a personal
view), which annoyed me. I lose no productivity on seeing an occasional lint warning in
diff review (D389 is a slight exception in a very long time).
That being said, I try to minimize the number of lint warnings with my every patch, unless
I consider that specific rule particularly braindead.
> To be more specific, I am proposing the following:
> - all QA devel projects be have flake8 as the linter in arc config
> - no code be accepted with lint errors unless there is absolutely no
> other way to get around it
> - until we get our entire codebase PEP8 compliant, "if you touch a
> file, fix the lint errors even if those errors are not part of what
> you're changing"
> Any strong objections to starting this? Any strong objections should
> have an alternative proposal and a justification why that proposal is
> worth deviating from a well known and established standard.
I have an alternative proposal:
1. The Phab diff should not contain too many lint warnings without a good enough reason,
in order to keep it readable.
2. If it does, ask the author to fix it.
3. If the author is reluctant to change his coding style, and you have no strong objection
to it per se (you just want the Phab diff to be readable), let's disable the
particular lint check.
In this case it would involve asking Josef to stop putting spaces between parameter
keyvals, or disabling "unexpected spaces around keyword / parameter equals"
check. It could also involve disabling "continuation line over-indented for hanging
indent" check, because that's another very common warning we just ignore.
The only problem will be when two people have strong and conflicting opinions on how to
code should look. Is this the case? If not, then if we implement the solution describe
above, I believe we're not going to be discussing code style in another year or two,
judging by the past.
By saying we should use strict PEP8, does that mean you want to get
rid of the linter settings we have in .arclint or leave it there?
Strict PEP8 would mean all the configured exceptions would be purged.
Oh boy, this will be a long discussion once again.