On Fri, Jul 15, 2022 at 1:11 PM Jeremy Stanley <fungi@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. [1] http://ubuntu-cloud.archive.canonical.com/ubuntu/dists/focal-updates/yoga/ [2] https://packages.ubuntu.com/kinetic/python/ -- Alex Kavanagh - Software Engineer OpenStack Engineering - Data Centre Development - Canonical Ltd