Hi all,

I think it is a good time to release SymPy 1.14. I was too busy in the
last few months to do this.

The main thing that needs to be decided before releasing is just what
the minimum supported Python version should be.

I bumped the minimum version from Python 3.8 to 3.9 because 3.8 is old
and was causing problems for this PR:
https://github.com/sympy/sympy/pull/27850

There is spec 0 which attempts to coordinate Python and other version
support in the scientific Python ecosystem:
https://scientific-python.org/specs/spec-0000/

Previous discussions about this are at:
https://groups.google.com/g/sympy/c/VNz2xJ1Sywo/m/0H1-KmaJAgAJ

In anticipation of the suggestion to write a policy/SymPEP about spec
0 or version support let me just point out that doing that before
releasing SymPy 1.14 will delay the release which is already overdue.
Right now we just need a quick decision about which versions SymPy
1.14 should support.

Following spec 0 would mean dropping support for 3.9 and 3.10 right
now meaning that the currently supported versions would be 3.11, 3.12
and 3.13 (and 3.14). I don't know of any strong advantage that SymPy
would get from dropping 3.9 or 3.10 in particular but there is a
reason why spec 0 says to do this regardless.

The problem with SymPy putting out a new release that would be
installed on older Python versions is that it can break other packages
that depend on SymPy but that no longer provide releases for those
older Python versions. Most of the time it is correct that Python
packages don't use upper version constraints like sympy<=1.13 but it
makes it problematic if SymPy and those other packages don't support
the same range of Python versions. This is basically why spec 0
recommends that projects in the scientific Python ecosystem coordinate
to support a common set of versions. Essentially part of the
compatibility information between different packages is encoded by
packages following a similar policy for Python version support.

On the other hand spec 0 is not universally adopted and takes a
somewhat aggressive approach to minimum supported Python versions.
CPython itself says that versions 3.9 to 3.13 are still considered
supported:
https://devguide.python.org/versions/

Two major dependents for SymPy are pytorch and SageMath. Currently
SageMath claims to support 3.9 to 3.12 although I think a new release
is coming soon that would support 3.13 and would perhaps drop some of
the older versions:
https://doc.sagemath.org/html/en/reference/spkg/python3.html

The last release of pytorch was a couple of months ago and supports 3.9 to 3.13:
https://pypi.org/project/torch/2.6.0/#files

Potentially if SymPy 1.14 does not support the whole range of Python
versions that e.g. torch does then that creates a problem for them
because it means they have to straddle multiple SymPy versions.
Ideally we don't break them in that situation but I think that every
SymPy release does cause issues for both torch and Sage. Currently
torch constrains sympy>=1.13.3 i.e. they only accept the absolutely
newest release of SymPy. I think Sage constrains the sympy version in
a similar way so it is useful for them if a SymPy release supports at
least the Python versions that they want to support.

For SymPy's own dependencies, mpmath's last release 1.3.0 was 2 years
ago and does not list any particular Python version support. The
current mpmath master branch has requires-python>=3.9 but I have no
idea when there might be a full release of mpmath.

Both gmpy2 and python-flint are optional dependencies. The last
release of gmpy2 was almost a year ago and provides binaries for
CPython 3.7 to 3.13. The latest release of python-flint only supports
3.11, 3.12 and 3.13.

Other things like numpy, scipy, matplotlib etc generally follow spec 0
so they currently only support 3.11-3.13.

I don't have strong opinions about Python version support for SymPy
3.14 but it needs to be decided before we can put out a new release.

--
Oscar

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/sympy/CAHVvXxQKm%3DVx3U53GN_GhRbAm-68c982NZtA1wfrk7G%2BAqEBww%40mail.gmail.com.

Reply via email to