What determines Python 2's remaining lifetime?

January 3, 2014

In light of recent things one can sensibly ask just how long people can keep using Python 2. At one level the answer is 'until there is some significant problem with Python 2 that the Python developers don't fix'. This could either be a security issue or something important that Python 2 and its core modules don't support (eg, at one point IPv6 would have been such a thing). At the moment it isn't clear how long the Python developers will be fixing things in Python 2; the most recent release was 2.7.6, made November 10th. However here asserts that the Python developers will provide full support until 2015 and probably security fixes afterwards.

But this is an incomplete view of the situation because the Python developers themselves aren't the only people involved; there's also the OS distributions that package some version of Python. Many of these OS distributions actually depend on Python themselves for system tools. If the Python developers abandon fixing Python 2, the OS distributors may well have no choice but to take over. So we can ask a related question of how close OS distributions are to moving away from Python 2.

I will skip to the summary; just as with last time the news is not good for Python 2 going away any time soon. Ubuntu will likely miss their migration target for 14.04 LTS, leaving them needing Python 2 on 14.04 LTS until 2019. Fedora won't transition for at least a year (ie Fedora 22), which means that Red Hat Enterprise Linux 7 will almost certainly ship at some point in 2014 with system tools depending on Python 2, leaving Red Hat supporting Python 2 until at least 2019 and likely later.

(FreeBSD, OmniOS, and so on are less interesting here because as far as I know none of them are promising long support periods the way RHEL and Ubuntu LTS are. However I believe that all of them are still shipping Python 2 as the default and I know that OmniOS has tools that depend on it.)

So my answer is that in practice it's highly likely that Python 2 will get important updates through at least 2020, whether this is from the Python developers themselves or from Linux distributions with long term support needs forking the code and doing their own fixes. Given what Alex Gaynor reports, some of this will likely be driven by customer demand, ie people will likely be deploying Python 2 systems on RHEL 7 and Ubuntu 14.04 LTS and will want any important Python fixes for them.


Comments on this page:

Actually, current RHEL support plans suggest RHEL7 will be maintained until 2024, for some value of "maintained".

However I think we may see a shift towards "let customers use python3 by default and provide python2 for the distro tools only" somewhere along the line. More or less like the current situation with RHEL5 which ships python 2.4 as /usr/bin/python and python 2.6 for new app deployments (at least that's the way I understand it).

Of course this is just my own view of the situation, as a CentOS user in the academic world, not as an enterprise customer. ;-)

-- Arnaud Gomes

By cks at 2014-01-06 14:52:34:

If Alex Gaynor's information is to be believed, most people are clinging grimly to Python 2 even when Python 3 is available. As such I assume that they're going to use Python 2 as long as possible, which approximates 'as long as it keeps working and is supported'. Even with Python 3 available on RHEL and the theoretically recommended option, I don't expect many people to actually adopt it.

(Arguably this would require Red Hat to support Python 2 on RHEL 7 even if their system tools didn't need it, simply because of customer demand over the supported lifetime of RHEL 7. But if RH has to support it because of system tools, I expect customers to take advantage of that.)

From 31.151.153.51 at 2014-01-12 11:41:53:

Omnios uses KYSTY: http://omnios.omniti.com/wiki.php/KYSTY, so you should not rely on their software versions for your tools, it is bound to change anytime. I quite like that approach.

Packaging any tool for pkg is dead easy, so they are right to just support the system and not the libraries.

Written on 03 January 2014.
« Python 3's core compatibility problem and decision
One aspect of partial versus full entries on blog front pages »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Jan 3 02:53:15 2014
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.