Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Fri, 2023-04-28 at 18:06 +0100, Dr. David Kirkby wrote: > > To me at least, it would be unwise not run the test suite. > > If you are choosing to use 15-20 year old hardware, you can not reasonably > to handle a large modern program like Sagemath. More modern machines than > that get thrown in skips. 😂 > I have ~1,000 other modern packages built from source on these machines and hack on many of them. The hardware is as fast as the day I bought it. The issue is not that sage is modern, rather that it's still built like a pet project from 2005. The test suite is an entirely different topic where your criticism is more valid. There are a few different issues there, all pretty irrelevant to this discussion: * We have many redundant tests * Doctests inherently require redundancy and are relatively slow * We have tests for bugs that were fixed in upstream projects and are already checked by the upstream test suite * The "too long" warning is outrageously high * The "too long" warning uses "wall time", which is meaningless as an objective measure of how much computation is done. Someone with newer hardware can easily introduce a "fast" test that takes over a minute for me to run. Beyond that, whatever time it takes to run the test suite is necessary and I'm not complaining about it. It's the unnecessary bit that's annoying. -- 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/2e79d3741ff8b5ac98dff01373c6c4ff53f7f42c.camel%40orlitzky.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thu, 27 Apr 2023 at 15:49, Michael Orlitzky wrote: > > The test suite can take another full day to run -- some of > that is useful, but a lot is not. This is the biggest impediment to the > use and development of sage on an old system. To me at least, it would be unwise not run the test suite. If you are choosing to use 15-20 year old hardware, you can not reasonably to handle a large modern program like Sagemath. More modern machines than that get thrown in skips. 😂 Dave. > -- Dr. David Kirkby, Kirkby Microwave Ltd, drkir...@kirkbymicrowave.co.uk https://www.kirkbymicrowave.co.uk/ Telephone 01621-680100./ +44 1621 680100 Registered in England & Wales, company number 08914892. Registered office: Stokes Hall Lodge, Burnham Rd, Althorne, Chelmsford, Essex, CM3 6DT, United Kingdom -- 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/CANX10hCrQKo6_1pCiO3x_4XG_t1Lo_ra4QMERBVc9yLLBrRCpg%40mail.gmail.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thursday, April 27, 2023 at 2:54:47 PM UTC-7 Isuru Fernando wrote: I guess there are several requirements we need 1. Support for all major OS/architecture combinations 2. Easy to build for rare OS/architecture combinations 3. Possible to install as a non-root user 4. Binaries are available for non-root This is a good list. We also need to agree about what fits into category 1. As far as platforms for developers are concerned, does plain OS X count, or plain OS X + Xcode command-line tools, or OS X + homebrew, or OS X + conda, etc.? AFAIK, there's no package manager that has all 4 above and we will have to pick which requirements are more important than others. Isuru -- 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+...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/0a85f27c909f8d8f185801af2228e6331bcad544.camel%40orlitzky.com . -- 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/131f110d-5862-4149-b49e-c4500b86cb4en%40googlegroups.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
(I'm planning upgrades in the next year or two, but it will be to relatively low power RISC-V hardware. There are moral, legal, environmental, and other non-financial reasons why people use "old" hardware. But of course the financial reasons are very real too.) Agreed on all points. Access reasons too. -- 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/bda86cae-9077-437f-9cf4-72cef997d85bn%40googlegroups.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thursday, April 27, 2023 at 2:54:47 PM UTC-7 Isuru Fernando wrote: On Thu, Apr 27, 2023 at 1:00 PM Michael Orlitzky wrote: [...] Gentoo Prefix [...] Nix [...] Guix and spack could also work. I guess there are several requirements we need 1. Support for all major OS/architecture combinations 2. Easy to build for rare OS/architecture combinations 3. Possible to install as a non-root user 4. Binaries are available for non-root AFAIK, there's no package manager that has all 4 above and we will have to pick which requirements are more important than others. I believe 1/3/4 are the most important and conda-forge suppports them. And there's also the very important: 5. Its relevance in the Python dev world. ... where conda-forge is the only choice (other than PyPI). -- 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/5250d893-13e1-440c-bcda-ccb2dadf653dn%40googlegroups.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thu, Apr 27, 2023 at 1:00 PM Michael Orlitzky wrote: > On Thu, 2023-04-27 at 05:49 -0700, William Stein wrote: > > Hi, > > > > To what extent does or could Conda with a little more work solve most > > of these problems? There are some notes below from me poking around, > > and I'm very optimistic. > > This isn't the first time the idea has come up. Burcin got pretty far > with it using Gentoo Prefix in place of Conda: > > https://groups.google.com/g/sage-devel/c/XFJn3jGVBG8 > > Nix could also work. All three serve roughly the same purpose. > True. Guix and spack could also work. I guess there are several requirements we need 1. Support for all major OS/architecture combinations 2. Easy to build for rare OS/architecture combinations 3. Possible to install as a non-root user 4. Binaries are available for non-root AFAIK, there's no package manager that has all 4 above and we will have to pick which requirements are more important than others. Isuru > > -- > 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/0a85f27c909f8d8f185801af2228e6331bcad544.camel%40orlitzky.com > . > -- 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/CA%2B01voM16Tms1A2R2%3DQ2DW13ZzJ7CNUnMPBucny7jrsyJc0hiA%40mail.gmail.com.
[sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thursday, April 27, 2023 at 5:12:45 AM UTC-7 kcrisman wrote: As an example, how old of a Windows computer could one install the current Sage on? I mean from scratch - not necessarily from source - using WSL, which I guess is now the main supported way to do so? One needs Windows >= 10 and a CPU with the necessary virtualization support. What about the Cygwin installer - does it still exist in older versions on sagemath.org mirrors, what does that support? How easy is it for someone who does NOT know about compiling to install Sage on a not-too-recent Windows machine? It's dead. One thing that might help all of this is having older versions of Sage *binaries* for such platforms readily available for download (as many of our upstream packages in fact do). I don't think we are. We decided to get out of the business to publish binaries; we weren't doing it well, and numerous distributions and third-party binaries filled the role. -- 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/f0a5e81c-ca36-4941-9f18-e6a53a168d9an%40googlegroups.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thu, Apr 27, 2023 at 1:21 PM Matthias Koeppe wrote: > > On Thursday, April 27, 2023 at 5:49:50 AM UTC-7 William Stein wrote: > > To what extent does or could Conda with a little more work solve most > of these problems? [...] > I also think this section > https://doc.sagemath.org/html/en/installation/conda.html#using-conda-to-provide-all-dependencies-for-the-sage-library-experimental > called "Using conda to provide all dependencies for the Sage library > (experimental)" is pretty exciting! > > > Yes, I think this mode of installation should be the future default of Sage > for developers. AWESOME and thanks for the clarification! I'm strongly supportive of this, and I agree that switching to GitHub from Trac was a good model for how to approach this problem. -- William > > In any case, I think that migrating from "Sage the distribution" to > solving a lot of the misc environment issues > via conda would be very analogous to switching to Github, instead of > maintaining our own issue tracker. > > > Indeed, and just like in our successful transition to GitHub, a clean planned > switchover to the new model is the most effective solution. > > Attempts to do this gradually (such as the attempt of a soft transition from > Trac to GitLab by means of maintaining a Trac<->GitLab gateway) fail because > of the concave costs on the path from one end to the other. > > So, as I said, I would welcome a clear decision by the community to do so -- > with a target date or target release number. > > > -- > 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/26656418-5f72-4330-bb6c-dd4c968de928n%40googlegroups.com. -- William (http://wstein.org) -- 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/CACLE5GAwbFkfZAm0NQcbPb5oDE0vv3Nzj9URF%3Dd9J9MUWe0wwQ%40mail.gmail.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thursday, April 27, 2023 at 10:07:44 AM UTC-7 Isuru Fernando wrote: > and took 5.8GB disk instead of the 3GB disk of the Sage mac app). Yes, conda packages usually come with batteries included which means packages come with their optional build time dependencies installed. That's usually not a big deal for other packages, but Sage is special in that it has tons of dependencies. I haven't checked the details for conda, but from what I see on some distros, I think there are a few particular packages that cause this: - our use of libgd (see https://github.com/sagemath/sage/pull/35477) that pulls in a huge set of (unused) graphics libraries - our use of CAS packages that are not separable from their GUI components (in particular GIAC) -- 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/9c9e10d1-60c6-42b7-b0d7-77d7f0ebbf74n%40googlegroups.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thursday, April 27, 2023 at 5:49:50 AM UTC-7 William Stein wrote: To what extent does or could Conda with a little more work solve most of these problems? [...] I also think this section https://doc.sagemath.org/html/en/installation/conda.html#using-conda-to-provide-all-dependencies-for-the-sage-library-experimental called "Using conda to provide all dependencies for the Sage library (experimental)" is pretty exciting! Yes, I think this mode of installation should be the future default of Sage for developers. In any case, I think that migrating from "Sage the distribution" to solving a lot of the misc environment issues via conda would be very analogous to switching to Github, instead of maintaining our own issue tracker. Indeed, and just like in our successful transition to GitHub, a clean planned switchover to the new model is the most effective solution. Attempts to do this gradually (such as the attempt of a soft transition from Trac to GitLab by means of maintaining a Trac<->GitLab gateway) fail because of the concave costs on the path from one end to the other. So, as I said, I would welcome a clear decision by the community to do so -- with a target date or target release number. -- 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/26656418-5f72-4330-bb6c-dd4c968de928n%40googlegroups.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thu, 2023-04-27 at 05:49 -0700, William Stein wrote: > Hi, > > To what extent does or could Conda with a little more work solve most > of these problems? There are some notes below from me poking around, > and I'm very optimistic. This isn't the first time the idea has come up. Burcin got pretty far with it using Gentoo Prefix in place of Conda: https://groups.google.com/g/sage-devel/c/XFJn3jGVBG8 Nix could also work. All three serve roughly the same purpose. -- 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/0a85f27c909f8d8f185801af2228e6331bcad544.camel%40orlitzky.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
Isuru, Thanks for answering all my questions. I just want to reiterate that I'm thrilled with what you are doing and greatly appreciate it! William On Thu, Apr 27, 2023 at 10:07 AM Isuru Fernando wrote: > > > it fails with "└─ sage is uninstallable because there are no viable > > options" > > We don't have a python 3.11 version of sage in conda yet. I started a PR > manually as the automatic update > failed for some reason. > > > What is it doing that first time, and why is it silent? It's very > > unnerving. > > macOS 10.15+ does some shady things when users request to run "untrusted" > applications. For eg: > > % clang hello.c > % time ./a.out > Hello world! > ./a.out 0.00s user 0.00s system 0% cpu 0.380 total > % time ./a.out > Hello world! > ./a.out 0.00s user 0.00s system 62% cpu 0.006 total > > See https://lapcatsoftware.com/articles/catalina-executables.html for a > possible explanation. > Sage loads hundreds of dynamic libraries not all at the same time, so macOS > sends multiple requests > to Apple servers. > > > and took 5.8GB disk instead of the 3GB disk of the Sage mac app). > > Yes, conda packages usually come with batteries included which means packages > come with their > optional build time dependencies installed. That's usually not a big deal for > other packages, but > Sage is special in that it has tons of dependencies. > > As usual, the biggest hurdle to making things work more seamlessly is > manpower. > Most of the niche packages that sage depends on are maintained by me and > Julian and improvements > to supporting conda in the sage build system are mostly Matthias and Tobias. > > Isuru > > > > On Thu, Apr 27, 2023 at 7:49 AM William Stein wrote: >> >> Hi, >> >> To what extent does or could Conda with a little more work solve most >> of these problems? There are some notes below from me poking around, >> and I'm very optimistic. >> >> I looked at >> >> https://doc.sagemath.org/html/en/installation/conda.html >> >> and I would love some further discussion of that and whether with >> enough help it could be viable. >> For example, on my M1 mac I just tried what seems to me to be the most >> obvious first thing to do >> based on the instructions: >> >> (base) wstein@max ~ % mamba create -n sage sage python=3.11 >> >> and it fails with "└─ sage is uninstallable because there are no >> viable options" >> Obviously I'm going to nex try "mamba create -n sage sage", which works, but >> that's not what our docs say to do. Incidentally, it took about a >> minute to download >> and install everything (and took 5.8GB disk instead of the 3GB disk of >> the Sage mac app). >> Then a few minutes of me being confused if I should do >> "mamba activate sage" or "conda activate sage", and finally I typed "sage" >> and >> strangely it just shows nothing at all while it mysteriously takes >> about a minute >> for sage to start the first time (on my M1 max laptop with SSD). Sage then >> starts and works fine. Subsequent sage startups are very fast (e.g., 1 >> second). >> What is it doing that first time, and why is it silent? It's very unnerving. >> >> I also think this section >> https://doc.sagemath.org/html/en/installation/conda.html#using-conda-to-provide-all-dependencies-for-the-sage-library-experimental >> called "Using conda to provide all dependencies for the Sage library >> (experimental)" is pretty exciting! >> >> For many years when I gave talks about Sage, I had a slide: "What is >> Sage", with two points: >> >> 1. A distribution of open source math software >> 2. A new library tying everything together >> >> I definitely only started 1 out of necessity because nothing existed >> at the time. My hope is that >> at this point in time conda is good enough that maybe it could totally >> solve 1, and we can focus on 2? >> >> In any case, I think that migrating from "Sage the distribution" to >> solving a lot of the misc environment issues >> via conda would be very analogous to switching to Github, instead of >> maintaining our own issue tracker. >> I.e., if you want the latest version of sage on Ubuntu 22.04 (say), >> then our recommendation is "use conda", >> and we put effort into making Sage-via-conda extremely good. If you >> want some random version of sage, >> then you can use system packages. >> >> For CoCalc.com, the key thing we need is a way to have self-contained >> stable installations of sage-9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, >> 10.0, etc. all on the same Ubuntu system, all at once, and have them >> not get screwed up when we do normal system updates. Doing major >> Ubuntu version updates (e.g., 20.04 --> 22.04) doesn't have to be >> supported. >> My impression is that conda potentially solves this problem at least >> as well as sage-the-distribution does right now. >> >> -- William >> >> PS Thanks again to the people who put so much work into packaging sage >> and its dependencies for conda! >> >> On Thu, Apr 27, 2023 at 5:12 AM kcrisman wrote:
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
> it fails with "└─ sage is uninstallable because there are no viable options" We don't have a python 3.11 version of sage in conda yet. I started a PR manually as the automatic update failed for some reason. > What is it doing that first time, and why is it silent? It's very unnerving. macOS 10.15+ does some shady things when users request to run "untrusted" applications. For eg: % clang hello.c % time ./a.out Hello world! ./a.out 0.00s user 0.00s system 0% cpu 0.380 total % time ./a.out Hello world! ./a.out 0.00s user 0.00s system 62% cpu 0.006 total See https://lapcatsoftware.com/articles/catalina-executables.html for a possible explanation. Sage loads hundreds of dynamic libraries not all at the same time, so macOS sends multiple requests to Apple servers. > and took 5.8GB disk instead of the 3GB disk of the Sage mac app). Yes, conda packages usually come with batteries included which means packages come with their optional build time dependencies installed. That's usually not a big deal for other packages, but Sage is special in that it has tons of dependencies. As usual, the biggest hurdle to making things work more seamlessly is manpower. Most of the niche packages that sage depends on are maintained by me and Julian and improvements to supporting conda in the sage build system are mostly Matthias and Tobias. Isuru On Thu, Apr 27, 2023 at 7:49 AM William Stein wrote: > Hi, > > To what extent does or could Conda with a little more work solve most > of these problems? There are some notes below from me poking around, > and I'm very optimistic. > > I looked at > > https://doc.sagemath.org/html/en/installation/conda.html > > and I would love some further discussion of that and whether with > enough help it could be viable. > For example, on my M1 mac I just tried what seems to me to be the most > obvious first thing to do > based on the instructions: > > (base) wstein@max ~ % mamba create -n sage sage python=3.11 > > and it fails with "└─ sage is uninstallable because there are no > viable options" > Obviously I'm going to nex try "mamba create -n sage sage", which works, > but > that's not what our docs say to do. Incidentally, it took about a > minute to download > and install everything (and took 5.8GB disk instead of the 3GB disk of > the Sage mac app). > Then a few minutes of me being confused if I should do > "mamba activate sage" or "conda activate sage", and finally I typed "sage" > and > strangely it just shows nothing at all while it mysteriously takes > about a minute > for sage to start the first time (on my M1 max laptop with SSD). Sage then > starts and works fine. Subsequent sage startups are very fast (e.g., 1 > second). > What is it doing that first time, and why is it silent? It's very > unnerving. > > I also think this section > > https://doc.sagemath.org/html/en/installation/conda.html#using-conda-to-provide-all-dependencies-for-the-sage-library-experimental > called "Using conda to provide all dependencies for the Sage library > (experimental)" is pretty exciting! > > For many years when I gave talks about Sage, I had a slide: "What is > Sage", with two points: > > 1. A distribution of open source math software > 2. A new library tying everything together > > I definitely only started 1 out of necessity because nothing existed > at the time. My hope is that > at this point in time conda is good enough that maybe it could totally > solve 1, and we can focus on 2? > > In any case, I think that migrating from "Sage the distribution" to > solving a lot of the misc environment issues > via conda would be very analogous to switching to Github, instead of > maintaining our own issue tracker. > I.e., if you want the latest version of sage on Ubuntu 22.04 (say), > then our recommendation is "use conda", > and we put effort into making Sage-via-conda extremely good. If you > want some random version of sage, > then you can use system packages. > > For CoCalc.com, the key thing we need is a way to have self-contained > stable installations of sage-9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, > 10.0, etc. all on the same Ubuntu system, all at once, and have them > not get screwed up when we do normal system updates. Doing major > Ubuntu version updates (e.g., 20.04 --> 22.04) doesn't have to be > supported. > My impression is that conda potentially solves this problem at least > as well as sage-the-distribution does right now. > > -- William > > PS Thanks again to the people who put so much work into packaging sage > and its dependencies for conda! > > On Thu, Apr 27, 2023 at 5:12 AM kcrisman wrote: > > > > > > As of today, it is plausible that such situations still exist. > > > > > > I am wondering about such situations existing in less-resourced areas > globally (which would include less-resourced parts of developed > countries). One big advantage of Sage-the-distribution historically was > the ability to make USB drives that had the complete thing (maybe also a > Li
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
On Thu, 2023-04-27 at 05:12 -0700, kcrisman wrote: > > As an example, how old of a Windows computer could one install the current > Sage on? ... > > In any case, it would be very helpful for people who may be actively using > Sge in less-resourced environment to chime in here. > My desktop is 19 years old and my laptop is now 15. Switching between branches can cause 20 hours of recompile time. If I'm lucky and don't need to use the result, I can cut that in half with -O0. If this were spent doing something useful, it would be more tolerable, but it's spent fetching, compiling, and installing packages that are already on my system. The test suite can take another full day to run -- some of that is useful, but a lot is not. This is the biggest impediment to the use and development of sage on an old system. Upgrading (say) OpenSSL on the system is a sunk cost because it happens anyway. The only question is whether or not I *also* have to repeatedly rebuild some highly specific version that sage wants. The problem is not only the SPKGs, but the way sagelib is designed around them; eliminating the sage distribution would force us to address those indirect inefficiencies in addition to immediately eliminating the direct ones. (I'm planning upgrades in the next year or two, but it will be to relatively low power RISC-V hardware. There are moral, legal, environmental, and other non-financial reasons why people use "old" hardware. But of course the financial reasons are very real too.) -- 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/592557b3cb7efaa5bac7f0cec8781c11ad093a17.camel%40orlitzky.com.
Re: [sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
Hi, To what extent does or could Conda with a little more work solve most of these problems? There are some notes below from me poking around, and I'm very optimistic. I looked at https://doc.sagemath.org/html/en/installation/conda.html and I would love some further discussion of that and whether with enough help it could be viable. For example, on my M1 mac I just tried what seems to me to be the most obvious first thing to do based on the instructions: (base) wstein@max ~ % mamba create -n sage sage python=3.11 and it fails with "└─ sage is uninstallable because there are no viable options" Obviously I'm going to nex try "mamba create -n sage sage", which works, but that's not what our docs say to do. Incidentally, it took about a minute to download and install everything (and took 5.8GB disk instead of the 3GB disk of the Sage mac app). Then a few minutes of me being confused if I should do "mamba activate sage" or "conda activate sage", and finally I typed "sage" and strangely it just shows nothing at all while it mysteriously takes about a minute for sage to start the first time (on my M1 max laptop with SSD). Sage then starts and works fine. Subsequent sage startups are very fast (e.g., 1 second). What is it doing that first time, and why is it silent? It's very unnerving. I also think this section https://doc.sagemath.org/html/en/installation/conda.html#using-conda-to-provide-all-dependencies-for-the-sage-library-experimental called "Using conda to provide all dependencies for the Sage library (experimental)" is pretty exciting! For many years when I gave talks about Sage, I had a slide: "What is Sage", with two points: 1. A distribution of open source math software 2. A new library tying everything together I definitely only started 1 out of necessity because nothing existed at the time. My hope is that at this point in time conda is good enough that maybe it could totally solve 1, and we can focus on 2? In any case, I think that migrating from "Sage the distribution" to solving a lot of the misc environment issues via conda would be very analogous to switching to Github, instead of maintaining our own issue tracker. I.e., if you want the latest version of sage on Ubuntu 22.04 (say), then our recommendation is "use conda", and we put effort into making Sage-via-conda extremely good. If you want some random version of sage, then you can use system packages. For CoCalc.com, the key thing we need is a way to have self-contained stable installations of sage-9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 10.0, etc. all on the same Ubuntu system, all at once, and have them not get screwed up when we do normal system updates. Doing major Ubuntu version updates (e.g., 20.04 --> 22.04) doesn't have to be supported. My impression is that conda potentially solves this problem at least as well as sage-the-distribution does right now. -- William PS Thanks again to the people who put so much work into packaging sage and its dependencies for conda! On Thu, Apr 27, 2023 at 5:12 AM kcrisman wrote: > > > As of today, it is plausible that such situations still exist. > > > I am wondering about such situations existing in less-resourced areas > globally (which would include less-resourced parts of developed countries). > One big advantage of Sage-the-distribution historically was the ability to > make USB drives that had the complete thing (maybe also a Linux VM?) on them, > from which one could boot. > > It strikes me that many arguments for removing the distribution along these > lines (not the developer side, which is also important) are akin to those > arguments which assume one should "just" use a remote option for Sage at all > times. Yes, that has been seriously made on multiple occasions, though > usually not on this list. But even "post-pandemic" there are still plenty of > reliable high-speed internet deserts even where I live on the US East Coast, > much less around the world. I wouldn't want to use CoCalc without a fairly > new computer. > > Likewise, there are plenty of people using 5-10 year old computers who, in > principle, could be afforded Sage access, but for our continued upgrading. > (Again, see below for the developer side.) Arguments about how they should > upgrade or face security issues are fine, but in practice (whether for > financial or other reasons) this is not how humans respond to those > incentives, and presumably at least some of them might benefit from Sage. A > lot of the paradigm discussed on this list (but not all, for sure) focuses SO > MUCH on people who have access to fairly recent technology, and that simply > doesn't obtain. > > As an example, how old of a Windows computer could one install the current > Sage on? I mean from scratch - not necessarily from source - using WSL, > which I guess is now the main supported way to do so? What about the Cygwin > installer - does it still exist in older versions on sagemath.org mirrors,
[sage-devel] Re: What was/is/will be the purpose of maintaining the Sage distribution?
As of today, it is plausible that such situations still exist. I am wondering about such situations existing in less-resourced areas globally (which would include less-resourced parts of developed countries). One big advantage of Sage-the-distribution historically was the ability to make USB drives that had the complete thing (maybe also a Linux VM?) on them, from which one could boot. It strikes me that many arguments for removing the distribution along these lines (not the developer side, which is also important) are akin to those arguments which assume one should "just" use a remote option for Sage at all times. Yes, that has been seriously made on multiple occasions, though usually not on this list. But even "post-pandemic" there are still plenty of reliable high-speed internet deserts even where I live on the US East Coast, much less around the world. I wouldn't want to use CoCalc without a fairly new computer. Likewise, there are plenty of people using 5-10 year old computers who, in principle, could be afforded Sage access, but for our continued upgrading. (Again, see below for the developer side.) Arguments about how they should upgrade or face security issues are fine, but in practice (whether for financial or other reasons) this is not how humans respond to those incentives, and presumably at least some of them might benefit from Sage. A lot of the paradigm discussed on this list (but not all, for sure) focuses SO MUCH on people who have access to fairly recent technology, and that simply doesn't obtain. As an example, how old of a Windows computer could one install the current Sage on? I mean from scratch - not necessarily from source - using WSL, which I guess is now the main supported way to do so? What about the Cygwin installer - does it still exist in older versions on sagemath.org mirrors, what does that support? How easy is it for someone who does NOT know about compiling to install Sage on a not-too-recent Windows machine? I bet it's easy to install the various M's ... In any case, it would be very helpful for people who may be actively using Sage in less-resourced environment to chime in here. Moving to the developer side: a) If a critical bug is discovered, we can patch it and don't have to rely on people and infrastructure "outside the project" to fix things for us. Of course, we have been very lucky that packagers for many distributions have been consistently highly engaged with the project; but this is not something that we can take for granted. This is basically why William started Sage in the first place. (Well, one reason!) When I still had time to be an active developer, this was a major source of necessary work. It's true that a lot of packages are now more responsive (or have been canned/subsumed into Sage), but presumably it could still be a problem, especially with some extremely math-specific packages that might not regularly update in a platform-agnostic way. That said, presumably Python and gcc are no longer in the situation where we need to actively maintain a lot of patches to them. b) And, of course, more Sage developers can become contributors to the packaging communities; but there is the real danger that taking care of both upstream development *and* downstream packaging for the same project can lead to developer burnout. This (whether connected to upstream packaging or not) is really the most powerful argument for radical decoupling. (Similarly to the GH transition.) Clearly R fell in this category. Reading the other thread did not really clarify for me whether python3 or gcc fell into this category, and I don't think it will be helpful to revisit that right now. In any case, this should be weighed against Sage ease of access. One thing that might help all of this is having older versions of Sage *binaries* for such platforms readily available for download (as many of our upstream packages in fact do). I don't think we are. In fact, https://www.sagemath.org/mirrors.html was kind of scary - a lot of mirrors don't seem to have anything at all. I will assume I missed a thread (quite likely that I did) that we were dropping binary support via mirrors completely, which needless to say would make my suggestion difficult to implement. I do think it is the best way to provide quite fully-featured versions of Sage to people with less-modern setups (who probably now simply don't use Sage because they can't, or stick with older versions they already have, which we see from time to time on the support list) while still allowing for dropping some of this support when it sucks up too much developer effort. -- 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://gro