Project

General

Profile

Bug #56945

Updated by Ernesto Puerta over 1 year ago

h1. WIP

Python release lifecycle usually "spans for 5 years":https://endoflife.date/python. Python 3.6 was launched in Dec 2016 and was deprecated by Dec 2021. However "2 active Ceph releases":https://docs.ceph.com/en/latest/releases/#active-releases are still based on that Python version (Pacific and Quincy). Ideally the Python interpreter version should be picked to couple with the Ceph release, meaning that:
* Pacific (2021 March-2023 Jun) should have been released with Python 3.8 (2019 Oct-2024 Oct) or Python 3.9 (2020 Oct-2025 Oct)
* Quincy (2022 Apr-2024 Jun) should have been released with Python 3.10 (2021 Oct-2026 Oct)

|_.Distro |_.Release |_.Lifecycle |_.Python 3.8|_.Python 3.9 |_.Python 3.10|
| *CentOS Stream* | 8 | | ✓ | ✓ | |
| *CentOS Stream* | 9 | | | | |
| *Ubuntu* | 20.04 | | | | |
| *Ubuntu* | 22.04 | | | | |
| *OpenSUSE Leap* | 15.2 | EoL (2022-01)| | | |
| *OpenSUSE Leap* | 15.3 | | | | |
| *Debian* | 8 | | | | |
| *Debian* | 8 | | | | |

Impediments to the above approach:
* "Ceph commits to support distros":https://docs.ceph.com/en/latest/start/os-recommendations/#platforms that don't follow the above cadence (e.g.: default CentOS 8 default Python is 3.6). However, in many cases these same distro provide newer versions via extra/non-official sources (EPEL, PPAs etc).
* While many supported distros support newer Python versions via extra packages, RPM-based distros (Fedora, CentOS, OpenSUSE, SEL) also require specific packages for each Python version (e.g.: @python3-cherrypy@ in CentOS EPEL is for 3.6, so another @python38-cherrypy@ package will be required for 3.8). Debian-like distros can share Python-only packages across multiple Python versions



The proposal would to perform this upgrade in a phased way:
* Upgrade main to Python 3.8. 3.8/3.9. If successful, backport to Pacific.
* Upgrade main to Python 3.9. 3.10. If successful, backport to Quincy.

|_.Distro|_.Release|_.Python 3.8|_.Python 3.9|_.Python 3.10|

* Branch @main@ should be upgraded to 3.10/3.11 as soon as available, and drop support for certain distros for Reef: | CentOS 8, Ubuntu 20.04, ...

| 8 | | | |

Back