Re: [openstack-dev] Nova style cleanups with associated hacking check addition

2014-02-03 Thread Joe Gordon
On Thu, Jan 30, 2014 at 2:06 AM, Daniel P. Berrange  wrote:
> On Wed, Jan 29, 2014 at 01:22:59PM -0500, Joe Gordon wrote:
>> On Tue, Jan 28, 2014 at 4:45 AM, John Garbutt  wrote:
>> > On 27 January 2014 10:10, Daniel P. Berrange  wrote:
>> >> On Fri, Jan 24, 2014 at 11:42:54AM -0500, Joe Gordon wrote:
>> >>> On Fri, Jan 24, 2014 at 7:24 AM, Daniel P. Berrange 
>> >>> wrote:
>> >>>
>> >>> > Periodically I've seen people submit big coding style cleanups to Nova
>> >>> > code. These are typically all good ideas / beneficial, however, I have
>> >>> > rarely (perhaps even never?) seen the changes accompanied by new 
>> >>> > hacking
>> >>> > check rules.
>> >>> >
>> >>> > The problem with not having a hacking check added *in the same commit*
>> >>> > as the cleanup is two-fold
>> >>> >
>> >>> >  - No guarantee that the cleanup has actually fixed all violations
>> >>> >in the codebase. Have to trust the thoroughness of the submitter
>> >>> >or do a manual code analysis yourself as reviewer. Both suffer
>> >>> >from human error.
>> >>> >
>> >>> >  - Future patches will almost certainly re-introduce the same style
>> >>> >problems again and again and again and again and again and again
>> >>> >and again and again and again I could go on :-)
>> >>> >
>> >>> > I don't mean to pick on one particular person, since it isn't their
>> >>> > fault that reviewers have rarely/never encouraged people to write
>> >>> > hacking rules, but to show one example The following recent change
>> >>> > updates all the nova config parameter declarations cfg.XXXOpt(...) to
>> >>> > ensure that the help text was consistently styled:
>> >>> >
>> >>> >   https://review.openstack.org/#/c/67647/
>> >>> >
>> >>> > One of the things it did was to ensure that the help text always 
>> >>> > started
>> >>> > with a capital letter. Some of the other things it did were more subtle
>> >>> > and hard to automate a check for, but an 'initial capital letter' rule
>> >>> > is really straightforward.
>> >>> >
>> >>> > By updating nova/hacking/checks.py to add a new rule for this, it was
>> >>> > found that there were another 9 files which had incorrect 
>> >>> > capitalization
>> >>> > of their config parameter help. So the hacking rule addition clearly
>> >>> > demonstrates its value here.
>> >>>
>> >>> This sounds like a rule that we should add to
>> >>> https://github.com/openstack-dev/hacking.git.
>> >>
>> >> Yep, it could well be added there. I figure rules added to Nova can
>> >> be "upstreamed" to the shared module periodically.
>> >
>> > +1
>> >
>> > I worry about diverging, but I guess thats always going to happen here.
>> >
>> >>> > I will concede that documentation about /how/ to write hacking checks
>> >>> > is not entirely awesome. My current best advice is to look at how some
>> >>> > of the existing hacking checks are done - find one that is checking
>> >>> > something that is similar to what you need and adapt it. There are a
>> >>> > handful of Nova specific rules in nova/hacking/checks.py, and quite a
>> >>> > few examples in the shared repo
>> >>> > https://github.com/openstack-dev/hacking.git
>> >>> > see the file hacking/core.py. There's some very minimal documentation
>> >>> > about variables your hacking check method can receive as input
>> >>> > parameters
>> >>> > https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst
>> >>> >
>> >>> >
>> >>> > In summary, if you are doing a global coding style cleanup in Nova for
>> >>> > something which isn't already validated by pep8 checks, then I strongly
>> >>> > encourage additions to nova/hacking/checks.py to validate the cleanup
>> >>> > correctness. Obviously with some style cleanups, it will be too complex
>> >>> > to write logic rules to reliably validate code, so this isn't a code
>> >>> > review point that must be applied 100% of the time. Reasonable personal
>> >>> > judgement should apply. I will try comment on any style cleanups I see
>> >>> > where I think it is pratical to write a hacking check.
>> >>> >
>> >>>
>> >>> I would take this even further, I don't think we should accept any style
>> >>> cleanup patches that can be enforced with a hacking rule and aren't.
>> >>
>> >> IMHO that would mostly just serve to discourage people from submitting
>> >> style cleanup patches because it is too much stick, not enough carrot.
>> >> Realistically for some types of style cleanup, the effort involved in
>> >> writing a style checker that does not have unacceptable false positives
>> >> will be too high to justify. So I think a pragmatic approach to 
>> >> enforcement
>> >> is more suitable.
>> >
>> > +1
>> >
>> > I would love to enforce it 100% of the time, but sometimes its hard to
>> > write the rules, but still a useful cleanup. Lets see how it goes I
>> > guess.
>>
>> I am weary of adding any new style rules that have to manually
>> enforced by human reviewers, we already have a lot of other items to
>> cover in a review.
>
> A recent style cle

Re: [openstack-dev] Nova style cleanups with associated hacking check addition

2014-01-30 Thread Daniel P. Berrange
On Wed, Jan 29, 2014 at 01:22:59PM -0500, Joe Gordon wrote:
> On Tue, Jan 28, 2014 at 4:45 AM, John Garbutt  wrote:
> > On 27 January 2014 10:10, Daniel P. Berrange  wrote:
> >> On Fri, Jan 24, 2014 at 11:42:54AM -0500, Joe Gordon wrote:
> >>> On Fri, Jan 24, 2014 at 7:24 AM, Daniel P. Berrange 
> >>> wrote:
> >>>
> >>> > Periodically I've seen people submit big coding style cleanups to Nova
> >>> > code. These are typically all good ideas / beneficial, however, I have
> >>> > rarely (perhaps even never?) seen the changes accompanied by new hacking
> >>> > check rules.
> >>> >
> >>> > The problem with not having a hacking check added *in the same commit*
> >>> > as the cleanup is two-fold
> >>> >
> >>> >  - No guarantee that the cleanup has actually fixed all violations
> >>> >in the codebase. Have to trust the thoroughness of the submitter
> >>> >or do a manual code analysis yourself as reviewer. Both suffer
> >>> >from human error.
> >>> >
> >>> >  - Future patches will almost certainly re-introduce the same style
> >>> >problems again and again and again and again and again and again
> >>> >and again and again and again I could go on :-)
> >>> >
> >>> > I don't mean to pick on one particular person, since it isn't their
> >>> > fault that reviewers have rarely/never encouraged people to write
> >>> > hacking rules, but to show one example The following recent change
> >>> > updates all the nova config parameter declarations cfg.XXXOpt(...) to
> >>> > ensure that the help text was consistently styled:
> >>> >
> >>> >   https://review.openstack.org/#/c/67647/
> >>> >
> >>> > One of the things it did was to ensure that the help text always started
> >>> > with a capital letter. Some of the other things it did were more subtle
> >>> > and hard to automate a check for, but an 'initial capital letter' rule
> >>> > is really straightforward.
> >>> >
> >>> > By updating nova/hacking/checks.py to add a new rule for this, it was
> >>> > found that there were another 9 files which had incorrect capitalization
> >>> > of their config parameter help. So the hacking rule addition clearly
> >>> > demonstrates its value here.
> >>>
> >>> This sounds like a rule that we should add to
> >>> https://github.com/openstack-dev/hacking.git.
> >>
> >> Yep, it could well be added there. I figure rules added to Nova can
> >> be "upstreamed" to the shared module periodically.
> >
> > +1
> >
> > I worry about diverging, but I guess thats always going to happen here.
> >
> >>> > I will concede that documentation about /how/ to write hacking checks
> >>> > is not entirely awesome. My current best advice is to look at how some
> >>> > of the existing hacking checks are done - find one that is checking
> >>> > something that is similar to what you need and adapt it. There are a
> >>> > handful of Nova specific rules in nova/hacking/checks.py, and quite a
> >>> > few examples in the shared repo
> >>> > https://github.com/openstack-dev/hacking.git
> >>> > see the file hacking/core.py. There's some very minimal documentation
> >>> > about variables your hacking check method can receive as input
> >>> > parameters
> >>> > https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst
> >>> >
> >>> >
> >>> > In summary, if you are doing a global coding style cleanup in Nova for
> >>> > something which isn't already validated by pep8 checks, then I strongly
> >>> > encourage additions to nova/hacking/checks.py to validate the cleanup
> >>> > correctness. Obviously with some style cleanups, it will be too complex
> >>> > to write logic rules to reliably validate code, so this isn't a code
> >>> > review point that must be applied 100% of the time. Reasonable personal
> >>> > judgement should apply. I will try comment on any style cleanups I see
> >>> > where I think it is pratical to write a hacking check.
> >>> >
> >>>
> >>> I would take this even further, I don't think we should accept any style
> >>> cleanup patches that can be enforced with a hacking rule and aren't.
> >>
> >> IMHO that would mostly just serve to discourage people from submitting
> >> style cleanup patches because it is too much stick, not enough carrot.
> >> Realistically for some types of style cleanup, the effort involved in
> >> writing a style checker that does not have unacceptable false positives
> >> will be too high to justify. So I think a pragmatic approach to enforcement
> >> is more suitable.
> >
> > +1
> >
> > I would love to enforce it 100% of the time, but sometimes its hard to
> > write the rules, but still a useful cleanup. Lets see how it goes I
> > guess.
> 
> I am weary of adding any new style rules that have to manually
> enforced by human reviewers, we already have a lot of other items to
> cover in a review.

A recent style cleanup was against config variable help strings.
One of the rules used was "Write complete sentances". This is a
perfectly reasonable style cleanup, but I challenge anyone to write
a hacking check

Re: [openstack-dev] Nova style cleanups with associated hacking check addition

2014-01-29 Thread Andreas Jaeger
On 01/29/2014 07:22 PM, Joe Gordon wrote:
> On Tue, Jan 28, 2014 at 4:45 AM, John Garbutt  wrote:
>> On 27 January 2014 10:10, Daniel P. Berrange  wrote:
>>> On Fri, Jan 24, 2014 at 11:42:54AM -0500, Joe Gordon wrote:
 On Fri, Jan 24, 2014 at 7:24 AM, Daniel P. Berrange 
 wrote:

> Periodically I've seen people submit big coding style cleanups to Nova
> code. These are typically all good ideas / beneficial, however, I have
> rarely (perhaps even never?) seen the changes accompanied by new hacking
> check rules.
>
> The problem with not having a hacking check added *in the same commit*
> as the cleanup is two-fold
>
>  - No guarantee that the cleanup has actually fixed all violations
>in the codebase. Have to trust the thoroughness of the submitter
>or do a manual code analysis yourself as reviewer. Both suffer
>from human error.
>
>  - Future patches will almost certainly re-introduce the same style
>problems again and again and again and again and again and again
>and again and again and again I could go on :-)
>
> I don't mean to pick on one particular person, since it isn't their
> fault that reviewers have rarely/never encouraged people to write
> hacking rules, but to show one example The following recent change
> updates all the nova config parameter declarations cfg.XXXOpt(...) to
> ensure that the help text was consistently styled:
>
>   https://review.openstack.org/#/c/67647/
>
> One of the things it did was to ensure that the help text always started
> with a capital letter. Some of the other things it did were more subtle
> and hard to automate a check for, but an 'initial capital letter' rule
> is really straightforward.
>
> By updating nova/hacking/checks.py to add a new rule for this, it was
> found that there were another 9 files which had incorrect capitalization
> of their config parameter help. So the hacking rule addition clearly
> demonstrates its value here.

 This sounds like a rule that we should add to
 https://github.com/openstack-dev/hacking.git.
>>>
>>> Yep, it could well be added there. I figure rules added to Nova can
>>> be "upstreamed" to the shared module periodically.
>>
>> +1
>>
>> I worry about diverging, but I guess thats always going to happen here.
>>
> I will concede that documentation about /how/ to write hacking checks
> is not entirely awesome. My current best advice is to look at how some
> of the existing hacking checks are done - find one that is checking
> something that is similar to what you need and adapt it. There are a
> handful of Nova specific rules in nova/hacking/checks.py, and quite a
> few examples in the shared repo
> https://github.com/openstack-dev/hacking.git
> see the file hacking/core.py. There's some very minimal documentation
> about variables your hacking check method can receive as input
> parameters
> https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst
>
>
> In summary, if you are doing a global coding style cleanup in Nova for
> something which isn't already validated by pep8 checks, then I strongly
> encourage additions to nova/hacking/checks.py to validate the cleanup
> correctness. Obviously with some style cleanups, it will be too complex
> to write logic rules to reliably validate code, so this isn't a code
> review point that must be applied 100% of the time. Reasonable personal
> judgement should apply. I will try comment on any style cleanups I see
> where I think it is pratical to write a hacking check.
>

 I would take this even further, I don't think we should accept any style
 cleanup patches that can be enforced with a hacking rule and aren't.
>>>
>>> IMHO that would mostly just serve to discourage people from submitting
>>> style cleanup patches because it is too much stick, not enough carrot.
>>> Realistically for some types of style cleanup, the effort involved in
>>> writing a style checker that does not have unacceptable false positives
>>> will be too high to justify. So I think a pragmatic approach to enforcement
>>> is more suitable.
>>
>> +1
>>
>> I would love to enforce it 100% of the time, but sometimes its hard to
>> write the rules, but still a useful cleanup. Lets see how it goes I
>> guess.
> 
> I am weary of adding any new style rules that have to manually
> enforced by human reviewers, we already have a lot of other items to
> cover in a review.

Based on the feedback I got on IRC, I've written such a style guide a
few days ago for the config help strings:

https://review.openstack.org/#/c/69381

Even if you do not notice these during a review, it's easy for somebody
else to cleanup - and then it's important to have a style guide that
explains how things should be written. I'd like to have consistency
across OpenS

Re: [openstack-dev] Nova style cleanups with associated hacking check addition

2014-01-29 Thread Joe Gordon
On Tue, Jan 28, 2014 at 4:45 AM, John Garbutt  wrote:
> On 27 January 2014 10:10, Daniel P. Berrange  wrote:
>> On Fri, Jan 24, 2014 at 11:42:54AM -0500, Joe Gordon wrote:
>>> On Fri, Jan 24, 2014 at 7:24 AM, Daniel P. Berrange 
>>> wrote:
>>>
>>> > Periodically I've seen people submit big coding style cleanups to Nova
>>> > code. These are typically all good ideas / beneficial, however, I have
>>> > rarely (perhaps even never?) seen the changes accompanied by new hacking
>>> > check rules.
>>> >
>>> > The problem with not having a hacking check added *in the same commit*
>>> > as the cleanup is two-fold
>>> >
>>> >  - No guarantee that the cleanup has actually fixed all violations
>>> >in the codebase. Have to trust the thoroughness of the submitter
>>> >or do a manual code analysis yourself as reviewer. Both suffer
>>> >from human error.
>>> >
>>> >  - Future patches will almost certainly re-introduce the same style
>>> >problems again and again and again and again and again and again
>>> >and again and again and again I could go on :-)
>>> >
>>> > I don't mean to pick on one particular person, since it isn't their
>>> > fault that reviewers have rarely/never encouraged people to write
>>> > hacking rules, but to show one example The following recent change
>>> > updates all the nova config parameter declarations cfg.XXXOpt(...) to
>>> > ensure that the help text was consistently styled:
>>> >
>>> >   https://review.openstack.org/#/c/67647/
>>> >
>>> > One of the things it did was to ensure that the help text always started
>>> > with a capital letter. Some of the other things it did were more subtle
>>> > and hard to automate a check for, but an 'initial capital letter' rule
>>> > is really straightforward.
>>> >
>>> > By updating nova/hacking/checks.py to add a new rule for this, it was
>>> > found that there were another 9 files which had incorrect capitalization
>>> > of their config parameter help. So the hacking rule addition clearly
>>> > demonstrates its value here.
>>>
>>> This sounds like a rule that we should add to
>>> https://github.com/openstack-dev/hacking.git.
>>
>> Yep, it could well be added there. I figure rules added to Nova can
>> be "upstreamed" to the shared module periodically.
>
> +1
>
> I worry about diverging, but I guess thats always going to happen here.
>
>>> > I will concede that documentation about /how/ to write hacking checks
>>> > is not entirely awesome. My current best advice is to look at how some
>>> > of the existing hacking checks are done - find one that is checking
>>> > something that is similar to what you need and adapt it. There are a
>>> > handful of Nova specific rules in nova/hacking/checks.py, and quite a
>>> > few examples in the shared repo
>>> > https://github.com/openstack-dev/hacking.git
>>> > see the file hacking/core.py. There's some very minimal documentation
>>> > about variables your hacking check method can receive as input
>>> > parameters
>>> > https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst
>>> >
>>> >
>>> > In summary, if you are doing a global coding style cleanup in Nova for
>>> > something which isn't already validated by pep8 checks, then I strongly
>>> > encourage additions to nova/hacking/checks.py to validate the cleanup
>>> > correctness. Obviously with some style cleanups, it will be too complex
>>> > to write logic rules to reliably validate code, so this isn't a code
>>> > review point that must be applied 100% of the time. Reasonable personal
>>> > judgement should apply. I will try comment on any style cleanups I see
>>> > where I think it is pratical to write a hacking check.
>>> >
>>>
>>> I would take this even further, I don't think we should accept any style
>>> cleanup patches that can be enforced with a hacking rule and aren't.
>>
>> IMHO that would mostly just serve to discourage people from submitting
>> style cleanup patches because it is too much stick, not enough carrot.
>> Realistically for some types of style cleanup, the effort involved in
>> writing a style checker that does not have unacceptable false positives
>> will be too high to justify. So I think a pragmatic approach to enforcement
>> is more suitable.
>
> +1
>
> I would love to enforce it 100% of the time, but sometimes its hard to
> write the rules, but still a useful cleanup. Lets see how it goes I
> guess.

I am weary of adding any new style rules that have to manually
enforced by human reviewers, we already have a lot of other items to
cover in a review.

>
> John

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] Nova style cleanups with associated hacking check addition

