-
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Planing of repository layout #1
Comments
|
I don't know about licenses. ChatGPT recommends GPL v3 :-) |
Yes. That would be clean. |
Are you planning to put my installer into here as well? Source code is here: https://github.com/flatsurf/sage-flatsurf/tree/master/installer/win plus this workflow file: https://github.com/flatsurf/sage-flatsurf/blob/master/.github/workflows/installer.yml (I am happy to contribute this in a PR once the layout has been decided.) |
You may name it |
Sure! I think we should consolidate all inputs in this repo to achieve good solutions for Windows users.
That looks interesting!
In general, I think we should work with PRs here. For a startup, in the first commit I created the layout as suggested here and added some files from my Docker Guide repo. Unfortunately, I can't do much more this week. Feel free to start without me. |
Functionality we have in sumFYI: I made some major changes in my approach. I got rid of Docker Desktop replacing it by a custom WSL distribution based on Alpine Linux. This makes the installation much easier, faster and less resource consuming and reduces startup-time. How do we want to proceed here? We have four codebases: A) the one by @saraedum, which is developed for flatsurf and installs Sage as a custom WSL distribution. All except D) have in common that they need a working WSL installation and this is the hardest part of the installation and most sensitive to system requirements. Let me try to summarize what we have in total (please correct me if I'm wrong):
From a user perspective, there is hardly any difference between A) and B) (asuming equal resource consumption). Therefore, I think it makes sense to consolidate the two approaches. From a technical perspective, both approaches have different advantages: A) Is implemented as part of installers for Linux, Mac and Windows and uses a common base via Pixi. Is there a way to merge these two approaches? Maybe it would make sense to include 1.4 here as well. For C) it would be nice to have 1.5 and 3. (creating an install-wizard using Inno Setup) as per A). Is there a way to share the WSL installation across all three approaches? |
At least one thing could be done in common by following this suggestion by @tobiasdiez in sagemath/sage-binder-env#20 (comment) (regardless of whether we use Pixi or Docker containers to generate them):
|
I look forward to seeing one official windows installer that combines all the merits of the three approaches. The installer at sage-binder repo would be taken down when the installer here supersedes the former. I hope that this repo would be the canonical place visited by those looking for a windows installer for sage. The Sage documentation would direct people to here. |
I'm also working on a native windows build of sage (using conda atm) in sagemath/sage#38872. It compiles but is definitely not yet production ready. Just wanted to mention it here as a "4." approach. Since it's not based on WSL, it circumvents many problems associated with this technique (but it comes with its own challenges of course). Maybe in the future it can be given as an experimental option in the "combined windows installer". |
Great! It looks like a lot of work. I hope it will be successful and less fragile than the Cygwin approach. I added it as method D) above. |
Just to clarify 1.3.A) InnoSetup asks you to reboot and otherwise it doesn't continue. It adds the installer to the autostart so that the installation continues after the reboot. (All of this is a feature of InnoSetup.) |
Windows installers are extremely weird. What InnoSetup can and cannot do at certain steps of the process and as which user things happen took a lot of effort to get (hopefully) right. Feel free to use the WSL prerequisites part in your installer of course, but I am not sure that it is going to be easy to put the rest of your process into InnoSetup as is. For example, I do not create the WSL distribution as part of the installer. I concluded that this is not really possible; instead you have to create the WSL distribution by launching the "installed program" as the current user once the actual installation is complete. |
Thanks! I corrected it in the list above! |
Thanks for these useful explanations and hints. I have to look in more detail into it, to see what is possible. |
Current state after Sage 10.5 has been releasedA) This seems to be broken. The installation abruptly stops without any messages (propably because of We already pressed Enter for you). Executing the Powershell script shows HRESULT: 0x80004005???:
Obviously this is not due to the new Sage release. Moreover the installer now also fails for sage-flatsurf-0.5.2 where it worked before (see sagemath/sage#33765 (comment)). I had this on another machine, too. B) Here the C) still works because the 10.5 image was successfully built on Docker Hub. D) is now in a state where the build should work (see sagemath/sage#38872 (comment) and sagemath/sage#38872 (comment)), but testing still needs to be done. I've started testing, but not yet successfully. I've probably made some mistakes. I'll report on it later. I noticed a gap in the IPython app for B and C (I suspect also for A, but I haven't checked that yet). It's about the graphical output. This is fine for Jupyter Lab, but the IPython terminal cannot launch a graphical viewer because it was built on an Ubuntu server. One way to fix it would be to install graphical support in the container and use X11-forwarding. However, this would require almost 1 GB of additional space for the Docker images (tested with qimgv). A less resource-intensive method would be to use a native Windows image viewer triggered via an appropriate socket. However, I don't have much experience with socket programming. Any hints for such an approach are very welcome. |
A) This cannot work because it needs SageMath 10.5 to be packaged on conda-forge. This has not happened yet.
|
For D), you might experience sagemath/cysignals#212 - which is fixed in the most recent release (which you can already get from pypi). Once conda-forge/cysignals-feedstock#54 is merged, I'll update the conda lock files (@saraedum could you have a look at the open PRs in the cysignals feedstock please? Thanks!) |
What is the intended behavior if packaging of a new release is delayed on conda-forge? I asume it's not that the window is simply closed an nothing else happens.
Thanks! I suspected an upstream issue. I'll keep an eye out for the next release. |
Thanks for the hint, but I fear my problem starts earlier when setting up the correct build environment on Windows (I'm doing this for the first time after a long break). I will need some more time! |
@tobiasdiez, here my according attempt hoping it helps you to understand my problem:
I got that in a Miniforge Prompt terminal, after I run succsessfully |
You need to run everything from the Conda's compiler package actually tries to activate the vs build environment, but it's not working (see conda-forge/compilers-feedstock#66). |
Thanks for the hints. See my testreport in sagemath/sage#38872 (comment) |
@kwankyu, I open this issue to find the structure of the new repository. From my point of view we need the following:
./LICENCE
I would say GPL?
./README.md
basic explanations, advantages and disadvantages of both approaches, links to the two
.md
files below. Maybe also links to directly download installation scripts from here./sagemath_docker_guide.md
my former README.md from
projects_docker_guide
./sagemath_wsl_installer.md
containing more information about your approach (file-names are just suggestions)
./src/
containing
.ps1
files fromprojects_docker_guide/src
and in addition, if you like to extract a.ps1
template from yourcreate-wsl-image.yml
that could be here, too./screenshots/
shall we have sub-folders for both approaches?
./.github/workflows/
containing the content of your
create-wsl-image.yml
and mydocker_guide_installer_release.yml
(which I created yesterday)maybe merged into one workflow (because they have the creation of the release note in common).
Anything else?
Previous work on this topic can be found at sagemath/sage-binder-env#20.
The text was updated successfully, but these errors were encountered: