[all] Debian unstable has Python 3.11: please help support it.

Sean Mooney smooney at redhat.com
Wed Jul 20 08:34:18 UTC 2022

On Tue, 2022-07-19 at 20:57 +0100, Alex Kavanagh wrote:
> On Fri, Jul 15, 2022 at 1:11 PM Jeremy Stanley <fungi at yuggoth.org> wrote:
> > On 2022-07-15 12:05:31 +0200 (+0200), Thomas Goirand wrote:
> > [...]
> > > All what I'm asking, is that when Python RC releases are out, and
> > > I report a bug, the community has the intention to fix it as early
> > > as possible, at least in master (and maybe help with backports if
> > > it's very tricky: I can manage trivial backporting by myself).
> > > That's enough for me, really (at least it has been enough in the
> > > past...).
> > [...]
> > 
> > I don't think fixes have been refused in the past simply because
> > they address a problem observed with a newer Python interpreter than
> > we test on. Just be aware that when it comes to pre-merge testing of
> > proposed changes for OpenStack, the time to decide what platforms
> > and interpreter versions we'll test with is at the end of the
> > previous cycle. For Zed that's Python 3.8 and 3.9, though projects
> > are encouraged to also try 3.10 if they can (we got the ability to
> > test that partway into the development cycle). We have to set these
> > expectations before we begin work on a new version of OpenStack, so
> > that we don't change our testing goals for developers while they're
> > in the middle of trying to write the software.
> > --
> > Jeremy Stanley
> > 
> Just to add to the "what python version where" discussion, I wanted to add
> the situation with Ubuntu packages and distro versions:
> As a quick summary for the Ubuntu cloud archive and distro packages for
> OpenStack, for yoga we ship the packages for 20.04 LTS (focal) - in the
> focal-yoga cloud archive [1] and 22.04 LTS (jammy) as part of distro.
> 20.04 LTS (focal) shipped with py3.8 so the packages work with that, but
> 22.04 LTS (jammy) shipped with py3.10, which means that (ultimately) we try
> very hard to get all the Ubuntu OpenStack yoga packages to work on py3.10.
> Ubuntu Kinetic (22.10) currently looks like it will also ship with py3.10
> [2].  OpenStack Zed is 'partnered' with 22.10/kinetic as the Zed packages
> will be shipped in distro for 22.10/kinetic and as jammy-kinetic in the
> cloud archive.  Therefore, we'll also be supporting py3.10 for Zed.  py3.11
> is slated for release on 3rd October 2022, so it won't make Kinetic (with
> luck), but it will almost certainly make "L" (23.04), which will be against
> (for us) OpenStack "A".  I guess this is going to be quite challenging for
> everyone!
> Why is it like this? Well, the latest current stable version of python is
> selected for each distro version to ensure that each LTS is running the
> latest stable version; thus each interim updates so that it is easier to
> work towards the next LTS stable release.  Thus, for the Ubuntu packages,
> we have to support that version for each of the OpenStack releases during
> the LTS (e.g. for jammy, py3.10) for Y->B versions of OpenStack.
> So as a summary (for the Ubuntu packages/python versions):
>    - Yoga: py3.8: focal-yoga=py3.8, py3.10: jammy (distro)
>    - Zed: py3.10 (jammy-zed, kinetic(distro))
>    - "A": py3.10 (jammy-"A"), py3.11 ("L"/22.10 (distro))
>    - "B": py3.10 (jammy-"B"), py3.11 (py3.12?)
>    - etc
> Essentially, for each LTS release (every 2 years, April), we eventually
> ship 4 versions of OpenStack, one with the distro packages, and 3 in the
> cloud archive.  Also, each interim release of Ubuntu also gets a
> corresponding OpenStack release set of packages for the python version in
> that release.  We do additional testing (which we call distro-regression)
> where we check the packages against each version of Ubuntu and run tempest
> to "ensure" that they work.
> Hope this is useful.
that is not as missalinged with our testing as debain will be.
currently our ubuntu testing is based on 20.04 and we have 22.04 image which we use for
the non voting python 3.10 jobs (orginaly those were fedora but we change when ubuntu 22.04 became avaiable)
for the A release the testing runtimes have not been chossen yet but my expecation is we will drop
20.04 form the testing requirements for master and move to 22.04 making 3.10 our default python for tempest integration testing.

assuming the python 3.11 interperter and ideally standard libary are aviabel as a package to install on 22.04
we should be able to add a non vovting py3.11 tox job to replace our current py3.10 job and perhaps even have a periodic-weekly
python 3.11 tempest job.

while the master branch for A will open in advance of the offical release
the end of the zed schdule is the week of october 3rd.

the A branches technially will open on september 15th with the release of rc1

so if the py3.11 package is aviable close to the offial start of the A cycle we may be able to include it in the
project testing requriementes even if tis only an advisery testing target and not a required one.
for B we shoudl have it as a required testing target but we will need to keep py3.9 likely until C or D since centos/rhel 9 will still
be shiping that as the only supproted interperter.

im not sure if ubuntu has the same poicly where non default intpererteres are shipped only for dev and testing use and not for production.
centos/rhel also only ships one version fo the standard libary so new libiary feature would not be avaiabel with the new inteperter if i understand
correctly. as a result of needing to support py 3.9 that means we cannot use any libeary feature that has not either been backported to 3.9 though
standalone packages as dataclaess was for py3.6. the main concen this bring is we also need to be carful not to continue using any py 3.9 feature that
are removed form 3.11 or 3.12 ectra.
> [1]
> http://ubuntu-cloud.archive.canonical.com/ubuntu/dists/focal-updates/yoga/
> [2] https://packages.ubuntu.com/kinetic/python/

More information about the openstack-discuss mailing list