2014-01-28 Thread John Garbutt
On 27 January 2014 10:10, Daniel P. Berrange  wrote:
> On Fri, Jan 24, 2014 at 11:42:54AM -0500, Joe Gordon wrote:
>> On Fri, Jan 24, 2014 at 7:24 AM, Daniel P. Berrange 
>> wrote:
>>
>> > Periodically I've seen people submit big coding style cleanups to Nova
>> > code. These are typically all good ideas / beneficial, however, I have
>> > rarely (perhaps even never?) seen the changes accompanied by new hacking
>> > check rules.
>> >
>> > The problem with not having a hacking check added *in the same commit*
>> > as the cleanup is two-fold
>> >
>> >  - No guarantee that the cleanup has actually fixed all violations
>> >in the codebase. Have to trust the thoroughness of the submitter
>> >or do a manual code analysis yourself as reviewer. Both suffer
>> >from human error.
>> >
>> >  - Future patches will almost certainly re-introduce the same style
>> >problems again and again and again and again and again and again
>> >and again and again and again I could go on :-)
>> >
>> > I don't mean to pick on one particular person, since it isn't their
>> > fault that reviewers have rarely/never encouraged people to write
>> > hacking rules, but to show one example The following recent change
>> > updates all the nova config parameter declarations cfg.XXXOpt(...) to
>> > ensure that the help text was consistently styled:
>> >
>> >   https://review.openstack.org/#/c/67647/
>> >
>> > One of the things it did was to ensure that the help text always started
>> > with a capital letter. Some of the other things it did were more subtle
>> > and hard to automate a check for, but an 'initial capital letter' rule
>> > is really straightforward.
>> >
>> > By updating nova/hacking/checks.py to add a new rule for this, it was
>> > found that there were another 9 files which had incorrect capitalization
>> > of their config parameter help. So the hacking rule addition clearly
>> > demonstrates its value here.
>>
>> This sounds like a rule that we should add to
>> https://github.com/openstack-dev/hacking.git.
>
> Yep, it could well be added there. I figure rules added to Nova can
> be "upstreamed" to the shared module periodically.

+1

I worry about diverging, but I guess thats always going to happen here.

>> > I will concede that documentation about /how/ to write hacking checks
>> > is not entirely awesome. My current best advice is to look at how some
>> > of the existing hacking checks are done - find one that is checking
>> > something that is similar to what you need and adapt it. There are a
>> > handful of Nova specific rules in nova/hacking/checks.py, and quite a
>> > few examples in the shared repo
>> > https://github.com/openstack-dev/hacking.git
>> > see the file hacking/core.py. There's some very minimal documentation
>> > about variables your hacking check method can receive as input
>> > parameters
>> > https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst
>> >
>> >
>> > In summary, if you are doing a global coding style cleanup in Nova for
>> > something which isn't already validated by pep8 checks, then I strongly
>> > encourage additions to nova/hacking/checks.py to validate the cleanup
>> > correctness. Obviously with some style cleanups, it will be too complex
>> > to write logic rules to reliably validate code, so this isn't a code
>> > review point that must be applied 100% of the time. Reasonable personal
>> > judgement should apply. I will try comment on any style cleanups I see
>> > where I think it is pratical to write a hacking check.
>> >
>>
>> I would take this even further, I don't think we should accept any style
>> cleanup patches that can be enforced with a hacking rule and aren't.
>
> IMHO that would mostly just serve to discourage people from submitting
> style cleanup patches because it is too much stick, not enough carrot.
> Realistically for some types of style cleanup, the effort involved in
> writing a style checker that does not have unacceptable false positives
> will be too high to justify. So I think a pragmatic approach to enforcement
> is more suitable.

+1

I would love to enforce it 100% of the time, but sometimes its hard to
write the rules, but still a useful cleanup. Lets see how it goes I
guess.

John

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] Nova style cleanups with associated hacking check addition

