
Just in case this was somehow missed ----- Forwarded Message -----
From: "Petr Viktorin" <pviktori@redhat.com> To: python-list@redhat.com Cc: python-maint@redhat.com, devexp-list@redhat.com, "Nick Coghlan" <ncoghlan@gmail.com>, rhel-product-org@redhat.com, rhel-next@redhat.com, "Jan Beran" <jberan@redhat.com>, os-devel-list@redhat.com, "Langdon White" <langdon@redhat.com> Sent: Friday, May 20, 2016 12:46:11 PM Subject: Tech talk summary: Future of Python in RHEL and Fedora
Hello, Miro Hrončok and I have recently given a tech talk on the future of Python in RHEL and Fedora. If you didn't catch it, there's a recording available at: https://bluejeans.com/s/9EnS/
If you don't have time to watch, but develop or maintain Python-based software in RHEL, please take some time read this summary.
This is the current plan of the python-maint team, based on various discussions. Change requests are welcome.
## RHEL ##
The problems we're trying to solve are: - Upstream support for Python 2.x will end in 2020. We do not have resources to maintain Python 2 for the full RHEL 8 lifetime. - We'd like to avoid locking us and customers to a single Python version for the entire RHEL 8 lifetime. - Some customers want several versions of Python installed at once.
Our solution to these problems is to provide two (kinds of) Python stacks in RHEL 8: - System Python (/usr/bibexec/system-python), on which Red Hat-provided software can depend, and which can be upgraded or modified as Red Hat needs. This will be Python 3.5. - Separately installed Pythons, provided by SCLs or containers (the exact implementation should be determined as part of the modularization effort). Several of these can be installed at once, and they will have their own support lifetimes. The interpreters will be available at /usr/bin/pythonX.Y
Python-based software provided by Red Hat can either use System Python (which will be Python 3), or separately installed Pythons (which can be any version, but may be supported for a shorter time).
If you maintain such software, please plan for this. Let us know if you need any assistance or additional information. We at python-maint will be happy to help (but you do need to ask).
## Fedora ##
In Fedora, a system-python is included since F24, but for a different reason: to make cloud images as small as possible. Fedora's system-python contains a subset of the standard library, with some modules (like those needed for development) removed. The remaining pieces are provided by python-libs. Packages that care about minimizing their dependency footprint, and don't need the excluded modules, can depend on system-python instead of the full Python. We're planning to start talking to DNF and cloud-init teams to switch to system-python.
## Python 3 ##
Python 3.0 was released in 2008, and most active open-source projects now either support it or are working on it. Python 3 brings a better Unicode model (which, as Nick Coghlan put it, has unfortunately, "broken many of the workarounds that had been put in place to deal with the limitations of the old model"), and an ever-increasing list of new features. Python 2 is legacy software on extended support.
In Fedora, 44% of packages are ported. Many of the remaining 56% are practically abandoned. Based on somewhat hand-wavy estimates, 70% of packages that will be needed in RHEL are ported. Many of the rest are Red Hat projects.
Eventually, all Python software will need to be ported to Python 3. If you maintain a project that hasn't started yet, it is best not to delay. Resources and support are available: - Lennart Regebro’s Supporting Python 3: http://python3porting.com - RPM Porting Guide (for Fedora spec files): http://python-rpm-porting.readthedocs.io/ - We're also writing a "Conservative Porting Guide" for "laggard" projects (hopefully including customers' in-house tools). The plan is to release in the summer.
Let us know if you have any questions, if you need any help porting to Python 3, or if you see a bug in our plans!
-- Petr Viktorin
-- Francesco Romani RedHat Engineering Virtualization R & D Phone: 8261328 IRC: fromani