Hi, On 2/13/24 13:27, Niklas Schwarz wrote:
A current python version: The current supported Python versions are Python 3.8 to Python 3.11 [2]. As of writing, OpenStack Yoga was just moved to unmaintained. To install this release, e.g. on an Ubuntu Jammy operating system the packages are included in the Ubuntu-Packages. The default Python version on an Ubuntu 22.04 operating system is Python3.10. And looking at the support of the Python versions [3] Python 3.8 to 3.10 only receive security updates but the end is near for Python 3.8 to be out of support. The policy defined which Python version should be used for testing [4] will result that Python 3.8 is still used for the OpenStack 2024.1 release [5]. And this will also result in required support for Python3.8 in the upcoming releases of OpenStack. I my opinion the policy should be reworked and the OpenStack releases should be more aggressive on dropping support for older Python versions. Modern features of the language cannot be otherwise be used, therefor improvements in speed, security and general toolchain/ecosystem cannot be fully leveraged. By defining the lower bound of the Python Version we are limiting ourself to this version but we might also reduce the features we can use because of deprecations of the newer versions .
It'd be nice to also gate on Python 3.12. I spent a quite large amount of time fixing many issues for it: 60 bug reports where filled against the Debian packages of OpenStack, and I believe I upstream most of my patches. So the project must be in a nice enough shape to start gating on 3.12 too. The only issue is: what distro to use for it. Maybe the next Ubuntu ? It's going to be shipped with 3.12. Another important mater is the switch to SQLAlchemy 2.x. Many project have been patched for it (thank you Stephen !!!), but not all of them are up to shape. IMO, this should be fixed ASAP, maybe even before the Caracal release.
In addition some rules need to be adjusted such as the line length (80 characters is a very aggressive limit and on most modern displays a line length of 100 to 120 can fit without any problems, personal opinion).
Not only this. The limit to 80 chars forces everyone to use shorter variable names, which makes the code less readable. That's very painful and hurting the project, IMO. Cheers, Thomas Goirand (zigo)