2014-01-27 Thread Daniel P. Berrange
On Fri, Jan 24, 2014 at 11:42:54AM -0500, Joe Gordon wrote:
> On Fri, Jan 24, 2014 at 7:24 AM, Daniel P. Berrange 
> wrote:
> 
> > Periodically I've seen people submit big coding style cleanups to Nova
> > code. These are typically all good ideas / beneficial, however, I have
> > rarely (perhaps even never?) seen the changes accompanied by new hacking
> > check rules.
> >
> > The problem with not having a hacking check added *in the same commit*
> > as the cleanup is two-fold
> >
> >  - No guarantee that the cleanup has actually fixed all violations
> >in the codebase. Have to trust the thoroughness of the submitter
> >or do a manual code analysis yourself as reviewer. Both suffer
> >from human error.
> >
> >  - Future patches will almost certainly re-introduce the same style
> >problems again and again and again and again and again and again
> >and again and again and again I could go on :-)
> >
> > I don't mean to pick on one particular person, since it isn't their
> > fault that reviewers have rarely/never encouraged people to write
> > hacking rules, but to show one example The following recent change
> > updates all the nova config parameter declarations cfg.XXXOpt(...) to
> > ensure that the help text was consistently styled:
> >
> >   https://review.openstack.org/#/c/67647/
> >
> > One of the things it did was to ensure that the help text always started
> > with a capital letter. Some of the other things it did were more subtle
> > and hard to automate a check for, but an 'initial capital letter' rule
> > is really straightforward.
> >
> > By updating nova/hacking/checks.py to add a new rule for this, it was
> > found that there were another 9 files which had incorrect capitalization
> > of their config parameter help. So the hacking rule addition clearly
> > demonstrates its value here.
>
> This sounds like a rule that we should add to
> https://github.com/openstack-dev/hacking.git.

Yep, it could well be added there. I figure rules added to Nova can
be "upstreamed" to the shared module periodically.

> > I will concede that documentation about /how/ to write hacking checks
> > is not entirely awesome. My current best advice is to look at how some
> > of the existing hacking checks are done - find one that is checking
> > something that is similar to what you need and adapt it. There are a
> > handful of Nova specific rules in nova/hacking/checks.py, and quite a
> > few examples in the shared repo
> > https://github.com/openstack-dev/hacking.git
> > see the file hacking/core.py. There's some very minimal documentation
> > about variables your hacking check method can receive as input
> > parameters
> > https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst
> >
> >
> > In summary, if you are doing a global coding style cleanup in Nova for
> > something which isn't already validated by pep8 checks, then I strongly
> > encourage additions to nova/hacking/checks.py to validate the cleanup
> > correctness. Obviously with some style cleanups, it will be too complex
> > to write logic rules to reliably validate code, so this isn't a code
> > review point that must be applied 100% of the time. Reasonable personal
> > judgement should apply. I will try comment on any style cleanups I see
> > where I think it is pratical to write a hacking check.
> >
> 
> I would take this even further, I don't think we should accept any style
> cleanup patches that can be enforced with a hacking rule and aren't.

IMHO that would mostly just serve to discourage people from submitting
style cleanup patches because it is too much stick, not enough carrot.
Realistically for some types of style cleanup, the effort involved in
writing a style checker that does not have unacceptable false positives
will be too high to justify. So I think a pragmatic approach to enforcement
is more suitable.

Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] Nova style cleanups with associated hacking check addition

2014-01-24 Thread Joe Gordon
On Fri, Jan 24, 2014 at 7:24 AM, Daniel P. Berrange wrote:

> Periodically I've seen people submit big coding style cleanups to Nova
> code. These are typically all good ideas / beneficial, however, I have
> rarely (perhaps even never?) seen the changes accompanied by new hacking
> check rules.
>
> The problem with not having a hacking check added *in the same commit*
> as the cleanup is two-fold
>
>  - No guarantee that the cleanup has actually fixed all violations
>in the codebase. Have to trust the thoroughness of the submitter
>or do a manual code analysis yourself as reviewer. Both suffer
>from human error.
>
>  - Future patches will almost certainly re-introduce the same style
>problems again and again and again and again and again and again
>and again and again and again I could go on :-)
>
> I don't mean to pick on one particular person, since it isn't their
> fault that reviewers have rarely/never encouraged people to write
> hacking rules, but to show one example The following recent change
> updates all the nova config parameter declarations cfg.XXXOpt(...) to
> ensure that the help text was consistently styled:
>
>   https://review.openstack.org/#/c/67647/
>
> One of the things it did was to ensure that the help text always started
> with a capital letter. Some of the other things it did were more subtle
> and hard to automate a check for, but an 'initial capital letter' rule
> is really straightforward.
>
> By updating nova/hacking/checks.py to add a new rule for this, it was
> found that there were another 9 files which had incorrect capitalization
> of their config parameter help. So the hacking rule addition clearly
> demonstrates its value here.
>
>
This sounds like a rule that we should add to
https://github.com/openstack-dev/hacking.git.


> I will concede that documentation about /how/ to write hacking checks
> is not entirely awesome. My current best advice is to look at how some
> of the existing hacking checks are done - find one that is checking
> something that is similar to what you need and adapt it. There are a
> handful of Nova specific rules in nova/hacking/checks.py, and quite a
> few examples in the shared repo
> https://github.com/openstack-dev/hacking.git
> see the file hacking/core.py. There's some very minimal documentation
> about variables your hacking check method can receive as input
> parameters
> https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst
>
>
> In summary, if you are doing a global coding style cleanup in Nova for
> something which isn't already validated by pep8 checks, then I strongly
> encourage additions to nova/hacking/checks.py to validate the cleanup
> correctness. Obviously with some style cleanups, it will be too complex
> to write logic rules to reliably validate code, so this isn't a code
> review point that must be applied 100% of the time. Reasonable personal
> judgement should apply. I will try comment on any style cleanups I see
> where I think it is pratical to write a hacking check.
>

I would take this even further, I don't think we should accept any style
cleanup patches that can be enforced with a hacking rule and aren't.


>
> Regards,
> Daniel
> --
> |: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/:|
> |: http://libvirt.org  -o- http://virt-manager.org:|
> |: http://autobuild.org   -o- http://search.cpan.org/~danberr/:|
> |: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc:|
>
> ___
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] Nova style cleanups with associated hacking check addition

2014-01-24 Thread Daniel P. Berrange
Periodically I've seen people submit big coding style cleanups to Nova
code. These are typically all good ideas / beneficial, however, I have
rarely (perhaps even never?) seen the changes accompanied by new hacking
check rules.

The problem with not having a hacking check added *in the same commit*
as the cleanup is two-fold

 - No guarantee that the cleanup has actually fixed all violations
   in the codebase. Have to trust the thoroughness of the submitter
   or do a manual code analysis yourself as reviewer. Both suffer
   from human error.

 - Future patches will almost certainly re-introduce the same style
   problems again and again and again and again and again and again
   and again and again and again I could go on :-)

I don't mean to pick on one particular person, since it isn't their
fault that reviewers have rarely/never encouraged people to write
hacking rules, but to show one example The following recent change
updates all the nova config parameter declarations cfg.XXXOpt(...) to
ensure that the help text was consistently styled:

  https://review.openstack.org/#/c/67647/

One of the things it did was to ensure that the help text always started
with a capital letter. Some of the other things it did were more subtle
and hard to automate a check for, but an 'initial capital letter' rule
is really straightforward.

By updating nova/hacking/checks.py to add a new rule for this, it was
found that there were another 9 files which had incorrect capitalization
of their config parameter help. So the hacking rule addition clearly
demonstrates its value here.

I will concede that documentation about /how/ to write hacking checks
is not entirely awesome. My current best advice is to look at how some
of the existing hacking checks are done - find one that is checking
something that is similar to what you need and adapt it. There are a
handful of Nova specific rules in nova/hacking/checks.py, and quite a
few examples in the shared repo https://github.com/openstack-dev/hacking.git
see the file hacking/core.py. There's some very minimal documentation
about variables your hacking check method can receive as input
parameters https://github.com/jcrocholl/pep8/blob/master/docs/developer.rst


In summary, if you are doing a global coding style cleanup in Nova for
something which isn't already validated by pep8 checks, then I strongly
encourage additions to nova/hacking/checks.py to validate the cleanup
correctness. Obviously with some style cleanups, it will be too complex
to write logic rules to reliably validate code, so this isn't a code
review point that must be applied 100% of the time. Reasonable personal
judgement should apply. I will try comment on any style cleanups I see
where I think it is pratical to write a hacking check.

Regards,
Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev