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

Ghanshyam Mann gmann at ghanshyammann.com
Tue Oct 29 19:53:11 UTC 2019


 ---- 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


 >   ** List your project if you want to keep the py2 support. 
 >   ** Action item:  TC liaisons to reach out to their projects and make sure they are aware of this plan[3].
 > 
 > - How to test the upgrade from python2 -> python3
 >   ** AGREE: let's drop the integrated testing for py2->py3 and oslo can check if they can do functional testing of
 >        oslo.messaging - https://bugs.launchpad.net/oslo.messaging/+bug/1792977
 > 
 > - What are our guidelines to backport fixes to stable branches?
 >    ** AGREE: This will be rare case and if that happen then tweaking for py27 in the backport is fine. The stable
 >         branch backport policy does not need any changing for this
 > 
 > - What is the tactics of dropping openstack-tox-py27 in our gate?
 >   ** AGREE: on merging the pep8 job in ussuri job template  https://review.opendev.org/#/c/688997/
 > 
 > [1] http://eavesdrop.openstack.org/irclogs/%23openstack-tc/%23openstack-tc.2019-10-24.log.html#t2019-10-24T14:49:12
 > [2] https://releases.openstack.org/ussuri/schedule.html
 > [3]  https://governance.openstack.org/tc/reference/tc-liaisons.html 
 > 
 > -gmann
 > 
 > 
 >  ---- On Thu, 24 Oct 2019 09:55:58 -0500 Ghanshyam Mann <gmann at ghanshyammann.com> wrote ----
 >  > Just a reminder, discussion for this is going to start in #openstack-tc  channel in another 5 min. 
 >  > 
 >  > -gmann
 >  > 
 >  > 
 >  >  ---- On Tue, 15 Oct 2019 13:18:03 -0500 Ghanshyam Mann <gmann at ghanshyammann.com> wrote ----
 >  >  > Hello Everyone,
 >  >  > 
 >  >  > Python 2.7 is going to retire in Jan 2020 [1] and we planned to drop the python 2 support from OpenStack
 >  >  > during the start of the Ussuri cycle[2].
 >  >  > 
 >  >  > Time has come now to start the planning on dropping the Python2. It needs to be coordinated among various
 >  >  > Projects, libraries, vendors driver, third party CI and testing frameworks.  
 >  >  > 
 >  >  > * Preparation for the Plan & Schedule:
 >  >  > 
 >  >  > Etherpad: https://etherpad.openstack.org/p/drop-python2-support
 >  >  > 
 >  >  > We discussed it in TC to come up with the plan, execute it smoothly and avoid breaking any dependent projects.
 >  >  > I have prepared an etherpad[3](mentioned above also) to capture all the points related to this topic and most importantly
 >  >  > the draft schedule about who can drop the support and when. The schedule is in the draft state and not final yet. 
 >  >  > The most important points are if you are dropping the support then all your consumers (OpenStack Projects, Vendors drivers etc)
 >  >  > are ready for that. For example, oslo, os-bricks, client lib, testing framework projects will keep the python2 support until we make
 >  >  > sure all the consumers of those projects do not require py2 support. If anyone require then how long they can support py2. 
 >  >  > These libraries, testing frameworks will be the last one to drop py2.
 >  >  > 
 >  >  > We have planned to have a dedicated discussion in TC office hours on the 24th Thursday  #openstack-tc channel. We will
 >  >  > discuss what all need to be done and the schedules.  
 >  >  > 
 >  >  > You do not have to drop it immediately and keep eyes on this ML thread till we get the consensus on the
 >  >  > community-level plan and schedule. 
 >  >  > 
 >  >  > Meanwhile, you can always start pre-planning for your projects, for example, stephenfin has started for Nova[4] to
 >  >  > migrate the third party CI etc. Cinder has coordinated with all vendor drivers & their CI to migrate from py2 to py3.
 >  >  > 
 >  >  > * Projects want to keep the py2 support?
 >  >  > There is no mandate that projects have to drop the py2 support right now. If you want to keep the support then key things
 >  >  > to discuss are what all you need and does all your dependent projects/libs provide the support of py2. This is something needs to be
 >  >  > discussed case by case. If any project wants to keep the support, add that in the etherpad with a brief reason which will
 >  >  > be helpful to discuss the need and feasibility. 
 >  >  > 
 >  >  > Feel free to provide feedback or add the missing point on the etherpad. Do not forget to attend the 24th Oct 2019, TC
 >  >  > office hour on Thursday at 1500 UTC in #openstack-tc.
 >  >  >  
 >  >  > 
 >  >  > [1] https://pythonclock.org/
 >  >  > [2] https://governance.openstack.org/tc/resolutions/20180529-python2-deprecation-timeline.html
 >  >  > [3] https://etherpad.openstack.org/p/drop-python2-support
 >  >  > [4] http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010109.html
 >  >  > 
 >  >  > -gmann
 >  >  > 
 >  >  > 
 >  >  > 
 >  >  > 
 >  > 
 >  > 
 >  > 
 > 
 > 
 > 




More information about the openstack-discuss mailing list