On 06/20/2014 02:07 PM, Sean Dague wrote:
After seeing a bunch of code changes to enforce new hacking rules, I'd
like to propose dropping some of the rules we have. The overall patch
series is here -
https://review.openstack.org/#/q/status:open+project:openstack-dev/hacking+branch:master+topic:be_less_silly,n,z
H402 - 1 line doc strings should end in punctuation. The real statement
is this should be a summary sentence. A sentence is not just a set of
words that end in a period. Squirel fast bob. It's something deeper.
This rule thus isn't really semantically useful, especially when you are
talking about at 69 character maximum (79 - 4 space indent - 6 quote
characters).
++ This was always a silly rule, IMO
Sorry, forgot to add a period. There. Better.
H803 - First line of a commit message must *not* end in a period. This
was mostly a response to an unreasonable core reviewer that was -1ing
people for not having periods. I think any core reviewer that -1s for
this either way should be thrown off the island, or at least made fun
of, a lot. Again, the clarity of a commit message is not made or lost by
the lack or existence of a period at the end of the first line.
+10
Sorry, I meant +10. Period.
H305 - Enforcement of libraries fitting correctly into stdlib, 3rdparty,
our tree. This biggest issue here is it's built in a world where there
was only 1 viable python version, 2.7. Python's stdlib is actually
pretty dynamic and grows over time. As we embrace more python 3, and as
distros start to make python3 be front and center, what does this even
mean? The current enforcement can't pass on both python2 and python3 at
the same time in many cases because of that.
+0 on this one... I find it useful to group the libs together in this
way, as it makes it relatively easy to identify quickly at a glance the
third party libs that are in use in the module.
We have to remember we're all humans, and it's ok to have grey space.
Like in 305, you *should* group the libraries if you can, but stuff like
that should be labeled as 'nit' in the review, and only ask the author
to respin it if there are other more serious issues to be handled.
Ya, no real disagreement on that.
Let's optimize a little more for fun, and stop throwing -1s for silly
things. :)
++
I would also love to get rid of H404, otherwise known as the dumb rule
that says if you have a multiline docstring, that there must be a
summary line, then a blank line, then a detailed description. It makes
things like this illegal, which, IMHO, is stupid:
def do_something(self, thing):
"""We do something with the supplied thing, so that something else
is also done with this other thing. Make sure the other thing is
of type something.
"""
pass
Likewise, I'd love to be able to have a newline start the docstring,
like so:
def do_something(self, thing):
"""
We do something with the supplied thing, so that something else
is also done with this other thing. Make sure the other thing is
of type something.
"""
pass
But there's a rule that prevents that as well...
To be clear, I don't think all hacking rules are silly. To the contrary,
there are many that are reasonable and useful. However, I'd prefer to
focus on things that make the code more readable, not less readable, and
rules that enforce Pythonic idioms, not some random hacker's idea of
good style.
Best,
-jay
_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev