I think that your post is focusing too much on tests, as if the only purpose of Sage is to pass its testsuite. It's actually the other way around: the purpose of the testsuite is to ensure that Sage functions correctly. By patching the testsuite to accept buggy output anyway, you're not really fixing anything, just hiding the problem.

By the way, the difference that you make between category 2 and 3 of patches is not so relevant: I would argue that the PARI stackwarn.patch is more essential (as in: more likely to affect users) than the re_match_index-issue_27177.patch Python patch.

I would propose to make it a policy to only include sage patches when
*absolutely necessary*. If ugly workarounds or even monkey-patching is
necessary
for that, that sucks. But distributions will usually come up with even
uglier
workarounds (since they don't know the code) anyways, just resulting in
duplication of effort.

There is a constant ongoing tension between downstream (Sage), upstream (PARI, Python, ...) and distributions (Debian, NixOS, ...). Nobody wants to be the one needing to fix the problem. So upstream tries to convince downstream that the problem is on their side, downstream tries to push the problem to distributions and distributions probably bother both upstream and downstream.

You seem to be blaming Sage for patching its dependencies, but in many cases it would be even more valid to blame upstream for not accepting those patches (or for not making a new release containing those patches). That way, the problem is really fixed for everybody: not just Sage but all users of a package. Or you could blame your distro for not applying that patch too.

Of all Sage developers, I could very well be the one adding most patches to its packages. Whenever I feel the need for patching a package, I ask myself what the best solution to the problem is: it could be an upstream patch or it could be a change in Sage. When it's an upstream patch, I make sure that it fixes a genuine upstream bug and I submit the patch. In most cases, the patch is then accepted upstream. However, when it's not accepted (for whatever reason), I don't want to do the effort of figuring out a solution without patching the package. I feel like that is just a waste of time since I already have a working solution for the problem (patching the package) and working around a problem is often harder than fixing it.

What I'm trying to say is that patching a package in Sage is always a very deliberate conscious choice and not just "whatever, let's patch this package". So while I certainly understand the concerns of the distributions, I'm personally not really willing to change anything.


Jeroen.

--
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 post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to