On Wed, Apr 09, 2025 at 12:36:59PM -0700, Nils Bruin wrote: > On Wednesday, 9 April 2025 at 12:15:07 UTC-7 dim...@gmail.com wrote: > > >No, this won't fly. This is going to break the already fragile logic > >behind package types. > >Standard packages cannot be optionally installed, so it can't stay > >standard. Optional packages probably cannot appear in toolchain. > > > Presently python3 is a standard package, right? And most of the time the > packages "succeeds" by not installing anything (because prerequisites are > sufficient to provide what is wanted). Standard packages can also fail if > hard prereqs are not met. We can have a standard package python3 that is > simply a stand-in for ensuring that a sufficient python is provided. It > looks like there is a particular scenario where python3 would behave > differently, by actually installing python3 -- namely for building the > MacOS app.
As I already explained, it's quite a stretch by Sage's standards to call python3 package standard. Because it is not tested enough; because few months into release, the supposedly stable Sage release is often not installable, not the least due to rapidly aging Python toolchain. As it has been shown here too, already, it's really a very little effort for macOS app project to switch to an external python toolchain, they are just stubbonly unwilling to consider this option, saying things like "don't turn this thread into uv thread". But why not? They are the only known to us consumer of python3 spkg who depend on it in a somewhat nontrivial way. I don't want to go into merits of the macOS app, but it's a highly non-standard by modern Python standards thing which does not bring to users full functionality of Sage, and ties them up to a shifty expensive platform. > > It sounds to me that Marc is worried that satisfying the python3 > requirement for the MacOS app is going to be fragile if it's not done > through the standard package route that has been in place since the start > of sage. The times where everything, including python, is vendored by Sage, are long gone. Let's drop the ballast which pulls the project down, and concentrate on Sage{\bf MATH}, please. python3 spkg is fragile already, it's a ballast. Sagelib is teeming with difficult bugs, yet we waste time here. Do you know how long supposedly standard package brial is essentially broken? Do you know how many leaks we have in Singular and GAP interfaces? Do you know that linbox, fflas_ffpack and givaro increasingly look like abandonware? Do you know that with each new release of Maxima the number of bugs they cause in Sage doesn't look like it goes down? Please look at the bigger picture. Let's assign proper priorities to tasks ahead. Vendoring python with its toolchain is certainly much lower priority than the above. > That's more a confidence/trust issue than a technical issue. > Hence, providing a smoother transition path may inspire more confidence in > the participants. > > Your stated primary concern about the python3 package was that its attempt > to build mask other prerequisite deficiencies in the build environment. > Having a standard python3 package that by default only checks for the > availability of a sufficient python but that can still build python3 if > people really want would address your primary concern. So that should count > as progress for you. No, not really. Getting rid of python3 spkg is just the 1st step towards un-vendoring. Vendoring python and its toolchain should be left to Python experts. These things should be external to the specialist maths software project like SageMath. As long as they are a part of the project, they are ballast making things more complicated than needed. > > At the same time, the concession that python3.spkg *can* still provide > python if really wanted helps Marc see that the MacOS app build is taken > seriously. I would expect it's a major delivery platform of sagemath > functionality to users, so it should be taken seriously. > > Quite frankly, things like conda and uv are great initiatives and it would > be great for sage to work nice with them. Conda is getting quite mature and > has a wide user base, so transitioning to depending on conda may be a > reasonable choice. Even if something strange happens to the organization > behind Conda (those things tend to happen with open source initiatives on a > fairly regular basis), I think at this point we can be fairly confident > that it would get forked and remain reasonably supported. With "uv", on the > other hand, I don't think there's the track record yet to convert to being > dependent on it without alternatives. One can more or less do with pip most things you do with uv. It's just slower, and does not come with an easy to manage built in venvs. I won't be worried about uv disappearing, as it's an easy switch to more usual, older tools. I would be more worried about going into exclusively Conda direction. Conda (Conda-forge) is much heavier, as it comes with its own full toolchain, which is controlled by Anaconda Inc. > > Slow transitions in build architecture decisions in mature projects are a > feature, not a bug. We are already late by about 5 or 6 years. Let's speed up, before we're sunk into obscurity, by Julia/OSCAR, for instance. Dima -- 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 visit https://groups.google.com/d/msgid/sage-devel/Z_bvrcs4Iw62QniH%40hilbert.
signature.asc
Description: PGP signature