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

Adopt the “time window-based” policy for support of Python versions from NEP 29 #30384

Open
mkoeppe opened this issue Aug 17, 2020 · 31 comments · May be fixed by #35403
Open

Adopt the “time window-based” policy for support of Python versions from NEP 29 #30384

mkoeppe opened this issue Aug 17, 2020 · 31 comments · May be fixed by #35403

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Aug 17, 2020

The NEP 29 policy (https://numpy.org/neps/nep-0029-deprecation_policy.html) aims to "standardiz[e] a recommendation for project support of minimum Python and NumPy versions [to] improve downstream project planning."
With this ticket, we adopt this deprecation policy of old Python versions for the Sage library.

According to NEP 29 support for Python 3.7 should be dropped in December 2021. Actually doing this will be subject of a new ticket that should be merged at the beginning of the 9.6 release cycle.

Related discussions:

CC: @slel @jhpalmieri @orlitzky

Component: python3

Author: Tobias Diez

Branch/Commit: public/python3/nep29 @ edf1711

Issue created by migration from https://trac.sagemath.org/ticket/30384

@mkoeppe mkoeppe added this to the sage-9.2 milestone Aug 17, 2020
@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@orlitzky
Copy link
Contributor

comment:3

I'm happy to punt on this. +1 from me.

@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Oct 8, 2020
@tobiasdiez
Copy link
Contributor

comment:5

What is needed to follow NEP 29? I voting on the sage dev mailing list?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 5, 2020

comment:6

https://wiki.sagemath.org/ReleaseTours/sage-9.2#Support_for_Python_3.6.2C_3.8.2C_and_3.9_added
already declares the Sage 9.2 conforms to NEP 29.

I think the only thing missing is to add some sentences to the developer manual.

I don't think we need a vote. In general there seems to be limited interest in discussing release policies.

@tobiasdiez
Copy link
Contributor

Branch: public/python3/nep29

@tobiasdiez
Copy link
Contributor

comment:7

Ok, I've added a few sentences. Thus, this should be ready for review now.


New commits:

964dd29Add documentation for following NEP 29

@tobiasdiez
Copy link
Contributor

Commit: 964dd29

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 7, 2020

comment:8

I don't think that NEP 29 requires us to drop support for certain Python versions; rather, it allows us to do so after the listed dates and still be compliant.

Dropping support for a Python version would need a discussion on sage-devel, I would think. (We probably miscommunicated about this.)

@tobiasdiez
Copy link
Contributor

comment:10

NEP 29 is actually quite explicit about that one should drop support after the 42 months, e.g "On Jun 23, 2020 drop support for Python 3.6 (initially released on Dec 23, 2016)". But that's, of course, only a recommendation (like everything in this NEP). It could be sage's policy to support also older python versions, but that's then no longer NEP 29 (in it's strict form). However, one should also keep in mind that supporting old Python versions results in technical debt that might be bigger than the gains from supporting old systems.

Also correct me if I'm wrong, but since sage is also installing its own python version, sage can still be used on older systems, right? It is just that the system python is not used.

Should I initiate a discussion on the mailing list, or do you want to do this?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 7, 2020

comment:11

I wouldn't like to drop Python 3.6 support in the Sage 9.3 release unless there are more substantial reasons, so I think it's better to have this discussion in the 9.4 cycle

@tobiasdiez
Copy link
Contributor

comment:13

I think this can go in now. Actually dropping Python 3.6 support is done at #30551.

@slel
Copy link
Member

slel commented Jul 24, 2021

comment:14

Author name please.

@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Aug 9, 2021
@slel
Copy link
Member

slel commented Aug 19, 2021

Author: Tobias Diez

@DaveWitteMorris
Copy link
Member

comment:17

I apologize if this is noise, but it appears to me that this ticket has the wrong branch. When I click on the link public/python3/nep29 in the branch field, I see a commit that deletes a huge number of lines from src/doc/en/developer/coding_basics.rst, but I think the branch is supposed to be commit 964dd29 of comment:7, which just adds a few lines about following NEP 29.

@tobiasdiez
Copy link
Contributor

comment:22

Why? Maybe its not totally clear from the formulation, but this ticket is about how long sage wants to support old versions of Python. I.e., specify a policy for when support for a certain Python version can be dropped to reduce the burden of maintenance. That we try to support the newest version goes without saying.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 10, 2021

comment:23

Replying to @tobiasdiez:

That we try to support the newest version goes without saying.

It goes without saying, but also without much doing, which is the problem

@tobiasdiez
Copy link
Contributor

comment:24

With Python 3.10 now being supported #30766, there shouldn't be any blockers to get this in.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 28, 2021

comment:25

I'm -1 on this. I think the experience in this release cycle has confirmed that the project is not in a position to commit to a rigid version support policy. Lots of packages that we depend on were not ready for Python 3.10 at the time of the Python 3.10 release - more updates are trickling in (#33070). Python 3.10 support as of #30766 is still marked as "experimental" -- it has not seen much testing at all.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 3, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

3622ceaMerge branch 'develop' of https://github.com/sagemath/sage into public/python3/nep29
edf1711Reformulate to emphasize the focus on old Python versions

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 3, 2022

Changed commit from 683a1dd to edf1711

@tobiasdiez
Copy link
Contributor

Changed dependencies from #30766 to none

@tobiasdiez
Copy link
Contributor

comment:27

The focus of NEP 29 is the deprecation of old Python versions. The idea is to have a community wide standard on when to drop support for old versions.

But I agree that this wasn't clear from the formulation so far. Changed the text and ticket description to hopefully clear up this confusion.

@tobiasdiez

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants