On 19-10-29 14:53:11, Ghanshyam Mann wrote:
---- On Thu, 24 Oct 2019 14:32:03 -0500 Ghanshyam Mann <gmann@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...
-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 -- Matthew Thode