Define testing runtime for 2024.2 release

Below are the changes from previous cycle
testing runtime:

* Removing python 3.8 support because it is EOLing in oct 2024[1]
  which means python 3.9 will be the minimum python version in
  testing runtime.

* Add Python 3.12 as non voting testing.

* Remove Debian 11 from Additional testing support because 2024.2
  is non-SLURP release and previous SLURP release 2024.1 supported
  Debian 12 also which is what can be used as smooth upgrade to
  future SLURP release 2025.1

* Removing Nodejs from runtime:
  Nodejs is not a runtime requirement for Horizon instead it is
  one of the test dependency. It does not fit as a runtime and can
  be handle by Horizon team based.

* For better clarity, changed the 'Best Effort' section to
 'Advance/Unstable Testing'. Adding Ubuntu 24.04 in that list.

[1] https://devguide.python.org/versions/

Change-Id: I77dbbf2413074ce0cddbfe6ac2f29d0ee1d71921
This commit is contained in:
Ghanshyam Mann 2024-02-12 12:26:54 -08:00
parent edda9a4f11
commit 42fdf0095c
1 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,92 @@
.. _2024-2-testing-runtime:
==========================
Tested Runtimes for 2024.2
==========================
Linux Distribution
==================
At the start of the 2024.2 development cycle, the current :ref:`LTS or stable
distribution <pti-linux-distros>` versions are:
* Ubuntu 22.04
* Debian 12
Additional testing for a smooth upgrade
---------------------------------------
* None
Python
======
It is the :doc:`policy <../../resolutions/20181024-python-update-process>` that
each OpenStack release cycle will target the latest available version of
Python; default Python runtime on the distributions listed above; and versions
used in integration tests at the start of the cycle, at least until the point
when all projects have migrated to a later version.
Also, as per the Python testing requirements defined in :ref:`pti-python`,
projects should avoid removing Python versions that have not reached EOL
without a solid reason.
Based on the criteria above, all Python-based projects must target and test
against, at a minimum:
* Python 3.9 (available as default in Debian 11 and Centos 9 Stream)
Python 3.9 is the the minimum supported/required version for 2024.2.
This does not imply that Debian 11 is the minimum supported distribution
but it may be used for tox testing. supporting Python 3.9 does not require
full tempest testing, but py39 unit tests are expected as a minimum
requirement for all Python projects. The minimal requirement for
testing jobs against Python versions above is to ensure language compatibility,
having more extensive testing is allowed.
* Python 3.10 (available as default in Ubuntu 22.04)
In previous cycle testing, we have not seen many incompatible changes between
Python 3.9 and Python 3.10. It is okay to skip running the Python 3.10 testing
jobs assuming that anything that works on Python 3.9 and 3.11 will also
work on 3.10.
Note: as most tempest jobs run on Ubuntu 22.04, it is expected that python
3.10 will be tested in tempest jobs. As such, it will be transitively tested
for compatibility even without explicit unit and functional tests.
* Python 3.11 (available as default in Debian 12)
This is the upper bound of required testing for 2024.2.
* Python 3.12 (going to be available as default in Ubuntu 24.02)
This is not mandatory testing in the 2024.2 cycle, and there is no guarantee
that the OpenStack 2024.2 release will support Python 3.12.
.. warning::
There is a high chance that we might see a lot of failure in Python 3.12
and need a good amount of time to fix them. Adding it as non-voting is an
effort to start testing and fixing the issues in advance. It is
recommended to start the minimal testing in the 2024.2 cycle.
Python 3.12 will be mandatory testing in a future release.
More details on Python requirements can be found in :ref:`pti-python`.
Advance/Unstable Testing
========================
The below list is for the distribution/python advance or unstable versions
to test them in OpenStack CI/CD. These may not be part of integrated testing
and may be tested as non-blockers or periodically only. The main idea is to
test them in advance to be part of integrated testing in future
cycles.
Based on their testing infra setup, instability, or their future
releases, we can modify the list during any phase of the current development
cycle.
* CentOS Stream 9
* Rocky Linux 9
* Ubuntu 24.04 (supposed to be released at the end of April 2024)