-
Notifications
You must be signed in to change notification settings - Fork 38
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
Additional packages for module 1 ESPM-157 #5827
Additional packages for module 1 ESPM-157 #5827
Comments
@cboettig Added all the requested packages in https://staging.datahub.berkeley.edu/ via this PR1 & PR2. I currently tested this notebook from ESPM 157 Github repo. It seems like With |
Closing this issue as changes got merged to prod. @cboettig Please reopen this issue if that is not the case. |
@balajialg thanks much! Apologies I'm looping back here and catching up. Yes, can we have both pandas and duckdb backends for ibis? I don't think I have permissions re-open.
|
@cboettig Sure, I am assuming that you would want https://pypi.org/project/jupyter-vscode-server/ extension. Any other code server extension that you want as part of the image? For increasing RAM, we need the bcourses id for your FA 24 course. Can you either share the bcourses id here or create a separate request via this github issue. I will create a PR to address all the above requests. |
@balajialg Thanks much!! It looks like jupyter-vscode-server already installed on datahub.berkeley.edu. However, Code-server itself has it's own extension system, but it can't install: for whatever reason, code-server also doesn't detect a python installation (probably something about how conda is configured?). It would be great if users could could go to e.g. https://datahub.berkeley.edu/user/cboettig/vscode/ (or appropriate link) and be able to start running in an ipynb notebook there. |
Thanks @cboettig, will look into it. |
@balajialg One more python module request for you. (Sorry, just finding so much awesome stuff in the python ecosystem while migrating from the R version of this course. I know we could do quarto but Myst is 😻 )
|
@cboettig No worries, keep it coming :P |
@cboettig Do you mean pre-install the Jupyter and Python extensions? @balajialg I think this can be done by adding something like this to the docker image: export VSCODE_EXTENSIONS=${CONDA_DIR}/share/code-server/extensions
code-server --extensions-dir ${VSCODE_EXTENSIONS} --install-extension ms-python.python --force
code-server --extensions-dir ${VSCODE_EXTENSIONS} --install-extension ms-toolsai.jupyter To be reproducible, we'd need to first download specific versions and then install, e.g. export VSCODE_EXTENSIONS=${CONDA_DIR}/share/code-server/extensions
VSIX=2024.13.2024080701
wget https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/${VSIX}/vspackage -O /tmp/ms-python.vsix
code-server --extensions-dir ${VSCODE_EXTENSIONS} --install-extension /tmp/ms-python.vsix |
Thanks @ryanlovett! This is helpful instructions. I will get to this asap! |
@ryanlovett Just created a PR - #5915 which addresses Carl's requirement |
@cboettig Just wanted to give you a heads up about where things are currently - We are seeing 3 different challenges to get the extension set up working in VSCode as expected before the start of the instruction, a) Downloading VSIX files for the required VSCode extensions via wget/curl is failing since there is a discrepancy in the size of the VSIX files when downloaded via GUI vs CLI. We might need to download it via UI, place it in datahub directory and reference it in the docker image. Ref: microsoft/vscode-python#17491 Jonathan, Ryan and I met yesterday for a debugging session to get this to work (Jonathan and I had a marathon meeting lasting 3+ hours). We will be meeting again next week to hash out the next steps. Being transparent - If we cannot get it to work the way you wanted during the next meeting, we might need to postpone handling this request by a month or so since the semester's start is a really hectic time to deep dive into a single issue. |
ok thanks for the heads up. I think we'll try and stick with pure jupyterhub interface then |
Hopefully quick/small thing here. I'd like students to be able to delete folders/directories even if they aren't empty. (I find most GUIs allow this, and not being able to delete non-empty dirs confuses students.) I gather it's possible but couldn't figure out the configuration option (see https://discourse.jupyter.org/t/recursive-delete-directories-in-file-browser/27468/2) any ideas? Is this something we could enable out of the box? (I know this is potentially destructive, but I really emphasize that students should treat hub storage as ephemeral anyway and want them to be good stewards of that space cleaning up storage without teaching bash commands) |
@cboettig one concern that'd I'd have is we're currently talking about the datahub hub, so a config change for one class will impact all others on the same hub. I wholeheartedly support the idea of being a good steward of resources and informing students to consider hub storage as ephemeral including encouraging folks do their own backups. I wish more people did this! However, as you've indicated this is potentially destructive and represents a departure from how non empty directories are currently treated. It could present a problem for other courses where less focus is spent talking about resource management. What I'd love to see here is an upstream change where a recursive delete requires a confirmation perhaps even with a checkbox to acknowledge when one is deleting a non empty directory. That would allow for this functionality with less of a chance of a destructive mistake. |
I think it is possible to mount code containing a singleuser:
extraFiles:
jupyter_server_config.json:
mountPath: /usr/local/etc/jupyter/jupyter_server_config.json
data:
FileContentsManager:
always_delete_dir: true it would need to be ported to kubespawner override form in order to take effect for just the classes we want. I think it would need to be a volumeMount, e.g. volumeMounts:
- name: home
subPath: _espm-157/espm-157.json
mountPath: /usr/local/etc/jupyter/jupyter_server_config.d/espm-157.json where we put the config in the filestore in a course subdirectory. We do this for shared directories, but instead of sharing data, we'd "share" configuration. The contents of the file would be: {"FileContentsManager":{"always_delete_dir":true}} We may or may not need to precreate /usr/local/etc/jupyter/jupyter_server_config.d. (I don't know if kubernetes would make that for us when it performs the mount.) See /srv/conda/etc/jupyter/jupyter_server_config.d for config files installed by packages. Note that I'd rather that this config be code deployed from the repo rather than from a directory on the filestore. One way to do that would be to put the configuration data inside a configMap. There's no existing example of that, but it may not be too hard. The above should work though. |
@balajialg for some reason
Also, lemme know if we might get Myst markdown back. Also let me know if you have a reproducible example of the issue, I saw the forum post you've linked and tried asking around a bit and only hear that myst should work well with LaTeX? |
(it looks like I can resolve the seaborn issue by upgrading via |
@cboettig currently seaborn is version locked on datahub:
When I look:
It is definitely not recommended to have students running conda to update packages manually as those updates will not persist between server launches. Can you please confirm that seaborn 0.13.2 meets your needs (or is the version that gets deployed when you run conda install). If so we can probably adjust the version lock for seaborn to deploy 0.13.2. Also for the future, we version lock packages so that subsequent deployments during the semester will not result in unintended package changes which have a habit of breaking things. It's really helpful if when specifying packages you also specify versions. |
@cboettig this is live on nature-staging, please let me know if things are working properly for you. thanks! |
all lookin good! |
another!
|
live on nature-staging! |
also live on prod... if you need anything changed pls re-open and let us know |
could we add mystmd? |
@cboettig this is now live on nature-staging.d.b.e, please test and let me know if it looks good to you! |
@shaneknapp thanks! just testing for pdf output it wants |
alright this is live on nature-staging! give it a test drive and let me know if you need anything else. :) |
all good! |
another one:
I think this one needs to be |
this is live on nature-staging! |
🎉 looks great! |
whoops, and found another -- (I tested with pip install; though I think this one should be available with conda too(?). I've noticed we can pip install from the hub but I guess the conda-solver is more RAM hungry and any install request just crashes the pod). |
yeah, conda-solver is definitely ram hungry. this build locally, so i've created a pr. |
duckdb-engine is live on nature-staging |
perfect! |
Package Name
altair, ibis-framework[duckdb], leafmap[libremap], myst
Hub URL
nature.datahub.berkeley.edu
Course Name
ESPM 157
Semester Details
Fall 2024
Installation Deadline
Start of Semester.
Let me know if it would be better to do separate requests? Also, I know most of these we can install ourselves but it looks like myst will require a working nodejs setup.
The text was updated successfully, but these errors were encountered: