My colleagues Tomáš Hrnčiar and Miro Hrončok made good progress on updating Python 3.10 to Python 3.11 in Fedora, but some specific Python 3.11 incompatible changes are causing more troubles than others: https://discuss.python.org/t/experience-with-python-3-11-in-fedora/12911
We propose to revert the following 2 changes in Python 3.11 and postpone them in a later Python version, once most projects will be compatible with these changes:
* Removal of unittest aliases (bpo-45162): it broke 61 Fedora packages * Removals from configparser module (bpo-45173) - broke 28 Fedora packages
We reported the issue to many affected projects, or when possible, we also wrote a pull request to make the code compatible (lot of those were made by others, e.g. Hugo van Kemenade, thank you!).
The problem is that fixing a Fedora package requires multiple steps:
* (1) Propose a pull request upstream * (2) Get the pull request merged upstream * (3) Wait for a new release upstream * (4) Update the Fedora package downstream, or backport the change in Fedora (only needed by Fedora)
Identifying the Python incompatible changes causing most troubles took us a lot of time, but we did this work. Reverting the two Python 3.11 incompatible changes (causing most troubles) will save us "bug triage" time, to get more time on updating projects to Python 3.11 for the other remaining incompatible changes.
We are not saying that these incompatible changes are bad, it's just a matter of getting most projects ready before Python 3.11 final will be released.
By the way, before making a change known to be incompatible, it would be nice to run a code search on PyPI top 5000 projects to estimate how many projects will be broken, and try to update these projects *before* making the change.
For example, only introduce an incompatible change into Python once less than 15 projects are affected. Getting a pull request merged is nice, but a release including the fix is way better for practical reasons: people use "pip install <project name>".
Fedora work on Python 3.11 is public and tracked at: https://bugzilla.redhat.com/show_bug.cgi?id=PYTHON3.11
Click on "depends on" to see current issues: https://bugzilla.redhat.com/buglist.cgi?bug_id=2016048&bug_id_type=andde...
Example of bz #2025600: mom fails to build with Python 3.11: AttributeError: module 'configparser' has no attribute 'SafeConfigParser'.
Victor Stinner -- in the name of the Python Red Hat / Fedora maintenance team