Title: Simple End-of-life guide covering all unsupported versions
Type: enhancement Stage: resolved
Components: Documentation Versions:
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: Andreas Lutro, Mariatta, barry, docs@python, dshafik, ezio.melotti, georg.brandl, glasnt, ncoghlan, r.david.murray, vstinner, willingc
Priority: normal Keywords:

Created on 2015-10-02 05:27 by ncoghlan, last changed 2018-09-15 11:42 by Mariatta. This issue is now closed.

Messages (17)
msg252084 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2015-10-02 05:27
Katie McLaughlin recently pointed me at PHP's summary page for the End-of-Life dates for their various releases:

That seems like a useful thing to offer, but we unfortunately don't currently have a great place for this kind of documentation:

- the main docs are version specific, while this kind of page should be version independent
- the update process, access control model and reader experience for is too different from that for the main documentation
- ditto for the wiki
- informational PEPs are closer from an access control perspective, but aren't generated with Sphinx and are still disconnected from the main docs from a reader perspective
- it's off-topic for the developer guide

The "right" answer seems to be setting up a separate "docs" project on to use as the landing page for and for version independent information like this (the redirects already defined as part of PEP 430 should continue to handle unqualified deep links into the Python 2 docs).

I'm not sure how much reconfiguration work such a change would entail, though.
msg252085 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2015-10-02 06:50
Adding Georg directly to the nosy, as I think this kind of structural question falls under his domain as the docs lead :)
msg252086 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2015-10-02 07:09
We now putting the such page on website, as PHP did?

I like the idea of being very explicit on EOL. It's a FAQ on mailing lists. Even for me, being involved in Python developments, it's not always easy to know the status of each branch. For example, I recently asked the question for Python 3.4 :-) The answer was that it will switch to security fixes only after the next 3.4.x release.

The EOL page must explain each stage of maintenance:

* development branch: any kind of change including new features
* bugfix: no new feature, only bugfixes including security fixes
* security fixes only: no more binary release, only source code release, only security fixes and some execeptional bugfixes (sorry, I don't know the exact rule for bugfixes at this stage)
* end of life: dead, no change at all

Python 2.6 reached its EOL or security fixes are still accepted?

I guess that Python <= 2.5, Python 3.0 and Python 3.1 are dead, right?
msg252087 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2015-10-02 07:30
The branch status is captured in the release PEPs:

2.6 (& 3.0):

The "devcycle" page in the developer guide captures the details of the difference phases:

So perhaps the expedient near term solution would be to put this info on the devcycle page, and move it later?
msg252088 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2015-10-02 07:33
Items to capture for each unsupported or security fix only release series:

* date & version of last binary release (maintenance -> security fix only transition)
* date & version of last source-only security release (commercial redistributors are on their own for ongoing support from this point)
* link to the release PEP
* link to the upgrade guide in the next What's New doc once the next version is released
msg252089 - (view) Author: Ezio Melotti (ezio.melotti) * (Python committer) Date: 2015-10-02 07:55
> - the main docs are version specific, while this kind of page
> should be version independent

They could still be included in the main docs with a clear link at the top that says "For the most-recently updated schedule see d.p.o/3/eol.html.".  Each version should still be correct -- it will just lack the eol dates for the newest releases.
The Unicode Consortium and the W3C do something similar (see e.g. and

Another option is to create a new repo where to put version-independent docs (e.g. the whatsnew, maybe even Misc/NEWS).  It shouldn't be difficult to then include these pages in the main docs.
msg252098 - (view) Author: Davey Shafik (dshafik) Date: 2015-10-02 09:45
We (PHP) also have a more visual guide at which updates dynamically to show the current status.

It shows the current status (EOL, Security only, Active) of releases from PHP 5.3, which is still the default for many LTS distros and still in common use.
msg252099 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2015-10-02 09:48
Davey Shafik added the comment:
> We (PHP) also have a more visual guide at which updates dynamically to show the current status.

Great job! It's much easier to see the status with the summary in a
single picture.
msg252102 - (view) Author: Ezio Melotti (ezio.melotti) * (Python committer) Date: 2015-10-02 10:04
I like that, in fact I used the same format in my talk "The development process of Python": (slides 20/21).

The main problem is where to put all this though.
msg252119 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2015-10-02 14:45
It seems to me a link to this version independent info could logically appear on the docs front page.  I think we ought to add the devguide there already, for instance.  The 'Meta information' section seems perfectly appropriate...even though all the docs currently in there are maintained in the Docs directory, both 'about' and 'reporting bugs' are currently version-independent information.
msg252128 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2015-10-02 15:16
> It seems to me a link to this version independent info could logically appear on the docs front page.

Yes, that sounds good. I do like the PHP graph of versions too...
msg252131 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2015-10-02 15:32
It should also be linked from the downloads page.
msg252137 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2015-10-02 16:15
+1 to adding the EOF info to the Docs front page and a link from the downloads page.

Also, +1 to David's suggestion to adding the devguide as well to the front page. In the future, it would be nice to add the devguide to the CPython repo instead of having it as a standalone. It would consolidate things in to one workflow instead of a different workflow for the devguide.

P.S. Ezio - nice slide deck content :)
msg252138 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2015-10-02 16:17
And that would be EOL (end of life) not EOF. More coffee please...
msg258894 - (view) Author: Katie McLaughlin (glasnt) Date: 2016-01-24 23:35

I recently saw an announcement[0] about the adding of the lifecycle status right at the top of the devguide[1]. I believe this was added as part of Issue 26165[2]

Given this, can this issue be marked as Resolved?

0 -
1 -
2 -
msg325425 - (view) Author: Andreas Lutro (Andreas Lutro) Date: 2018-09-15 07:14
I see this has been closed, but the page on the devguide is still really hard to find. On the python IRC channel I often see questions about this and I always have a hard time finding the page with the correct information.

If I google "python version support" or "python version end of life" or "python version lifecycle" I don't arrive at that page. For some of these searches I even end up on a separate devcycle[1] page which only contains old versions of python. Compare that to PHP, where the official "supported versions" page is the top result no matter what I search for.

Nevermind the fact that the lifecycle of python versions is relevant to non-developers as well, making it un-intuitive to go to the devguide to find this information.

I really think this needs to be made part of's main website, with some good SEO.

msg325431 - (view) Author: Mariatta (Mariatta) * (Python committer) Date: 2018-09-15 11:42
This is not being tracked in:
Date User Action Args
2018-09-15 11:42:56Mariattasetnosy: + Mariatta
messages: + msg325431
2018-09-15 07:14:28Andreas Lutrosetnosy: + Andreas Lutro
messages: + msg325425
2016-01-25 01:55:22berker.peksagsetstatus: open -> closed
resolution: fixed
stage: resolved
2016-01-24 23:35:56glasntsetnosy: + glasnt
messages: + msg258894
2015-10-02 16:17:12willingcsetmessages: + msg252138
2015-10-02 16:15:53willingcsetnosy: + willingc
messages: + msg252137
2015-10-02 15:32:16georg.brandlsetmessages: + msg252131
2015-10-02 15:16:16georg.brandlsetmessages: + msg252128
2015-10-02 14:45:48r.david.murraysetnosy: + r.david.murray
messages: + msg252119
2015-10-02 13:58:49barrysetnosy: + barry
2015-10-02 10:04:25ezio.melottisetmessages: + msg252102
2015-10-02 09:48:21vstinnersetmessages: + msg252099
2015-10-02 09:45:02dshafiksetnosy: + dshafik
messages: + msg252098
2015-10-02 07:55:10ezio.melottisetnosy: + ezio.melotti
messages: + msg252089
2015-10-02 07:33:57ncoghlansetmessages: + msg252088
2015-10-02 07:30:28ncoghlansetmessages: + msg252087
2015-10-02 07:09:50vstinnersetnosy: + vstinner
messages: + msg252086
2015-10-02 06:50:14ncoghlansetnosy: + georg.brandl
messages: + msg252085
2015-10-02 05:27:49ncoghlancreate