Skip to content

Update JupyterHub, JupyterLab, and jhub-apps stack#147

Open
MUFFANUJ wants to merge 6 commits into
nebari-dev:mainfrom
MUFFANUJ:updateJlab&hubDeps
Open

Update JupyterHub, JupyterLab, and jhub-apps stack#147
MUFFANUJ wants to merge 6 commits into
nebari-dev:mainfrom
MUFFANUJ:updateJlab&hubDeps

Conversation

@MUFFANUJ

@MUFFANUJ MUFFANUJ commented Jul 1, 2026

Copy link
Copy Markdown

Reference Issues or PRs

Closes #143 ( needs testing before closing )

What does this implement/fix?

Put a x in the boxes that apply

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds a feature)
  • Breaking change (fix or feature that would cause existing features not to work as expected)
  • Documentation Update
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no API changes)
  • Build related changes
  • Other (please describe): Maintenance

Testing

  • Did you test the pull request locally?
  • Did you add new tests?

Documentation

Access-centered content checklist

Text styling

  • The content is written with plain language (where relevant).
  • If there are headers, they use the proper header tags (with only one level-one header: H1 or # in markdown).
  • All links describe where they link to (for example, check the Nebari website).
  • This content adheres to the Nebari style guides.

Non-text content

  • All content is represented as text (for example, images need alt text, and videos need captions or descriptive transcripts).
  • If there are emojis, there are not more than three in a row.
  • Don't use flashing GIFs or videos.
  • If the content were to be read as plain text, it still makes sense, and no information is missing.

Any other comments?

This updates the Nebari data science pack to the newer JupyterHub/JupyterLab runtime stack, including JupyterHub 5.5.0, KubeSpawner 7.0.0, OAuthenticator 17.4.0, JupyterHub chart 4.4.0, JupyterLab 4.6.1, Jupyter Server 2.20, jhub-apps 2026.6.1, and refreshed JupyterLab extensions. Adds compatibility settings for OAuthenticator 17 managed groups and KubeSpawner 7 slug behavior, and adds regression coverage for Keycloak full-path group and PVC slug stability.

Tested by building local Docker images for both the JupyterHub and JupyterLab images from this checkout. The JupyterLab image started successfully on localhost with JupyterLab 4.6.1 and Jupyter Server 2.20, loaded the expected server extensions, and allowed UI smoke testing of the updated Lab experience including Nebi, Gallery/Launchpad, and extension availability. The Hub image started with JupyterHub 5.5.0 and jhub-apps 2026.6.1, and the jhub-apps health endpoint returned OK. The CI-style unit test environment was also run with the updated Hub/OAuthenticator versions, with all 81 unit tests passing. Full Kubernetes spawn/app lifecycle validation should still be done in a deployed environment because the local Docker-only Hub smoke test cannot exercise KubeSpawner, PVC, and cluster networking behavior.

Jupyterlab and extensions: ( the video looks super off due to the high compression since github wont accept vids above 10mbs if needed can add original one )

Screen.Recording.2026-07-02.at.2.35.54.AM.mp4

JupyterHub:

Screen.Recording.2026-07-02.at.2.55.56.AM.mp4

During local validation, jupyter labextension list showed frontend compatibility warnings for the Jupyter AI/chat/collaboration packages. The cause is that JupyterLab 4.6.x uses @jupyter/ydoc v4, while the latest stable Jupyter AI/collaboration packages still declare compatibility with the older v2/v3 range. With the packages available today, the practical options are to either keep JupyterLab 4.6.x and disable/remove Jupyter AI for now, or keep Jupyter AI and use JupyterLab 4.5.8 until upstream publishes stable ydoc-v4-compatible releases.

@krassowski

Copy link
Copy Markdown
Member

During local validation, jupyter labextension list showed frontend compatibility warnings for the Jupyter AI/chat/collaboration packages. The cause is that JupyterLab 4.6.x uses @jupyter/ydoc v4, while the latest stable Jupyter AI/collaboration packages still declare compatibility with the older v2/v3 range.

These warnings are meaning less I believe

With the packages available today, the practical options are to either keep JupyterLab 4.6.x and disable/remove Jupyter AI for now, or keep Jupyter AI and use JupyterLab 4.5.8 until upstream publishes stable ydoc-v4-compatible releases

Does it have any impact on UX?

@krassowski

Copy link
Copy Markdown
Member

The reason to not update to jupyter-ai v3 would be that it depends on jupyter-server-documents.

@krassowski

Copy link
Copy Markdown
Member

Should we also upgrade https://pypi.org/project/jupyterlab-spellchecker/ to 0.9.0 now that it is out with the fix for long-starting notebooks spell checking?

@MUFFANUJ

MUFFANUJ commented Jul 6, 2026

Copy link
Copy Markdown
Author

Should we also upgrade https://pypi.org/project/jupyterlab-spellchecker/ to 0.9.0 now that it is out with the fix for long-starting notebooks spell checking?

Ohh, it was released few hours ago thanks for pointing!

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Per-user Nebi (jupyter-server-proxy) crash-loops under jupyter-server 2.20

3 participants