I figured I’d write a quick post about how to deal with “pep8 issues” that come up during code reviews on OpenStack core projects. These issues come up often for new contributors, and it can be a source of frustration until the contributor understands how to diagnose and fix the issues that come up.
PEP8 is the Python PEP that deals with a recommended code style. All core (and periphery Python) OpenStack projects validate that new code pushed to the source tree is “pep8-compliant”. When a new patchset is pushed from code review to Jenkins for the set of automated pre-merge tests, the pep8 command-line tool is run against the new source tree to ensure it meets PEP8 code style standards.
If this PEP8 Jenkins job fails, the code submitter will see a notification that the job failed, and the contributor must fix up any pep8 issues and push those fixes up for review again. Typically, this notification looks something like this:
Change subject: Added Keypair extension (os-keypairs) client and tests LP#900139 ...................................................................... Patch Set 2: I would prefer that you didn't submit this Build Unstable https://jenkins.openstack.org/job/gate-tempest-pep8/38/ : UNSTABLE https://jenkins.openstack.org/job/gate-tempest-merge/78/ : SUCCESS -- To view, visit https://review.openstack.org/3179 To unsubscribe, visit https://review.openstack.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I34c7e9aa6a1796b8d4c3ac9b3b69438796752866 Gerrit-PatchSet: 2 Gerrit-Project: openstack/tempest Gerrit-Branch: master Gerrit-Owner: kavan-patil Gerrit-Reviewer: Brian Waldon
Gerrit-Reviewer: Jay Pipes Gerrit-Reviewer: Jenkins Gerrit-Reviewer: kavan-patil
There are a couple ways you can diagnose what style points your code violated. Probably the easiest and fastest is to just follow the link in the notification email to the Jenkins job. Clicking the link above, I get to the Jenkins job page, which looks like this:
Clicking on the graph, I get to a details screen showing the source files and lines of code that violated pep8 rules:
I can then go to line 86 of
tempest/openstack.py and investigate the code style
Alternately, I could run the pep8 CLI tool on my local branch, which will tell me the pep8 violations and what to fix, as shown here:
jpipes@uberbox:~/repos/tempest$ pep8 --repeat tempest tempest/openstack.py:86:73: W292 no newline at end of file
There we are… the
tempest/openstack.py file doesn’t end with a newline. An easy fixup. 🙂