-
-
Notifications
You must be signed in to change notification settings - Fork 491
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
Enable gitpod integration #32749
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:3
Use of linuxbrew is entirely untested; see #29159 |
comment:4
The problem with |
comment:5
Probably |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Changed work issues from Cleanup config, add vs extensions and add docs to none |
comment:8
Thanks for the feedback. I've now removed the linuxbrew install of ecl and opened tickets for the other things. So this is now ready for review. |
This comment has been minimized.
This comment has been minimized.
comment:9
Does it work? |
comment:10
Consider opening a bug report against the ecl packaging on linuxbrew |
comment:11
Let's resolve the |
comment:12
Replying to @mkoeppe:
Yes! You can also test this out using the above link. Currently one has to wait for the build to finish. This waiting time can be removed by activating the github integration after this ticket is merged. |
comment:13
Replying to @mkoeppe:
Will do after this ticket is merged (since I can then reference the gitpod workspace as a reproducible example). |
This comment has been minimized.
This comment has been minimized.
comment:15
It is asking: "We noticed a new virtual environment has been created. Do you want to select it for the workspace folder?" Add the correct answer to the documentation? |
comment:16
Maybe you want to use |
comment:17
Does this need Sage's Jupyter notebook or does it bring its own?
|
comment:18
Given that the preinstalled linux is old and the linuxbrew has some broken packages, one could wonder whether it would be better to use |
comment:19
The build on Gitpod finished for me, but then the workspace timed out; on opening it again, starting |
comment:20
Replying to @mkoeppe:
This will be no longer necessary once we have added the VS config. |
comment:21
Replying to @mkoeppe:
Normally the user wouldn't see this, and everything that is printed during the init stage would become the prebuilt log that can be viewed in the admin interface. So I think its fine to have it more detailed, in case something goes wrong. |
comment:124
Thanks for thinking along. The problem is more this strange 502 error that I now get during the prebuild. I've now opened gitpod-io/gitpod#7413 to investigate where the error comes from. We also might merging this ticket and activate the github app, because then you should also have access to the prebuild logs (which is not possible for the manual prebuild). However, the docker build already works and has not much room for improvement (the only non-Python packages that are currently not finished is singular and maxima). For this I would just wait until gitpod increases its time limit. Using github actions to build docker images, that are then reused by gitpod sounds pretty complicated to me. Gitpod also handles caching and invalidating of the images for you (one needs to rebuild the base docker images for branches that change non-Python packages or if the docker file changes). What still has room for improvement (but also almost fits into the 1h limit) is the prebuild of the Python packages. For this it would be good to reuse wheels to decrease the build time, or maybe use conda. But maybe we should first try it withput this optimization and also wait for gitpod to increase the time limit. May I ask you to push changes to the gitpod docker and yml files to a different branch. Everytime one changes the docker file, one has to sit through 1h. Thanks. |
comment:125
Sure, I'll work in #33103. |
comment:126
Feel free to revert the branch on the ticket here to what works for you. |
comment:127
Replying to @tobiasdiez:
I think you may want to try this first in your personal GitHub account. Getting this to work shouldn't require to make org-level changes to the |
comment:128
Replying to @tobiasdiez:
Looking at https://github.com/gitpod-io/workspace-images/blob/master/full/Dockerfile, nix seems to be available, so this may be another option |
comment:129
Replying to @mkoeppe:
Could you maybe revert to 3adf51 for me pls? I don't have a dev pc available and used gitpod to make the necessary changes... |
comment:130
Replying to @mkoeppe:
Is this usually quicker or are the more system packages available? |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
comment:132
Replying to @tobiasdiez:
Done, with that change cherry-picked.
Just an easier solution that works without using |
comment:133
Replying to @tobiasdiez:
More packages, because someone made an effort to package all of sage not so long ago. Not sure in what shape it is though |
comment:134
The nix package for Sage seems maintained up to date. |
comment:135
Thanks for the pointer. Nix seems promising indeed, but I think it would make sense to first create a workable nix environment (e.g. The approach with prefix + symlink was not working for me. Every prebuild that I triggered timed-out without any error message; also when running it from my own fork using the gitpod app integration. I guess something from the gitpod build context slips into the image/prebuild setup. Thus, I've reverted to use of the prebuild of system packages in During the docker build it suggests to install the following packages
Some are excluded (like pari and flint) but other would make sense to install I guess. Should I try manually adding them, or should the We now have three possible options for the gitpod integration and before we invest more time working on them separately it is probably worthwhile to choose on one of them to proceed further:
|
comment:136
I would suggest that we go with 2) (#33103) because its maintenance basically comes for free from the portability test infrastructure. |
comment:137
Is fine with me. However, that approach has a few disadvantages as far as I can see:
These are certainly not deal breakers but should be kept in mind. The first approach has also a few disadvantages:
|
comment:138
Great points. I think we can address the current disadvantages of approach 2 in a follow-up ticket (#33113). In particular, as discussed in #33103 comment:19, could use |
comment:139
Replying to @mkoeppe:
But you also need to transfer the installation of the system packages to the final image, so this may be quite complicated. Probably you end up with something quite close to the dockerfile of this ticket. Maybe that's actually the best of the two worlds: essentially use the docker file from this ticket, but instead of the |
comment:140
No, it could just use |
comment:141
Replying to @mkoeppe:
Now implemented in #33103 comment:95 |
comment:142
Let's close this in favor of #33103. |
Changed author from Tobias Diez to none |
Reviewer: Tobias Diez |
Gitpod allows one to setup a complete dev environment in the cloud. It is free to use for up to 50 hours per month. In this ticket the config necessary for making this work with sagemath is added.
You can try this out by going to https://gitpod.io/#https://github.com/sagemath/sagetrac-mirror/tree/public/build%2Fgitpod.
It currently takes a bit more than 1 hour until everything is setup. After this ticket is merged, we can enable the automatic prebuild using a github app (https://www.gitpod.io/docs/prebuilds#on-github). With this enabled, every push to the develop branch would trigger a prebuild of the complete environment (including the build of all dependencies and cythonizion) so that one has a up-to-date code env in a matter of a few seconds.
While setting things up, I noticed a few issues. Not sure if they are known problems or even by design. Please let me know if I should open a ticket for them to improve things.
brew xyz
to install new packages. Is brew indeed preferred over apt-get? This is now Prefer Linux package manager over linuxbrew; add nix detection #32753.pyenv global system
. Otherwise all python packages will be installed in the python env set by pyenv. This is now Unbreak the build when pyenv is present #29285.make
option that uses prebuilt wheels from pypi instead of compiling everything locally. This is now Add make option to use prebuilt wheels from PyPI #32754.This should be investigated as part of #29159.
Depends on #33068
Depends on #30933
CC: @mkoeppe @saraedum @koffie
Component: build
Branch/Commit: public/build/gitpod @
974eb4c
Reviewer: Tobias Diez
Issue created by migration from https://trac.sagemath.org/ticket/32749
The text was updated successfully, but these errors were encountered: