Hi all, My question here is: would it be problematic for Sage if SymPy were to follow SPEC 0/NEP 29 which would mean dropping support for older Python versions more quickly?
We are about to release SymPy 1.13 which will support Python 3.8 to 3.13. It has been asked on the SymPy mailing list whether SymPy could adopt SPEC 0 which is basically the same as NEP 29: https://groups.google.com/g/sympy/c/VNz2xJ1Sywo/m/0H1-KmaJAgAJ?utm_medium=email&utm_source=footer https://scientific-python.org/specs/spec-0000/ There are older discussions about this as well: https://github.com/sympy/sympy/issues/21884 This relates to previous discussions on this list about Sage following NEP 29: https://groups.google.com/g/sage-devel/c/j1cwbTU8aOU/m/Ap_1pHlsBQAJ?utm_medium=email&utm_source=footer https://groups.google.com/g/sage-devel/c/3Zoq0CNE1hE/m/m40v2e_cBwAJ Ordinarily SymPy would have dropped support for Python 3.8 by now anyway regardless of SPEC 0 or NEP 29. I can't remember where this was discussed but I think that the reason Python 3.8 is still supported is just because we thought it was needed by Sage. Following those specifications in coordination with other scientific Python packages would mean dropping both 3.8 and 3.9 now and then also dropping 3.10 in a few months. I don't propose to do this right now with the SymPy 1.13 release but once 1.13 is released I want to drop at least 3.8 if not also 3.9 and then ideally we would have a clear policy for this going forwards. It is not particularly difficult for SymPy itself to support a wide range of Python versions but it creates potential problems for other packages that depend on SymPy. For example when SymPy 1.13 is released (soon) any packages that depend on SymPy potentially need to put out updates for all of the same Python versions that the SymPy release claims support for. If the SymPy 1.13 update breaks something then pushing it out to as many Python versions as possible is like spreading the risk of breakage as far as possible. We need to be careful about this because besides direct end users or Sage there are also very widely used packages like pytorch that depend on SymPy which has forced us into rushing out fix releases recently: https://github.com/sympy/sympy/issues/26273 Personally I am in favour of SymPy coordinating with the rest of the scientific Python ecosystem by adopting SPEC 0/NEP 29 so that there is a clearly defined policy that is understood and depended on by everything downstream. Old versions of SymPy will continue to work with old versions of Python so people who like packaging old versions of everything (e.g. Linux distros) can do so. People who want to use the latest versions of Python packages should also use recent versions of Python. My recommendation to a user who just wants to use Python would generally be to install the second most recent version of Python i.e. currently Python 3.11 but soon 3.12. I would not recommend anyone to install Python 3.8 right now. For now I use pyenv to install different Python versions but hopefully in future it will become easier to install a particular Python version from binary on any OS. I expect that soon uv will be able to do this using the PyBI binaries at which point I will probably switch to using uv in replacement of both pyenv and pip. I expect that in future editors like vscode will be able to handle installing a particular Python version and all the packages automatically for users who will not even need to run uv/pip etc directly. Conda already makes it easy to install particular Python versions for people using conda. Windows/MacOS users will typically download the newest Python version from the python.org download page. Linux distros usually have ways of installing newer Python versions from repos and it's not hard to build Python on Linux anyway. It is not clear to me what the benefit is of supporting old Python versions especially for Sage: building/installing Sage is a vastly bigger issue than building/installing a new Python version. My question then is would SymPy adopting SPEC 0/NEP 29 be a problem for Sage? If SymPy 1.14 is released later this year and drops support for Python 3.8, 3.9 and 3.10 would that be a problem? Oscar -- 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/CAHVvXxR0FpHr25XrZezE4sKFjjum3mO4xMF3PARc3UEWtBAj_g%40mail.gmail.com.