Le 30/07/13 10:52, Merlijn van Deen a écrit :
> On 30 July 2013 00:08, Dr. Trigon <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     I don't think so.
> 
> 
> I would be interested to understand how. Because pep8 validation works
> /on the entire repository/ and not just on /the patchset, /the following
> is what I'm afraid will happen:
> 
> 1) all code passes pep8 validation
> 2) someone uploads a patchset that adds a mistake: the merged repository
> does not pass validation
> 3) the bot reports the patchset failed validation
> 4) the change is merged -> the repository no longer passes validation!
> 
> And because the repository no longer passes validation, the bot will
> also report 'failure' on any following patchset!
> 
> As such, the repository needs to always pass validation. To make sure
> the repository always passes validation, no changes should be merged if
> they fail validation. The easiest way to prevent the changes to be
> merged is to set the bot to voting.

That is exactly how it "should" work if one want to prevent new style
error from entering the repository.   Note that I am not enforcing the
pywikipediabot developers one way or another :-]


What I would recommend is:
 - make the repositories to pass the pep8 / pyflakes tests
 - enable blocking

After a few days, you will get a good idea of style errors you do not
care about.  pep8 style is sometime annoying:

Given the code:

somemodule.longmethod.chaining.there(p='foo',
    anotherpara=('value which can potentially be super long'))

pep8 yields:

E128 continuation line under-indented for visual indent


One can make it pass with the very ugly:

somemodule.chaining.there(p='foo',
                          anotherpara=('value which can potentially'
                                       'be super long'))

Or putting each parameter on each on line:

somemodule.longmethod.chaining.there(
    p='foo',
    anotherpara=('value which can potentially be super long'))


That specific E128 code can be ignored with a .pep8 file containing:


 [pep8]
 # This is a commented out line
 # E128 continuation line under-indented for visual indent
 ignore = E128


So once you experimented pep8 annoyance, you can selectively get rid of
some checks :-]



Another issue, is people sending their patch without checking the style
locally.  The best way to handle this is to use a code editor that
triggers pep8 on file save and reports back to you straight in the code
editor.  I am sure IDE dedicated to python already support that.

For vim there is the syntastic plugin:
  https://github.com/scrooloose/syntastic (screenshot included)

That is a huge time saver.

cheers,


-- 
Antoine "hashar" Musso


_______________________________________________
Pywikipedia-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to