Skip to content

JupyterLab 3.0 #1207

Closed
Closed
@romainx

Description

@romainx

Hello,

JupyterLab 3.0.0 introduces major changes that could impact:

  • the compatibility between Jupyter Notebook and JupyterLab,
  • the way extensions are managed.

Terminology

Very good status taken from nbgallery/docker-images#17

Some terminology, to avoid confusion:

  • Jupyter back-end options:

    • notebook server, which supports "serverextensions" (no space) that I'll refer to as old-server extensions
    • jupyter_server, which supports "server extensions" (space) that I'll refer to as new-server extensions
  • Jupyter front-end options:

    • notebook - the traditional UI, often called "classic" -- but since I'm about to mention two other "classic" projects, I'll call it "Notebook UI" for clarity
    • lab - the next-gen UI
    • jupyterlab-classic - the look and feel of the Notebook UI but built with Lab components
  • Compatibility layers:

    • nbclassic - provides the Notebook UI as a new-server extension and also translates old-server extensions into new-server extensions. (To be clear, this isn't just something that looks like the Notebook UI, it is literally the same code, running through the compatibility layer.)

Impact

Jupyter Notebook and JupyterLab

Jupyter Notebook is deprecated and it is advised to transition to JupyterLab.

Please note that this repository is currently maintained by a skeleton crew of maintainers from the Jupyter community. We encourage users to transition to JupyterLab, where more immediate support can occur.

See dedicated issue #1217.

Extensions

According to the JupyterLab changelog

Extensions can be installed without building JupyterLab with NodeJS
In JupyterLab 3.0, a new recommended way of distributing and installing extensions as Python pip or conda packages is available. Installing such extensions does not require rebuilding JupyterLab and does not require having NodeJS installed. The previous way of distributing extensions as npm packages requiring rebuilding JupyterLab is still available as well. See the documentation for more details.

We should manage extension differently in scipy-notebook.

jupyter nbextension enable --py widgetsnbextension --sys-prefix && \
# Also activate ipywidgets extension for JupyterLab
# Check this URL for most recent compatibilities
# https://github.com/jupyter-widgets/ipywidgets/tree/master/packages/jupyterlab-manager
jupyter labextension install @jupyter-widgets/jupyterlab-manager@^2.0.0 --no-build && \
jupyter labextension install @bokeh/jupyter_bokeh@^2.0.0 --no-build && \
jupyter labextension install jupyter-matplotlib@^0.7.2 --no-build && \
jupyter lab build -y && \
jupyter lab clean -y && \
npm cache clean --force && \

This issue summarizes in a table the extensions currently compliant with the new version and here is the list of extensions used in scipy-notebook.

JupyterHub

There is also something to check with JupyterHub since the stacks permit to launch jupyterhub-singleuser. It think it's well summarized in jupyterhub/jupyterhub#2984 and this comment.

Best

Metadata

Metadata

Assignees

Labels

type:EnhancementA proposed enhancement to the docker images

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions