On Sun, 14 Apr 2024 at 14:15, Anton Akhmerov <
anton.a...@gmail.com> wrote:
>
> > SymPy does not really support old versions with maintenance releases
> > so it does not really have a "support cycle" in the sense that SPEC 0
> > seems to describe. There can be a bugfix release shortly after a
> > feature release to fix some obvious regressions but that is basically
> > it.
>
>
>
> This fact alone would be worth notating in that document. It's not
> always obvious to what degree different packages support older
> versions.
>
>
> I have reread the text of SPEC 0, and I believe it means "support cycle" differently from what seems to be Oscar's interpretation. Adopting SPEC 0 does not mean "SymPy developers provide support for vX.Y until AAAA-BB-CC". Rather the meaning of SPEC 0 is "SymPy developers recommend that packages that depend on SymPy should aim to support vX.Y until AAAA-BB-CC". In other words SPEC 0 does not represent additional commitments, but rather it describes how rapidly the code evolves. I believe it is useful for coordinating dependency versions of other packages in the ecosystem.
>
> Does this remark clarify the usefulness of adding SymPy to SPEC 0?
Yes it does. After reading this numpy discussion thread I think I have
a better idea why this matters:
https://mail.python.org/archives/list/numpy-di...@python.org/thread/AHTATJKGUEOILBNUI5IGGZPXJ5FXIRAU/
Basically the problem is that if SymPy puts out new releases for say
Python 3.8 then that potentially means that other libraries that
depend on SymPy have to put out updates for Python 3.8 as well. This
means that even if it is easy for SymPy to support a wide range of
Python versions it might still cause problems for downstream
dependencies. Those downstream dependencies are sort of obliged to
support the same versions as SymPy at least to the extent of being
able to put out an update that caps the SymPy version or something.
Currently SymPy 1.13 is about to ship which is tested with CPython
3.8, 3.9, 3.10, 3.11, 3.12 and 3.13 prereleases. The release files
have
python >=3.8
which means that they will be picked up for install on Python 3.8 or
any newer version of Python. Following SPEC 0 would mean dropping
Python 3.8 and 3.9 immediately now and changing it to
python >=3.10
The last time we discussed dropping support for a particular Python
version was whether to drop 3.8 which many other projects have dropped
support for. It was Matthias Koeppe from Sage who suggested that it
was useful to support Python 3.8. There have been discussions in the
Sage org about following NEP 29 which is basically the same thing:
https://groups.google.com/g/sage-devel/c/j1cwbTU8aOU/m/Ap_1pHlsBQAJ?utm_medium=email&utm_source=footer
Personally I am in favour of going with SPEC 0 in coordination with
the rest of the scientific Python ecosystem. I don't want to cause any
immediate problems for Sage though so I would be reluctant to make a
last minute decision to drop two Python versions right now for 1.13.
--
Oscar