How is Python 2 supported in RHEL after 2020?

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux
  • Python 2 programming language provided by python or python2 or similar package

Issue

  • How is Python 2 supported in RHEL after 2020?
  • How long will Python 2.7 be supported within Red Hat products?
  • As per https://pythonclock.org the Python project is retiring development on Python 2 Jan 1st, 2020. What happens after this date?
  • Python2 is available in an Application stream in RHEL8. Can you let me know what that means for the Python 2 lifecycle within RHEL8?
  • Will Python 2 be available for the entire life of RHEL 8?
  • Will Red Hat continue to provide bugfix/security errata to Python 2 after the EOL of the language?

Resolution

Introduction

The Python programming language is an open source project run by the Python Software Foundation (PSF).

The PSF have announced that their "official" support of version 2 of the Python language ends on January 1st 2020 as described at:

After that date, Python 2 will move to "community supported" status with no official help or resources from the PSF.

The suggested replacement is version 3 of the Python language, which the PSF have developed, improved, and promoted since before the Python 3.0 release in 2008.

The PSF's decision about which version of their Python language project to support and develop is a separate choice to Red Hat's business decision about the level of technical support and software development offered on packages within Red Hat products such as RHEL and its derivatives.

Just because the PSF consider Python 2 "unsupported" does not mean that Python 2 is "unsupported" within RHEL.

This difference between an "upstream project decision" and a "Red Hat product decision" is an important value provided by the RHEL subscription.

Security Errata and Bugfix Errata

Security errata (RHSA) and bugfix errata (RHBA) will be supplied within the normal RHEL lifecycle as per the dates listed at:

During the Full Support development phase, errata are regularly proactively backported from upstream projects.

During the Maintenance Support development phases, errata are handled on a case-by-case basis. Consideration is given to customer impact, the severity of the errata, available workarounds, and several other factors.

During the Extended Life Phase, no errata are provided.

All errata into all Red Hat products are provided at Red Hat's discretion.

Usage and Configuration

Red Hat will continue to offer usage and configuration support on the Python 2 package within RHEL, just like any other RHEL package, within the normal RHEL lifecycle.

Releases within the Full Support phase and Maintenance Support phase will receive full usage and configuration support on new and existing installs.

Releases within the Extended Life Phase will receive limited usage and configuration support on existing installs only.

Feature Enhancements

RHEL releases in the Maintenance and Extended Life Phase do not receive new feature enhancements, so no new features will be added to Python 2 in those phases.

Any feature enhancements into RHEL releases in the Full Support phase will be considered with the usual RHEL Request For Enhancement (RFE) process. Any enhancement would need to be done upstream before it is considered for inclusion in RHEL.

RHEL 8

As RHEL 8 is the "transition release" where the upstream Python project change their Python 2.7 status, there is increased interest in the Python 2 package lifecycle during RHEL 8.

The RHEL 8 AppStream Lifecycle Page puts the end date of RHEL 8's Python 2.7 package at June 2024.

After this date, customers are encouraged to upgrade to a later Python release such as Python 3. Customers may also continue with Python 2.7 as self-supported without official Red Hat Support.

RHEL 8 Python is discussed further in the product documentation:

The overall concept of RHEL 8's AppStreams is discussed further in the product documentation at:

RHEL 9 and Future Major RHEL Releases

Python 2 is not distributed with RHEL 9 and not planned for any future RHEL releases.

pip and PyPI

A large part of using the Python software ecosystem is the pip command to install packages and availability of those packages via the Python Package Index.

The development of the pip package and the administration of the PyPI service are outside of Red Hat's control.

The Python Packaging Authority have explained their expectations around PyPI and pip in regard to Python 2 at:

Community Python Packages

Most community authors and maintainers of third-party Python packages have either stopped support for Python 2, or are intending to stop support for Python 2 in 2020.

The expectation has been set that extremely few community Python packages will continue maintenance or support for their Python 2 versions into the future.

The majority of community Python packages are already available on Python 3 or have an equivalent replacement on Python 3.

If you have a query about a specific community package's intentions after 2020, please reach out to the open source community authors and maintainers who provide that package.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments