Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python Version Support Timeline #760

Open
waylan opened this issue Nov 27, 2018 · 11 comments
Open

Python Version Support Timeline #760

waylan opened this issue Nov 27, 2018 · 11 comments
Labels
process Discussions regarding policies and development process.

Comments

@waylan
Copy link
Member

waylan commented Nov 27, 2018

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.

@facelessuser
Copy link
Collaborator

facelessuser commented Nov 27, 2018

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.

@waylan
Copy link
Member Author

waylan commented Nov 27, 2018

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.

@mitya57
Copy link
Collaborator

mitya57 commented Nov 27, 2018

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

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

@waylan waylan added the process Discussions regarding policies and development process. label Jan 23, 2019
waylan added a commit that referenced this issue Jan 23, 2019
Document a new label type for issues and PR which include discussions regarding policies and development process. See #760 for an example.
waylan added a commit to waylan/markdown that referenced this issue Mar 4, 2019
Python is dropping support for PY3.4 on  2019-03-16. Therfore we are dropiiing support as well. See Python-Markdown#760.
waylan added a commit that referenced this issue Mar 4, 2019
Python is dropping support for PY3.4 on  2019-03-16. Therefore we are dropping support as well. See #760.
@waylan
Copy link
Member Author

waylan commented Sep 30, 2019

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 waylan closed this as completed Sep 30, 2019
@facelessuser
Copy link
Collaborator

I am fully behind dropping 2.7 in 3.2.

@waylan waylan reopened this Sep 30, 2019
@waylan
Copy link
Member Author

waylan commented Sep 30, 2019

Oops, didn't mean to close this.

waylan pushed a commit that referenced this issue Oct 24, 2019
* Python syntax upgraded using `pyupgrade --py3-plus`
* Travis no longer uses `sudo`. See https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration

See #760 for Python Version Support Timeline and related dicussion.
waylan pushed a commit that referenced this issue Oct 24, 2019
@waylan
Copy link
Member Author

waylan commented Oct 5, 2020

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.

@facelessuser
Copy link
Collaborator

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.

@waylan
Copy link
Member Author

waylan commented Oct 5, 2020

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.

@facelessuser
Copy link
Collaborator

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.

@Nirzak
Copy link

Nirzak commented Apr 21, 2021

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

waylan added a commit to waylan/markdown that referenced this issue May 24, 2022
Python dropped support on 2021-12-23. Our policy (Python-Markdown#760) is to drop
support on the next point release after Python does.
waylan added a commit that referenced this issue May 24, 2022
Python dropped support on 2021-12-23. Our policy (#760) is to drop
support on the next point release after Python does.

* Remove py36 tests
* Test multiple recent versions of pypy
* Remove pep562 backport
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
process Discussions regarding policies and development process.
Projects
None yet
Development

No branches or pull requests

4 participants