After 11 years of supporting programming language Python from the 2.7 branch, the Python Software Foundation has released the last ever update for it and is urging users to move on to Python 3 to continue receiving first-party support.
Python 2.7 support was meant to end in 2015 but was extended five years until 2020, six years after Python's creator, Guido van Rossum, announced Python 3 and implored users to "move on to Python 3".
January 1, 2020 also looked set to be the end of life for Python 2.7, but it was eventually decided that should happen in April 2020 with the just-released Python 2.7.18.
With the release of Python 2.7.18, CPython core developers say, "It's time for the CPython community to say a fond but firm farewell to Python 2."
"Over all those years, CPython's core developers and contributors sedulously applied bug fixes to the 2.7 branch, no small task as the Python 2 and 3 branches diverged," CPython core developer Benjamin Peterson wrote.
"There were large changes midway through Python 2.7's life, such as PEP 466's feature backports to the ssl module and hash randomization."
In 2014, under Python Enhancement Proposal (PEP) 466, Python developers decided to backport the OpenSSL ssl module from Python 3.4 to Python 2.7, despite 2.7 already being a maintenance release.
Python core developers' upstream policy dictated that no new features be added to maintenance releases. However, an exception was made because of how important Python had become to the web and because using an outdated version of OpenSSL in Python 2.7 had broader implications for internet security.
"Traditionally, these features would never have been added to a branch in maintenance mode, but exceptions were made to keep Python 2 users secure," noted Peterson.
Van Rossum may have announced Python 3 in 2008, but it took many years for major Python users like Facebook, Instagram, and Dropbox to fully move to Python 3.
Dropbox, where van Rossum worked until retiring last year, began the process of migrating four million lines of Python code from Python 2 to Python 3 in 2015, but only managed to complete it in September 2018.
Moving to Python 3 has also been a major project for Linux distributions. As Python developers noted in 2014, it would be a "mammoth task" for Ubuntu maintainers to port default system services and scripts to Python 3, and to remove Python 2 from its distribution images. Fedora maintainers also took years to eliminate Python 2.
"Python 3 would be nowhere without the critical work of the wider community. Library maintainers followed CPython by maintaining Python 2 support for many years but also threw their weight behind the Python 3 statement (https://python3statement.org)," wrote Peterson.
"Linux distributors chased Python 2 out of their archives. Users migrated hundreds of millions of lines of code, developed porting guides, and kept Python 2 in their brain while Python 3 gained 10 years of improvements."
As an open-source project, third parties are free to offer paid support for older versions of Python, but the Python Software Foundation from now on will only provide free, first-party support for Python 3.