Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation manual: Add decision tree, remove mention of Sage-mirror-hosted binary distributions #33131

Closed
mkoeppe opened this issue Jan 8, 2022 · 57 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Jan 8, 2022

The binary distributions on the Sage mirrors are unmaintained (#31133) and have been broken for a long time.

We update the manual by including a decision tree. It never leads to the recommendation to use these binary distributions because better alternatives are available for every use case.

Hence, we replace all details regarding binaries by a short notice that they have been discontinued.

PR to also remove mention of the binaries from the website:

CC: @dimpase @jhpalmieri @vbraun @collares @isuruf

Component: distribution

Author: Matthias Koeppe

Branch/Commit: 0f6ade5

Reviewer: Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/33131

@mkoeppe mkoeppe added this to the sage-9.5 milestone Jan 8, 2022
@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 8, 2022

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 8, 2022

Author: Matthias Koeppe

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 8, 2022

Commit: 480ec86

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 8, 2022

New commits:

480ec86src/doc/en/installation: Remove mention of binaries

@mkoeppe

This comment has been minimized.

@mkoeppe

This comment has been minimized.

@orlitzky
Copy link
Contributor

orlitzky commented Jan 8, 2022

comment:9

Huge +1 from me. If you want a binary, you should be getting it with (say) apt-get.

@dimpase
Copy link
Member

dimpase commented Jan 8, 2022

comment:10

yes! +100

@EmmanuelCharpentier
Copy link
Mannequin

EmmanuelCharpentier mannequin commented Jan 8, 2022

comment:11

Binary distributions are a "necessary evil" for platforms where building Sage can be considered as needing "system fu" out of proportion of "normal" using Sage fu.

Cases in point :

  • Windows

Notwithstanding E. Madison Bray and others' gigantic efforts, building the Cygwin port of Sage is difficult ; probably too difficult for casual Windows users. The problem is that this puts Sage above the reach of at least 90% of undergraduate science/math students, i. e. our core target audience for future users.

The future of Sage on Windows may well reside in WSL2. However, this solution implies the care and feeding of a Linux virtual machine on Windows. Easier, but again out of the reach of at least 50% of our target audience (Unif fu isn'a as popular among science/engineering students ast it once was, don't get me started on biology/geology students, and don't even think of physicians-to-be...:-)).

  • Mac

Not approaching a Mac at least than ten yards, I can't possibly knowledgeably comment on this platform ; I am still impressed by the sheer volume of Mac-specific or Mac-related problems that flourish on sage-release at each release...

Again, this platform represents a non-negligible part of our target audience.

These two platforms are a special case, requiring IMHO special consideration...

@EmmanuelCharpentier
Copy link
Mannequin

EmmanuelCharpentier mannequin commented Jan 8, 2022

comment:12

Replying to @orlitzky:

Huge +1 from me. If you want a binary, you should be getting it with (say) apt-get.

Agreed. For Linux (Unix) users.

Which are nowadays a dwindling minority (if an elite one, of course ;-)). See below my remarks on Windows and Macs...

And, BTW, a Debian package is a binary distribution...

@dimpase
Copy link
Member

dimpase commented Jan 8, 2022

comment:13

Replying to @EmmanuelCharpentier:

Binary distributions are a "necessary evil" for platforms where building Sage can be considered as needing "system fu" out of proportion of "normal" using Sage fu.

Cases in point :

  • Windows

use Docker.

  • Mac

Not approaching a Mac at least than ten yards, I can't possibly knowledgeably comment on this platform ; I am still impressed by the sheer volume of Mac-specific or Mac-related problems that flourish on sage-release at each release...

Again, this platform represents a non-negligible part of our target audience.

for Mac there is a binary installer provided by Snappy group.

@pipedream
Copy link

comment:14

The ticket is to remove it from the installation documentation. I'm absolutely fine with that if it improves the situation for developers and users.

I would still like access to easily download binary distributions.

I recently on Linux (Debian) had problems building a newer version than apt but th ebinary distribution worked fine. I also do have problems with the numpy SIGILL on older CPUs (which the Debian versions don't have; don't know why).

I'd love to have Debian backports and sloppy-backports or third party (preferably sagemath not launchpad) repositories with latest sagemath packages for Debian releases and Ubuntu LTSes at least. Might be a tall order for volunteers to maintain.

@orlitzky
Copy link
Contributor

orlitzky commented Jan 8, 2022

comment:15

Replying to @pipedream:

The ticket is to remove it from the installation documentation. I'm absolutely fine with that if it improves the situation for developers and users.

I would still like access to easily download binary distributions.

That's not an option either way:

There are many unfixed problems -- some fundamental -- and to put it bluntly, nobody cares. This ticket just changes the documentation to reflect reality, and perhaps in the future will allow us to not be held back by "what about the binaries?!" arguments.

@sagetrac-tmonteil
Copy link
Mannequin

sagetrac-tmonteil mannequin commented Jan 9, 2022

comment:16

I think the question is not whether the binaries are maintained or not on our side but whether they are useful to users. I used to build up to 16 binaries at each release some years ago, then stopped since Jan Groenwald at AIMS dedicated some machines for that. Maybe he stopped after many years, but it is not an individual question. If those binaries are useful, then we should put some energy to dedicate some infrastructure for them, not the other way. I have the impression that the same happened with gitlab workers (they were usefull but since they were unmaintained, we stopped them).

Regarding MacOS binaries, why not shipping the ones produced by 3-manifolds project on the Sage mirrors ?

@orlitzky
Copy link
Contributor

orlitzky commented Jan 9, 2022

comment:17

Replying to @sagetrac-tmonteil:

I think the question is not whether the binaries are maintained or not on our side but whether they are useful to users.

It would be useful to our users if they could hop on a zoom call and have a sage developer personally install sage for them. But is that a good use of our time? Is anyone actually going to volunteer to do it?

I would say it's the other way around: if no one is willing to fix all of the bugs and commit to producing and supporting the sage binary releases, then the question of whether or not it would be useful is irrelevant. The source (or distro-based) installations, on the other hand, are actively developed and supported.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 9, 2022

comment:18

Replying to @sagetrac-tmonteil:

Regarding MacOS binaries, why not shipping the ones produced by 3-manifolds project on the Sage mirrors ?

The maintainer prefers to release them on GitHub releases.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 9, 2022

comment:19

Replying to @EmmanuelCharpentier:

  • Windows

This ticket makes no changes regarding this platform.

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe changed the title Installation manual: Remove mention of binary distributions Installation manual: Remove mention of Sage-mirror-hosted binary distributions Jan 9, 2022
@williamstein
Copy link
Contributor

comment:22

"We direct people instead to: conda-forge, nix, docker, build from source."

It would be nice to include all the known ways to run SageMath online as well, e.g., Sage cell server (https://sagecell.sagemath.org/), CoCalc (https://cocalc.com), etc. Actually, I don't know of any others, but maybe somebody could make a mybinder (https://mybinder.org/) of Sage, if it doesn't exceed the size limits.

@slel
Copy link
Member

slel commented Jan 9, 2022

comment:23

Replying to @williamstein:

It would be nice to include all the known ways to run SageMath
online as well, e.g., Sage cell server (https://sagecell.sagemath.org/),
CoCalc (https://cocalc.com), etc. Actually, I don't know of any others,
but maybe somebody could make a mybinder (https://mybinder.org/) of Sage,
if it doesn't exceed the size limits.

I once made a list but it was missing actual Binder links:

OpenDreamKit's "try" page

and the "More SageMath tutorials" page

both use the same Binder link, which currently does not work.

Might not be that hard to fix...

@vbraun
Copy link
Member

vbraun commented Jan 9, 2022

Replying to @mkoeppe:

We direct people instead to

  • conda-forge
  • nix
  • docker

That would be nice but the proposed patch mentions neither, nor an distro-specific installation. There are surely issues with the binary packages but they can work for some whereas the current patch isn't helpful at all.

At the very least we should have some eli5 instructions for how to get conda up and running and then install the conda sagemath package. Since conda is really the only way that works without root permissions I'd put that front and center.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 10, 2022

comment:37

https://wiki.sagemath.org/Distribution has some good information, some of which may not be overly outdated.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 10, 2022

Changed commit from 76d2d2a to c1f4e46

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 10, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

c1f4e46src/doc/en/installation/index.rst: Link also to https://wiki.sagemath.org/Conda

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 10, 2022

Changed commit from c1f4e46 to 0f6ade5

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jan 10, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

0f6ade5src/doc/en/installation/linux.rst: Link to repology and https://wiki.sagemath.org/Distribution

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 10, 2022

comment:40

Replying to @williamstein:

"We direct people instead to: conda-forge, nix, docker, build from source."

It would be nice to include all the known ways to run SageMath online as well, e.g., Sage cell server (https://sagecell.sagemath.org/), CoCalc (https://cocalc.com)

These 2 options were already mentioned in the manual, still are after the rewrite done in the ticket

@mkoeppe

This comment has been minimized.

@slel
Copy link
Member

slel commented Jan 10, 2022

comment:42

For macOS, I would change:

-      You can choose between two options: A 800 MB disk image
-      with the standard Sage distribution,
-      and a 1 GB disk image that adds many optional packages.
+      You can choose between two options: the standard Sage
+      distribution (800 MB disk image, expands to nearly 3 GB),
+      or an extended distribution with many optional packages
+      (1 GB disk image, expands to nearly 3.5 GB).

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 10, 2022

comment:43

Please feel free to push improvements to the ticket.

@tobiasdiez
Copy link
Contributor

comment:44

Replying to @sagetrac-tmonteil:

Replying to @tobiasdiez:

Replying to @EmmanuelCharpentier:

The future of Sage on Windows may well reside in WSL2. However, this solution implies the care and feeding of a Linux virtual machine on Windows. Easier, but again out of the reach of at least 50% of our target audience (Unif fu isn'a as popular among science/engineering students ast it once was, don't get me started on biology/geology students, and don't even think of physicians-to-be...:-)).

Setting up sage with WSL should be pretty straightforward. First install WSL with Ubuntu using the Windows store (at least on Win 11, https://aka.ms/wslstorepage, otherwise can be done using a few cmds) and then use apt get to install sage in it.

I had a look some times ago, but i could not find anything (prehaps because i am not user to windows) : it is possible to produce an single installer (.exe), that does the job of activating WSL, installing a GNU/Linux distro, install Sage in it, and add a launcher on the desktop ?

I'm not aware of such a possibility. What one could do is to create a custom WSL image (with sage pre-installed), which people could then use. But in order to distribute this in the store, one would need to contact microsoft: https://docs.microsoft.com/en-us/windows/wsl/build-custom-distro#for-linux-distro-maintainers

Another possibility is to install sage as a graphical app in WSLg (https://github.com/microsoft/wslg). For Win11, this then adds a launcher in the Windows start menu.

@tobiasdiez
Copy link
Contributor

comment:45

Replying to @dimpase:

Replying to @sagetrac-tmonteil:

Replying to @mkoeppe:

Replying to @sagetrac-tmonteil:

Regarding MacOS binaries, why not shipping the ones produced by 3-manifolds project on the Sage mirrors ?

The maintainer prefers to release them on GitHub releases.

If our binaries are broken and those are fine, why not just use their build scripts ? Otherwise, why not ship those working binaries on the Sage mirrors ?

ha! it needs all that Apple codesigning setup noone is willing to duplicate, it also is not free...

If you are a non-profit org, you don't have to pay for the developer account (which is needed for the codesigning): https://developer.apple.com/support/membership-fee-waiver/
Not sure if sage officially falls under this, but maybe worth a try?

@dimpase
Copy link
Member

dimpase commented Jan 10, 2022

comment:46

Replying to @tobiasdiez:

If our binaries are broken and those are fine, why not just use their build scripts ? Otherwise, why not ship those working binaries on the Sage mirrors ?

ha! it needs all that Apple codesigning setup noone is willing to duplicate, it also is not free...

If you are a non-profit org, you don't have to pay for the developer account (which is needed for the codesigning): https://developer.apple.com/support/membership-fee-waiver/
Not sure if sage officially falls under this, but maybe worth a try?

Unless we have a volunteer who's willing to jump through all the hoops to set this all up (we don't have a proper non-profit set up, despite talking about it for years - that's why in particular our donations (GitHub and "direct") are received via OpenCollective, and not in a more direct and cost-efficient way), it's all idle chatter.

Same for a volunteer to actually get on with the Apple developer cerificates, setting the necessary builds up, etc. (as this is all targeting developing via XCode, it's hit and miss with command line).

@kcrisman
Copy link
Member

comment:47

Replying to @orlitzky:

Replying to @pipedream:
There are many unfixed problems -- some fundamental -- and to put it bluntly, nobody cares.

As per usual in these arguments, what this means is, "nobody with the expertise to maintain binary distributions cares enough to put in the nontrivial work it demands", which isn't quite the same thing.

Anyway, if someone with the expertise of pipedream aka Jan G. is asking about Linux binaries, then it should go without saying that we need some sustainable, reliable way to provide Mac and Windows binaries (unless we assume everyone is using CoCalc, which I do not think should be the assumption). If Nathan and the Snappy folks are committed to this on Mac and that is easy to advertise everywhere it needs to be, great. From the discussion above, it sounds like the Windows situation is much less stable, and so comment:11 still stands. How easy is the Docker image to use by someone who is expecting a "download, then double-click" interface? If it's no harder to use than our most recent Cygwin-based one and is sustainable to produce, great. And all this has to be easy to find off the main Sage home page. (An advantage to removing from mirrors is people won't get confused by the mirror selection process.)

Unif fu isn'a as popular among science/engineering students ast it once was, don't get me started on biology/geology students, and don't even think of physicians-to-be...:-)

LOL. But interestingly, at UCLA apparently a lot of the latter had used Sage in a lab context (see the book), but I'm not so sure now - see this paper where I only see "Python" not "Sage".

@williamstein
Copy link
Contributor

comment:48

LOL. But interestingly, at UCLA apparently a lot of the latter had used Sage in a lab context (see ​the book), but I'm not so sure now - see ​this paper where I only see "Python" not "Sage".

I spent a day with them once. The first few hits for this search

https://www.youtube.com/results?search_query=william+stein+sagemathcloud+ucla

are to some short videos that came out of that.

The answer is that they use CoCalc (previous called SageMathCloud) with Sage worksheets and Jupyter notebooks, and have done so since 2014. They do not install Sage locally.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 10, 2022

comment:49

Replying to @kcrisman:

it sounds like the Windows situation is much less stable, and so comment:11 still stands.

The present ticket improves the Windows situation by giving a clear recommendation by way of the decision tree.

Needs review.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 10, 2022

comment:50

Replying to @kcrisman:

the Snappy folks are committed to this on Mac and that is easy to advertise everywhere it needs to be, great.

The present ticket improves the macOS situation by doing exactly this, advertising.

Needs review

@dimpase
Copy link
Member

dimpase commented Jan 10, 2022

Reviewer: Dima Pasechnik

@dimpase
Copy link
Member

dimpase commented Jan 10, 2022

comment:51

that's fine I think.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 10, 2022

comment:52

For improved usability of Sage-in-WSL, let's continue in #30484.

@slel
Copy link
Member

slel commented Jan 12, 2022

comment:53

Found this SageMath + Kenzo mybinder.org link

associated with this article:

  • Julián Cuevas-Rozo; Jose Divasón; Miguel Marco-Buzunáriz; Ana Romero.
    Integration of the Kenzo System within SageMath
    for New Algebraic Topology Computations.
    Mathematics 2021, 9(7), 722. DOI:10.3390/math9070722

but trying it failed for me.

@slel
Copy link
Member

slel commented Jan 30, 2022

comment:54

Setting milestone to 9.6 now that 9.5 is out.

@slel slel modified the milestones: sage-9.5, sage-9.6 Jan 30, 2022
@vbraun
Copy link
Member

vbraun commented Jan 31, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants