Android-FileBrowser-FilePicker icon indicating copy to clipboard operation
Android-FileBrowser-FilePicker copied to clipboard

Python Version Support Timeline

Open waylan opened this issue 6 years ago • 11 comments

Just noting this so I can find it later. Python defines the status of its versions herehere.

The following end-of life cycles are currently scheduled:

  • Python 3.4 2019-03-16
  • Python 2.7 2020-01-01
  • Python 3.5 2020-09-13
  • Python 3.6 2021-12-23
  • Python 3.7 2023-06-27
  • Python 3.8 2024-10
  • Python 3.9 2025-10
  • Python 3.10 2026-10
  • Python 3.11 2027-10
  • Python 3.12 2028-10
  • Python 3.13 (release date 2024-10-01) 2029-10

Also of interest is https://python3statement.org/ where various projects have signed on to a pledge to discontinue support for Python 2,7 on or before 2020. I'm indifferent to joining the pledge, but the arguments given for dropping support could be useful when we take that move.

I intend to keep this issue open indefinitely to track future updates. As a general rule, I expect we will drop support for a Python version with our next minor release after Python has dropped support. That said, if/when Travis drops support, our tests stop passing, so we have occasionally dropped support quickly in the past. Of course, as per our Contributing Guidelines, such a change should not happen in a bugfix release.

waylan avatar Nov 27 '18 19:11 waylan

I personally don't support Python 2.7 on any new projects if I don't have a direct need. This has been a personal choice as I think it is past time for Python 2.7 to retire (and I am tired of supporting it). Some Python GUI projects I've already dropped Python 2.7 just due to being tired of dealing with Unicode hacks for narrow vs wide characters and the very different Unicode handling that Python 2.7 generally does.

It doesn't matter to me if Python Markdown pledges or doesn't, but I personally lean towards pledging.

I personally plan on dropping Python 2.7 for all of my projects around EOL. As far as Python 3.X termination, I usually drop them when Travis complains as I am more indifferent to most of the 3.x EOL; the impact of these is far less significant.

EDIT: Thinking about this more, I don't care about the pledge site itself as much as I care about the idea behind the pledge.

facelessuser avatar Nov 27 '18 20:11 facelessuser

I think it is past time for Python 2.7 to retire (and I am tired of supporting it)

So am I. Yet, it seems that a significant portion of our user base is still using it. Essentially, in the spirit of avoiding disputes, I'm passing this off to Python. We simply do what Python does.

However, when it comes to Python 3. Yeah, whenever Travis complains is probably a reasonable approach.

waylan avatar Nov 27 '18 20:11 waylan

+1 for dropping Python 2 support in the end of 2019, together with Python.

I also don't mind if you drop it earlier.

mitya57 avatar Nov 27 '18 20:11 mitya57

Barring any strong objection, I'm inclined to drop support for Python 2.7 in the next release (3.2).

As a general rule, I expect we will drop support for a Python version with our next minor release after Python has dropped support.

I don't know when 3.2 will be released exactly1, but as of today we are 3 months away from Python 2.7 being officially deprecated. I don't see any harm in dropping support a few months early rather than waiting until after.


1 Currently there is only one open PR (#803) in the milestone, but that is is an experimental work-in-progress and certainly not a reason to hold up a release.

waylan avatar Sep 30 '19 14:09 waylan

I am fully behind dropping 2.7 in 3.2.

facelessuser avatar Sep 30 '19 15:09 facelessuser

Oops, didn't mean to close this.

waylan avatar Sep 30 '19 15:09 waylan

With the release of Python 3.9 (due today), Python is adopting PEP 602 which is changing Python's release cycle. The new cycle is for a major version to be released every 12 months (previously it was 18 months). However, it appears that the intention is that each release will contain a smaller number of features and deprecations will be spread out over more releases.

In the end it probably won't affect us much. However, we may be adding/dropping support for Python versions more often.

waylan avatar Oct 05 '20 13:10 waylan

I'm assuming the "dropping" will still be synced with Python, right? Is the supported timeline for each release shorter now as well? Forgive as I was aware of the release change, but not to all the specific details with when releases become EOL, etc.

facelessuser avatar Oct 05 '20 13:10 facelessuser

According to this example chart in the PEP showing how the changes affect release and EOF dates, it looks like we would have 5 Python versions receiving support rather than 4 at a given time.

And yes, I expect our adopting and dropping schedule will match Python's. We will either drop or add support for a Python version in our next point release after Python has dropped or released a version.

waylan avatar Oct 05 '20 16:10 waylan

Okay, that sounds reasonable. I was expecting the main impact to be supporting at least an extra Python version each cycle, and it sounds like that is what will happen.

facelessuser avatar Oct 05 '20 16:10 facelessuser

Kudos to the issue creator! It will be helpful to track python version supports

Nirzak avatar Apr 21 '21 09:04 Nirzak