Add goal to drop Python 2.7 Support

Change-Id: Ifa9234c0ce85d51427b8e1f71573cd4a498bdc22
This commit is contained in:
Ghanshyam Mann
2019-10-25 04:06:56 +00:00
parent 7755c8fbb3
commit dcfcdf2af3
2 changed files with 120 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
=======================
Drop Python 2.7 Support
=======================
Ussuri cycle is the time to drop the python2 support from OpenStack.
All the projects have completed all of the work of updating all of
their CI jobs to work under Python 3. This goal accomplishes the drop
of support for python2 by removing testing python2, as well as
configuration required for that testing. The only changes to the code
a project would run in production are those required to fix py3
compatibility, in the event that a job is converted to py3 that was
not already.
Along with py2.7 drop, we will use this goal to update the Python 3
test runtimes for Ussuri :doc:`../../../reference/runtimes/ussuri`.
* Storyboard stories TODO
Champion
========
Ghanshyam Mann(gmann) <gmann@ghanshyammann.com> has volunteered to drive this goal.
Gerrit Topic
============
To facilitate tracking, commits related to this goal should use the
gerrit topic::
drop-py27-support
Completion Criteria
===================
In order for a project to call this goal complete it must:
#. Drop the python 2.7 unit, functional & integration testing.
This will update the python testing template from Train to Ussuri template.
#. Migrate the python 2.7 job if no corresponding py3 job yet.
#. Update tox.ini and setup.cfg to remove the py2.7
#. Update requirements file to drop py2.7 specific dependency.
#. Add release notes saying dropping py2.7 explicitly.
Python 2.7 support has been dropped. Last release <of project to> support
py2.7 is OpenStack Train. The minimum version of Python now
supported by <project> is Python 3.6.
All these updates will go in a single patch.
Projects keeping py2.7 support
------------------------------
#. Swift
* Swift is still fixing py3 bugs, want more than a single OpenStack release with both py2 and py3
support, and want to continue to support xenial.
Schedule
--------
This will be divided into three phases. 3rd phase will be to audit the completion criteria.
#. Phase-1: Now -> Ussuri-1 milestone (deadline R-22 )
* Project to start dropping the py2.7 support and finish by milestone-1.
Project needs to coordinate with third party CI or any backend drivers.
Example: Nova - http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010109.html
* If there is any cross project dependency and removing the py2.7 support causing other projects
py27 jobs then failing job can be dropped immediately to unblock the gate and proceed on complete
cleanup in another patch.
* This includes horizon and its plugins.
#. Phase-2: milestone-1 -> milestone-2 (deadline R-13 )
* Common libraries and testing tooling.
* This includes Oslo, QA tools (including Tempest plugins or any other testing tools), common lib
used among projects (os-brick), Client libraries. Tempest will drop the support during Feb as
discussed with TripleO.
* By milestone 1 which is phase-1 all the projects using those lib and testing tools should have
completed the removal of py2.7 support.
#. Phase-3: at milestone-2
* openstack/requirements has to be the last one and will drop the support in phase-3.
* Final audit on Phase-1 and Phase-2 plan and make sure everything is done without breaking anything.
This is enough time to measure any break or anything extra to do before Ussuri final release.
Details discussion: https://etherpad.openstack.org/p/drop-python2-support
References
==========
* https://etherpad.openstack.org/p/drop-python2-support
* http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
Current State / Anticipated Impact
==================================
Few projects started dropping the py2.7 support.

View File

@@ -0,0 +1,9 @@
======
Ussuri
======
.. toctree::
:glob:
:maxdepth: 1
*