Like many others, I was watching pythonclock.org to celebrate the end-of-life for Python 2.7 at the end of 2019, when someone shared a link to the announcement Python 2 series to be retired by April 2020.
My understanding is that Python 2.7 is end of life, and 2.7.18 will simply “close up shop” by releasing the last outstanding changes on the 2.7 branch.
However, I’m taken aback by the timing and phrasing of announcement, and the timing of the release. Sure, that’s irrational. But over the last five years I’ve put in a huge amount of work to ensure that my organisation is ready for Python 2’s end of life. Shipping another Python 2 release months afterward undermines the goal I’ve worked towards and the deadline I set my organisation.
There are good rational reasons not to proceed with Python 2.7.18:
- The end of life of Python 2 is a crucial milestone and messaging has suddenly become very confused. I read comments from several people who to seemed to take this as a postponement or a reprieve. And that’s completely understandable when the title of the announcement is “PYTHON 2 SERIES TO BE RETIRED BY APRIL 2020”.
- We’ve promised maintainers an end to the support burden of Python 2. Now that Python 2 is end of life we should expend no more energy or thought on it, and we should not cost anyone any more effort. Let’s give everyone a break, please.
- It should not become a precedent that end-of-life Python versions get releases months after the communicated death date. “End of life” should have a clear meaning, for the benefit of everyone who relies on these dates.
If it’s not acceptable to simply throw away work on the 2.7 branch and say that 2.7.17 was actually the last release, how about freezing a 2.7.18rc now, for a final release ASAP?