Just add Python: JupyterLab 3.0 arrives, making it easier to extend and debug notebooks

Just add Python: JupyterLab 3.0 arrives, making it easier to extend and debug notebooks

JupyterLab, a web-based user interface for Jupyter Notebooks, has just rolled out its third major release, providing users with a visual debugger, an extension to create content tables, and ways to distribute extensions so that users don’t have to rebuild the lab to use them. 

Jupyter Notebooks allows users to create documents that can contain text mixed with code, visualisations, and equations viewed via a browser. In recent years the format gained popularity amongst data scientists and machine learning professionals as a way to share multi-faceted information or reviewable research results. 

In this context, JupyterLab can be compared to an interactive development environment, as it allows the opening of several files and provides helpers like autocompletion and drag and drop to modify contents. 

JupyterLab 3.0 followed this trajectory, by bundling the tool with the visual debugger first introduced in March 2020. As long as a kernel with debugging support is installed, it can be enabled during launch or through the kernel selection dialog, consequently allowing the setting of breakpoints or stepping into code as you would in any regular IDE.

To keep a better overview of more complex notebooks, the JupyterLab team has moved the Table of Contents extension to the core, making it easier to get an outline view of documents. It has also added a filter input similar to that in the command palette – which can now be found in a floating window on top of the workspace – to the integrated file browser. In another change, the property inspector has a new home in the right sidebar, so don’t panic if you can’t find it straight away.

In earlier versions, users often had to rebuild JupyterLab or install Node.js when they needed to work with new extensions. This changed with v3.0 and extension developers can now distribute their add-ons as Python packages which can then be installed via pip or conda.

Extension developers should note a new script which helps with updating dependencies and make other necessary adjustments to keep their creations working with the new version. Meanwhile server extensions or other extensions containing Python images may need some additional manual editing, examples for that can be found in the official repository.

JupyterLab 3.0 has also switched from the classic Notebook server to jupyter_server, which is why the development team has advised users to update server extensions. Shims to keep them running are available, though, so you can take your time with that. 

As with earlier releases, users can take JupyterLab 3.0 for a spin on cloud service Binder.