Need clarification of versions of helm chart, hub and lab


Could somebody clarify to me the dependencies between versions when using z2jh installed via the helm chart, and the pip installed jupyterhub/jupyterlab packages install in our docker images?

I install jupyterhub in kubernetes with currently the helm chart 2.0.0 which says the app version is 3.0.0 I assume it means the version of jupyterhub.
I see there is the helm chart version 3.2.1 for instance now, that is for app version 4.0.2

Then I create a custom docker image from jupyter/docker-stacks-foundation:python in which I pip install jupyterhub==4.0.0 and jupyterlab (unpinned → I get 3.6.7).

I hadn’t noticed all those versions everywhere until now.
I am trying to test jupyterlab 4.x and update the helm chart and jupyterhub to the latest possible if I can find necessary extensions compatible with 4.x.

Thanks for any insights that could help my confused mind :slight_smile:

I at least sanitize it this way for now:

  • helm chart 3.2.1 → Jupyterhub 4.0.2
  • pip install jupyterhub 4.0.2 in the docker image
  • pip install jupyterlab 3.6.7 (for now) in the docker image

I guess it makes sense that the version of jupyterhub in the server docker image should be the same as the one in z2jh. Or does it? I am not familiar with how it works under the hood, but would assume that the communication between the server runtime and the hub should be compatible “enough” to avoid weird issues.

There are very little constraints, but keeping the jupyterhub’s major version deployed by z2jh ±1 on the major version installed in the user images is probably going to work well. So if the user image has major version 3-5 and the deployed hub has version 4, thats probably fine.

I wouldn’t pin the any version constraint on jupyterhub (not major and especially not minor/patch versions in images), at least as long as I’d be updating z2jh at least yearly.

It is probably also relevant to use a modern or at least non-ancient jupyter-server version in the user environment, to get well tested and solid interactions between it and jupyterhub.

thanks for confirming and adding explanations