<div dir="ltr">Infra did not want to update requirements for master.<div><br></div><div>I found a solution for VPN on master, namely pinning pylint and astroid in tox.ini (we already have a dependency for pylint in tox.ini).</div><div><br></div><div>I'm thinking that for VPN on Kilo, we could cherry pick that change, rather than employ <a href="https://review.openstack.org/#/c/251874/">https://review.openstack.org/#/c/251874/</a>, which needs the fix to requirements project.</div><div><br></div><div>Thoughts?</div><div><br></div><div>PCM</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 1, 2015 at 10:29 AM Gary Kotton <<a href="mailto:gkotton@vmware.com">gkotton@vmware.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif">
<div>
<div>Should we not be updating this in the requirements project?</div>
<div>
<div></div>
</div>
</div>
<div><br>
</div>
<span>
<div style="font-family:Calibri;font-size:12pt;text-align:left;color:black;BORDER-BOTTOM:medium none;BORDER-LEFT:medium none;PADDING-BOTTOM:0in;PADDING-LEFT:0in;PADDING-RIGHT:0in;BORDER-TOP:#b5c4df 1pt solid;BORDER-RIGHT:medium none;PADDING-TOP:3pt">
<span style="font-weight:bold">From: </span>Paul Michali <<a href="mailto:pc@michali.net" target="_blank">pc@michali.net</a>><br>
<span style="font-weight:bold">Reply-To: </span>OpenStack List <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Tuesday, December 1, 2015 at 4:50 PM<br>
<span style="font-weight:bold">To: </span>OpenStack List <<a href="mailto:openstack-dev@lists.openstack.org" target="_blank">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [openstack-dev] [neutron][neutron-*] Notice! pylint breakage<br>
</div></span></div><div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif"><span>
<div><br>
</div>
<div>
<div>
<div dir="ltr">Some additional info...
<div><br>
</div>
<div>astroid upstream folks are going to try to push for pylint 1.4.5 that pins to astroid 1.3.8. If that happens, we could just pin pylint at 1.4.5. Ref:  <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__bitbucket.org_logilab_astroid_issues_275_140-2Dand-2D141-2Dfail-2Dto-2Dwork-2Dwith-2Dpylint-2D144&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc&m=gl1v9FdSQ7rYUO4HlbGDJ_28lT07a9Thah_ecaHzIbw&s=jvBDSbNi3dDG_83LBVa3sOpfq49Rk0gnSAzzsxGLD2U&e=" target="_blank">https://bitbucket.org/logilab/astroid/issues/275/140-and-141-fail-to-work-with-pylint-144</a></div>
<div><br>
</div>
<div>It sounds like we don't need to pin versions for Juno. My attempt seems to be failing tests (badly) <a href="https://review.openstack.org/#/c/251865" target="_blank">https://review.openstack.org/#/c/251865</a>.</div>
<div><br>
</div>
<div>The neutron kilo patch seems ready to go, once the infra commit is upstreamed: <a href="https://review.openstack.org/#/c/251827/" target="_blank">https://review.openstack.org/#/c/251827/</a></div>
<div><br>
</div>
<div>Infra commits are: <a href="https://review.openstack.org/#/c/251599/" target="_blank">https://review.openstack.org/#/c/251599/</a> (juno) and <a href="https://review.openstack.org/#/c/251600/" target="_blank">https://review.openstack.org/#/c/251600/</a> (kilo). Need to (at least) get
 kilo upstreamed.</div>
<div><br>
</div>
<div>For master, LB and VPN repos are broken. I can see these options</div>
<div>
<ol>
<li>implement pep8 constraints (takes time)</li><li>ignore pylint errors/warnings until do #1  (less coverage)</li><li>disable pylint until do #1 (no coverage)</li><li>Fix the pylint 1.5.0 errors (will be an issue when go to pylint 1.4.4 as part of #1)</li></ol>
<div>I'm thinking #2 is the least intrusive, and will try that for VPN repo.</div>
</div>
<div><br>
</div>
<div>BTW: FW repo does not do 'pylint' as part of pep8 (essentially #3 option) currently, so they don't see this carnage.</div>
<div><br>
</div>
<div><br>
</div>
<div>Regards,</div>
<div><br>
</div>
<div>Paul Michali (pc_m)</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Tue, Dec 1, 2015 at 6:44 AM Paul Michali <<a href="mailto:pc@michali.net" target="_blank">pc@michali.net</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">I found a problem yesterday running pep8 locally in neutron-lbaas. After discussing with LBaaS team, we identified that there is a problem with pylint.  The same issues were seen, when hecking in neutron and neutron-vpnaas repos (need to check
 neutron-fwaas). There are two issues seen.
<div><br>
</div>
<div>First, the new version of pylint (1.5.0) is finding additional warnings/errors. This will require updates to code, to be compliant with the new pylint (assuming we move up to that version). I did see one case where the changes needed for pylint 1.5.0 are
 backward incompatible with pylint 1.4.4, which raises another concern (how to migrate to newer pylint).</div>
<div><br>
</div>
<div>Second, pylint uses the astroid package, which was recently update from 1.3.8 to 1.4.1. When used with pylint 1.4.4 (the currently used version in neutron), we get all sorts of false positive errors. For example, use of each imported module shows a "undefined
 variable" error.</div>
<div><br>
</div>
<div>In neutron-vpnaas, this issue is worse, as pylint iand astroid are not pinned to any version, so it can update at unexpected times.</div>
<div><br>
</div>
<div>After talking to infra, here are the proposed solutions...</div>
<div><br>
</div>
<div>Neutron - In pretty good shape</div>
<div><br>
</div>
<div>The pep8-constraints job currently works, as global requirements in pylint to 1.4.4 and upper constraints pin astroid to 1.3.8 - both work together well.  Locally, one needs to use pep8-constraints and not pep8, as the latter will pull in the latest astroid
 (1.4.1) and cause havoc.</div>
<div><br>
</div>
<div>Infra is pushing up two commits to global requirements to pin astroid to 1.3.8 for kilo (251600) and juno (251599). We need to pin astroid to 1.3.8 in test-requirements.txt for those branches. I'll start on that in a few minutes.</div>
<div><br>
</div>
<div>LBaaS/VPNaaS/FWaas? - Needs constraints</div>
<div><br>
</div>
<div>For pep8 jobs, these repos need to use the new pep8-constraints style job and tox.ini should also use the same target, instead of pep8. Like neutron, kilo and juno branches need to pin astroid to 1.3.8.</div>
<div><br>
</div>
<div>neutron-vpnaas should also pin pylint to 1.4.4 in test-requirements.txt, to prevent it from floating to 1.5.0.</div>
<div><br>
</div>
<div>All repos will need a plan for updating code to conform to pylint 1.5.0, if/when we upgrade to this.</div>
<div><br>
</div>
<div>Note: I have not looked at neutron-fwaas, so we need to confirm the above issue is present, but it likely is (even if there is not a current pylint failure).</div>
<div><br>
</div>
<div>One concern I have, that infra hasn't figured out how it can be addressed, is how we'll update to pylint 1.5.0. If were are using pep8-constraints, the constraints file is in a different repo. Updating, to say, pylint 1.5.0 and astroid 1.4.1, would cause
 breakage until both the neutron* repos and requirements repo are updated.  This is complicated with backward incompatible changes needed.</div>
<div><br>
</div>
<div>Thanks to blogan, ZZelle, fungi, anteaya, lifeless, ajmiller and others for helping investigate and come up with the approach on this issue!</div>
<div><br>
</div>
<div>Regards,</div>
<div><br>
</div>
<div>Paul Michali (pc_m)</div>
<div><br>
</div>
<div><br>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</span></div><div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif"><span></span>
</div>

__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div>