Python 2’s ending is postponed: Does that mean an amnesty is coming?
In September, the Python Software Foundation announced that Python 2 would reach end of life when this year started. That means the foundation would stop supporting the software and will not improve it, even if they found security issues in it.
At the time, the foundation called developers to upgrade to Python 3 as soon as they could do it. Python 3 launched in 2008, nine years after the language was born. Python 3 was initially intended to fix a significant number of flaws Python 2 had and help it evolve. However, as Python 2 had found many ways to accomplish the same tasks and deal with previous bugs and flaws.
That simple fact slowed down Python 3’s adoption. Add up the fact that Python 3 performance was lackluster in comparison to Python 2, at least until 3.3 was released, and that many third-party tools didn’t support Python 3, and you’ll understand why so many developers didn’t adopt Python 3.
That’s a reason why it was a major turmoil when the announcement came. Nevertheless, Python 3 has improved significantly, and it’s a somewhat smooth transition to do.
However, many developers thought that the plan to EOL Python 2 was halted when it didn’t happen on January 1st. Does that mean Python 2 will get a new life?
Unfortunately, no. Python 2 is going to be retired in April 2020, which was, in fact, always the plan.
According to the official Python 2.7 release schedule document, PEPE 373 January 1st, 2020, wasn’t the date when Python 2 would die off. It was marked as the date when it would get “code frozen.” That means the Python Software Foundation would not fix bugs, improve, or update Python 2.7.18 (the last update) in any way.
However, from that day to April 2020, the Python development crew will be testing that frozen version of Python 2.7.18 to guarantee it’s all fine, and it has no regressions or bugs. All changes made during January and April will be made to ensure that the final release has no bugs or significant flaws. That means they’ll still be supporting Python 2, but only while they improve the latest launched version, not that they will be updating it into a new version.
That means that around mid-April 2020, Python 2.7.18 will be released, and that’s the actual end-of-life of Python 2 as the core Python development crew will cease all development or fixes on Python 2. All deployments of Python 2 will continue to run as they are, but won’t receive any updates, additions or bug fixed by the Python Software Foundation core team.
That’s bad news for some developers as many use Python 2 out of habit or because their organizations command it. However, transitioning from Python 2 to Python 3 is quite simple. If some particularities of your organization make it harder for you, it’s better to start planning how to mitigate Python 2’s EOL.