I have said this before, but I feel like the point was dropped out of the 
discussion so I'll stress it again. The major issue here is *not* the 
compatibility of sage's own codebase. A few "from __future__ import"'s are 
not so bad.

The issue is that python2 compatibility forces us to use outdated versions 
of a lot of libraries, since many libraries have dropped python2 support a 
while ago. This is a big headache especially for packagers. Those outdated 
libraries are generally not available on distros. At the same time sage is 
usually not compatible with the newer versions. Sage is already difficult 
to package, and that makes it a lot more difficult.

Case in point, my own efforts to update sage on nixos to 9.0 and python3 
have been blocked by incompatibilities in a new sphinx version 
(https://trac.sagemath.org/ticket/28856). I have already put some hours 
into this, but I simply don't have time to maintain a sage package if all 
the compatibility efforts fall to packagers. Another example is Antonio's 
multiple thousand line patch he mentioned earlier.

The alternatives are:

(1) create infrastructure in sage that allows us to use newer dependencies 
in python3 (https://trac.sagemath.org/ticket/28190), and make sage 
compatible with both the py2 and py3 version. This is a lot of effort.

(2) drop python2 support ASAP, e.g. in 9.1, and make sage compatible with 
the newer libraries

(3) continue as-is and leave it to packers to "deal with it"

As I said, (1) is a lot of effort. It would be the nicest solution, but I 
don't think there are enough people willing to do the work quickly enough. 
Especially if that effort will be wasted in a couple of months' time once 
py2 support is dropped.

(2) is my favorite solution. It re-synchronizes upstream with downstream 
distributions (which will most likely no longer package the python2 version 
anyways). I see very little downsides to this. Yes, some people will need 
longer to switch over their codebases. But their existing codebases, having 
been written before 9.1, will work with sage 9.0. So why not continue using 
it as long as the porting efforts take?

And again, I think (3) is a very bad solution. Sage already takes many 
times the packaging effort than most other packages. If this effort 
increases, I won't be willing or able to keep it up.

Sorry for the rant, I hope the email didn't get too long for people to 
read. 

-- 
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/288c5857-c4ae-43e9-8d0d-bb67319e470f%40googlegroups.com.

Reply via email to