fix(images): bump JupyterLab to 4.6.x to resolve gallery/extension version skew#138
Draft
viniciusdc wants to merge 1 commit into
Draft
fix(images): bump JupyterLab to 4.6.x to resolve gallery/extension version skew#138viniciusdc wants to merge 1 commit into
viniciusdc wants to merge 1 commit into
Conversation
…rsion skew The image shipped JupyterLab 4.2.5, but jupyterlab-gallery 0.6.3 and other prebuilt extensions were built against newer JupyterLab. At runtime the browser flooded with federated 'Unsatisfied version' errors (e.g. @jupyterlab/apputils required ^4.6.6, coreutils ^6.5.6, services ^7.5.6) and the gallery /pull (git-clone) endpoint failed. Bump jupyterlab to >=4.6.0,<4.7. JupyterLab 4.6.0 bundles @jupyterlab/apputils ~4.7.0, coreutils ~6.6.0 and services ~7.6.0, all of which satisfy the gallery 0.6.3 federated constraints. Drop the httpx <0.28 pin: it only existed because JupyterLab 4.2.5's extension manager used the removed proxies= kwarg. 4.6.0's extension manager handles httpx >=0.28 explicitly (mounts=), so the workaround is no longer needed. Regenerate pixi.lock against the new constraints; all extensions resolve at their pinned versions with no package held back. Affects both the CPU (nebari-data-science-pack-jupyterlab) and GPU (nebari-data-science-pack-jupyterlab-gpu) images, which share this pixi env. Closes #134
Member
|
jupyterlab-gallery was last published way before JupyterLab 4.6.x. It is built against 4.2.x. There are no singleton requirements. Was that analysis AI-generated? I saw AI incorrectly claim these things about another extension before. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Bumps JupyterLab from a hard-pinned
==4.2.5to>=4.6.0,<4.7inimages/jupyterlab/pixi.toml, regeneratespixi.lock, and drops the now-obsoletehttpx <0.28workaround.Why - the version skew
The image shipped JupyterLab 4.2.5, but
jupyterlab-gallery==0.6.3(and the other prebuilt extensions) were built against a much newer JupyterLab. The prebuilt federated modules declare singleton requirements the 4.2.5 core could not satisfy, so at runtime the browser console flooded withUnsatisfied versionerrors, e.g.:@jupyterlab/apputilsrequired^4.6.6@jupyterlab/coreutilsrequired^6.5.6@jupyterlab/servicesrequired^7.5.6The concrete user-facing symptom (issue #134): the gallery's
/pull(git-clone) endpoint fails, so you cannot add contents to the Jupyter Gallery.The fix
JupyterLab 4.6.0 (the latest stable 4.x on conda-forge / PyPI) bundles the federated packages at:
@jupyterlab/apputils~4.7.0-> satisfies^4.6.6@jupyterlab/coreutils~6.6.0-> satisfies^6.5.6@jupyterlab/services~7.6.0-> satisfies^7.5.6So 4.6.0 clears every constraint the gallery 0.6.3 wheel asks for. (Note: the
4.6.6figure in the bug report is the apputils package version; the JupyterLab app version that ships it is 4.6.0 - there is no 4.6.6 jupyterlab release.)httpx pin lifted
The
httpx <0.28pin existed only because JupyterLab 4.2.5's extension manager (jupyterlab/extensions/pypi.py) used theproxies=kwarg that httpx 0.28 removed. JupyterLab 4.6.0's extension manager branches explicitly on the httpx version (usesmounts=for>=0.28), so the workaround is no longer needed. The comment that gated it on "until JupyterLab is upgraded" is exactly the condition we are now satisfying.Lock regenerated
pixi.lockwas regenerated (pixi lock). The resolve succeeds with no extension held back -jhub-apps==2025.11.1,jupyterlab-jhub-apps==0.3.1,jupyterlab-nebari-mode==0.3.0,jupyterlab-launchpad==1.0.5,jupyterlab_nvdashboard==0.12.0, andjupyterlab-gallery==0.6.3all remain at their pinned versions. No extension required a JL bump or relaxation of its own.Images affected
Both
nebari-data-science-pack-jupyterlab(CPU) andnebari-data-science-pack-jupyterlab-gpu(GPU) build from thejupyterlabDockerfile target and share this sameimages/jupyterlab/pixi.toml/pixi.lockenv - they differ only by base image and theGPUbuild-arg. The fix covers both.CI
This branch lives on the upstream repo (not a fork) so CI has access to the Quay push secret and will build + push test images for the gallery fix to be validated end-to-end (including with the GPU image).
Closes #134