[all][tc] Planning for dropping the Python2 support in OpenStack

Sean Mooney smooney at redhat.com
Wed Oct 30 11:59:19 UTC 2019


On Tue, 2019-10-29 at 19:40 -0500, Matthew Thode wrote:
> On 19-10-29 14:53:11, Ghanshyam Mann wrote:
> >  ---- On Thu, 24 Oct 2019 14:32:03 -0500 Ghanshyam Mann <gmann at ghanshyammann.com> wrote ----
> >  > Hello Everyone,
> >  > 
> >  > We had good amount of discussion on the final plan and schedule in today's TC office hour[1].
> >  > 
> >  > I captured the agreement on each point in etherpad (you can see the AGREE:). Also summarizing
> >  > the discussions here. Imp point is if your projects are planning to keep the py2.7 support then do not delay
> >  > to tell us. Reply on this ML thread or add your project in etherpad. 
> >  > 
> >  > - Projects can start dropping the py2.7 support. Common lib and testing tools need to wait until milestone-2.
> >  >    ** pepe8 job to be included in openstack-python3-ussuri-jobs-* templates - 
> > https://review.opendev.org/#/c/688997/
> >  >    ** You can drop openstack-python-jobs template and start using ussuri template once 688997 patch is merged. 
> >  >    ** Cross projects dependency (if any ) can be sync up among dependent projects. 
> >  > 
> >  > - I will add this plan and schedule as a community goal. The goal is more about what all things to do and when.
> >  >    ** If any project keeping the support then it has to be notified explicitly for its consumer. 
> >  > 
> >  > - Schedule: 
> >  >  The schedule is aligned with the Ussuri cycle milestone[2]. I will add the plan in the release schedule also. 
> >  >  Phase-1: Dec 09 - Dec 13 R-22 Ussuri-1 milestone
> >  >   ** Project to start dropping the py2 support along with all the py2 CI jobs.
> >  >  Phase-2: Feb 10 - Feb 14 R-13 Ussuri-2 milestone
> >  >   ** This includes Oslo, QA tools (or any other testing tools), common lib (os-brick), Client library.
> >  >   ** This will give enough time to projects to drop the py2 support.
> >  >  Phase-3: Apr 06 - Apr 10 R-5 Ussuri-3 milestone
> >  >   ** Final audit on Phase-1 and Phase-2 plan and make sure everything is done without breaking anything.
> >  >       This is enough time to measure such break or anything extra to do before ussuri final release.
> >  > 
> >  > Other discussions points and agreement:
> >  > - Projects want to keep python 2 support and need oslo, QA or any other dependent projects/lib support:
> >  >   ** swift.  AI: gmann to reach out to swift team about the plan and exact required things from its dependency
> >  >        (the common lib/testing tool).
> > 
> > I chated with timburke on IRC about things required by swift to keep the py2.7 support[1]. Below are
> > client lib/middleware swift required for py2 testing.
> >  @timburke, feel free to update if any missing point.
> > 
> > - devstack. able to keep running swift on py2 and rest all services can be on py3
> > - keystonemiddleware and its dependency
> > - keystoneclient and openstackclient  (dep of keystonemiddleware)
> > - castellan and barbicanclient
> > 
> > 
> > As those lib/middleware going to drop the py2.7 support in phase-2, we need to cap them for swift.
> > I think capping them for python2.7 in upper constraint file would not affect any other users but Matthew Thode can
> > explain better how that will work from the requirement constraint perspective. 
> > 
> > [1] 
> > http://eavesdrop.openstack.org/irclogs/%23openstack-swift/%23openstack-swift.2019-10-28.log.html#t2019-10-28T16:37:33
> > 
> > -gmann
> > 
> 
> ya, there are examples already for libs that have dropped py2 support.
> What you need to do is update global requirements to be something like
> the following.
> 
> sphinx!=1.6.6,!=1.6.7,<2.0.0;python_version=='2.7'  # BSD
> sphinx!=1.6.6,!=1.6.7,!=2.1.0;python_version>='3.4'  # BSD
> 
> or
> 
> keyring<19.0.0;python_version=='2.7'  # MIT/PSF
> keyring;python_version>='3.4'  # MIT/PSF
on a related note os-vif is blocked form running tempest jobs under python 3
until https://review.opendev.org/#/c/681029/ is merged due to 
https://zuul.opendev.org/t/openstack/build/4ff60d6bd2f24782abeb12cc7bdb8013/log/controller/logs/screen-q-agt.txt.gz#308-318

i think this issue will affect any job that install proejcts that use privsep using the required-proejcts section of the
zuul job definition. adding a project to required-proejcts sechtion adds it to the LIBS_FROM_GIT varible in devstack.
this inturn istalls it twice  due to https://review.opendev.org/#/c/418135/ . the side effect of this is that the
privsep helper script gets installed under python2 and the neutron ageint in this case gets install under python 3 so
when it trys to spawn the privsep deamon and invoke commands it typically expodes due to dependcy issues or in this case
because it failed to drop privileges correctly.

so as part of phase 1 we need to merge https://review.opendev.org/#/c/681029/ so that lib project that use required-
projects to run with master of project that comsume it and support depends-on can move to python 3 tempest jobs.


> 




More information about the openstack-discuss mailing list