For a bit of necessary context: The NEP 29 drop schedule is much faster than the EOL schedule of Python itself. Python 3.8 is supported until 2024-10, but NEP 29 already drops it 2023-04.
NEP 29 is intended to improve interoperability of fast-moving scientific software. It is quite relevant where in the dependency streams a project is. NumPy, SciPy are *upstream* of many projects and *downstream* of nothing. In contrast, Sage is *downstream* of lots and lots of projects, and currently *upstream* of nothing except for some user packages. Effectively I don't think we need to make any commitment to a particular schedule at a time, as the upgrades of major dependencies (mostly NumPy, SciPy, NetworkX, SymPy) just force us to drop support for a particular Python version. For example, a SciPy upgrade to the 1.10 series is due for 10.0 (and already positively reviewed in https://github.com/sagemath/sage/pull/35082); it still supports Python 3.8. The following SciPy release 1.11 (which will drop Python 3.8) is not coming out before 2023-07. So we would gain nothing by dropping Python 3.8 already in a Sage 10.0 release some this spring. Of course, another argument for dropping support for a Python version (such as Python 3.8) would be that it is missing critical features that hold us back in the development of the Sage library. Issue https://github.com/sagemath/sage/issues/29756 has a bit of this discussion. On Friday, February 24, 2023 at 7:10:07 PM UTC-8 Tobias Diez wrote: > Hi all, > > I propose to follow the NumPy enhancement proposal 29: "Recommend Python > and Numpy version support as a community policy standard" available at: > https://numpy.org/neps/nep-0029-deprecation_policy.html > > In essence it specifies when it's okay to drop support for old Python > version. Namely, a release should support "all minor versions of Python > released 42 months prior to the project, and at minimum the two latest > minor versions. ". In particular, this means: > - On Apr 14, 2023 drop support for Python 3.8 (initially released on Oct > 14, 2019) > - On Apr 05, 2024 drop support for Python 3.9 (initially released on Oct > 05, 2020) > > The main idea of NEP 29 is to have a community-wide standard to prevent > issues with e.g. dependencies dropping support for older Python versions to > early. It is followed by many scientific packages such as Scipy, > Matplotlib, and IPython, among others. Sage itself is also roughly > following it (based on the past drops, e.g. Python 3.7 support was dropped > 9 months ago and NEP recommends Dec 26, 2021). But as far as I'm aware > there is not yet a clear policy for when to drop support for older versions. > > Of course, the dates in the NEP 29 are only a guideline and not set in > stone, e.g. you don't want to drop support at the end of the release cycle > just because the NEP says so. But for example, Sage 10 will be most likely > released after Apr 14 2023, so we can now already drop support for Python > 3.8. > > Relevant issue: https://github.com/sagemath/sage/issues/30384 > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/a232c964-b216-4e4f-86f0-b987c1455fc6n%40googlegroups.com.