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

Add a time limit to Python version support #12450

Closed

Conversation

pradyunsg
Copy link
Member

Based on discussion in #11944

This has a nice side-effect that we can consistently drop Python version support in our YY.0 releases, if we wanted to be lazy and not check PyPI download version numbers. :)

@pfmoore
Copy link
Member

pfmoore commented Dec 23, 2023

Given the suggestion in #11944 that the download numbers are kept high by large institutional numbers, is there any actual value in having a trigger based on download counts at all? It feels like it would be more honest if we simply switched to follow CPython EOL dates directly. (Although if we did that, I wonder what the reaction would be from LTS Linux distributions, for example).

@pradyunsg
Copy link
Member Author

I'd be on board for that. I'll update this PR to align with CPython's EOL exactly, rather than with an offset.

@pradyunsg pradyunsg force-pushed the add-time-limit-to-py-version-support branch from 1f8976e to 2fb63f6 Compare December 23, 2023 16:54
Currently, we are supporting Python version until their usage falls
low-enough. This worked well, when we had fewer users and Python's
sliding window moved slower.

We have, however, not used the threshold for the last few Python
releases and our metrics for determining usage levels are not
particularly robust against being overrepresentative of certain usage
patterns (we're seeing this in the current usage numbers).

Aligning with CPython helps ensure that the maintainers of pip aren't
subsidising the cost of EOL Python versions indefinitely.
@pfmoore
Copy link
Member

pfmoore commented Dec 23, 2023

🤷 I'm still more interested in the question of what we gain by desupporting than fine-tuning the policy, but I'm not going to block this either way...

@notatallshaw
Copy link
Member

notatallshaw commented Dec 23, 2023

One gain is ease of vendoring libraries, I remember Pip is stuck on vendoring urllib3 2.0 (but I didn't remember the specifics).

It seems common in the Python ecosystem to either follow the Python EoL schedule or to follow the Numpy supported Python schedule. There are Python versions after 3.7 that introduce new syntax, such as walrus operator, match statement, type syntax. If vendored libraries choose to use those because they don't support EoL Python version then Pip would need to decide how to vendor those.

@hugovk
Copy link
Contributor

hugovk commented Dec 23, 2023

Perhaps link to https://devguide.python.org/versions/, where people can find CPython EOLs?

One benefit of using a set schedule is it helps people plan ahead, and there's no surprises when versions will be dropped.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants