https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb Sign in Jupyter Blog * Archive * Events * Jupyter Website JupyterLab 3.0 is released! Jeremy Tuloup Jeremy Tuloup Follow Jan 5 * 5 min read The 3.0 release of JupyterLab brings many new features to users and substantial improvements to the extension system. Installation To install JupyterLab with pip: pip install jupyterlab==3 With mamba: mamba install -c conda-forge jupyterlab=3 With conda: conda install -c conda-forge jupyterlab=3 (Note that many third-party extensions are still in the process of updating to be compatible with JupyterLab 3.0 -- please check the extensions you use and be patient, or even better, help them update!) Here is an overview of the major user-facing changes in JupyterLab 3.0. Debugger Announced earlier this year, the visual debugger is now shipped by default with JupyterLab. To use the visual debugger, you will need a kernel that supports debugging. An example of such kernel is xeus-python, the first Jupyter Kernel for Python with support for debugging. Image for post Image for post Stepping into Python code in JupyterLab with the visual debugger Check out the user documentation for more information, including a notebook based tutorial to interactively learn how to use the debugger. Table of Contents The table of contents extension now ships with JupyterLab. This makes it easy to see and navigate the structure of a document. Image for post Image for post Using the Table of Content in JupyterLab 3.0 Support for multiple display languages JupyterLab now provides the ability to set the display language of the user interface. Users will need to install the language pack as a separate Python package. Language packs are grouped in the language packs repository on GitHub, and can be installed with pip. For example, it is possible to install the language pack for Simplified Chinese using the following command: pip install jupyterlab-language-pack-zh-CN Image for post Image for post JupyterLab in Simplified Chinese Check out the user documentation to learn more about the feature and how to add new language packs. Improvements to the Simple Interface mode The Simple Interface mode (previously known as the Single-Document Mode) has been significantly updated to have a more streamlined, document-oriented feel. To make the Simple Interface mode more discoverable, there is now a switch to toggle it in the status bar. You can also toggle it from the View menu or the command palette, or use the default keyboard shortcut Ctrl/Cmd+Shift+D. Image for post Image for post Enabling and disabling the Simple Interface Mode Support for mobile has also greatly improved with a more compact layout. JupyterLab automatically switches to the Simple Interface when the window is resized down. Image for post Image for post JupyterLab switches to the Simple Interface Mode on smaller screen There is ongoing work to iterate on this concept and make the interface even more accessible on mobile devices. Install new extensions with pip and conda / mamba JupyterLab extensions can now be distributed as prebuilt extensions, which do not require a user to rebuild JupyterLab or have Node.js installed. Prebuilt extensions can be distributed as Python packages using familiar package managers such as pip, conda, and mamba. This makes installing and using extensions much faster and more convenient! Image for post Image for post Installing a new extension with pip Prebuilt extensions can be published to PyPI and conda-forge as separate packages, or bundled into existing packages with Jupyter Server extensions and Classic Notebook extensions. This helps make the ecosystem as a whole more coherent. For example, install the new ipywidgets 7.6.0 with pip or conda to automatically enable ipywidgets in both the classic Jupyter Notebook and in JupyterLab 3.0 -- no extra installation step or JupyterLab rebuild needed! Image for post Image for post Installing ipywidgets works automagically in JupyterLab 3.0! Improved development workflow for Extension Authors The new prebuilt extensions are more convenient for extension authors to develop. The TypeScript extension cookiecutter has been updated to develop prebuilt extensions by default and provides all the necessary tooling to quickly create a new extension from scratch. For more information, check out the Extension Developer Guide and the JupyterLab 2.x to 3.x Migration Guide. Extension Examples If you are looking for examples to learn how to make your own extension, make sure to check out the extension examples repository on GitHub. The examples have been updated to be compatible with JupyterLab 3.0 and provide a hands-on approach to developing extensions. Changelog This post was only an overview of what's new in 3.0! If you are looking for a more complete list of the changes including bug fixes, be sure to have a look at the changelog. Try it out on Binder JupyterLab 3.0 can easily be tested on Binder using the following link: https://mybinder.org/v2/gist/jtpio/8d392846c2f3ee6fab38cdfab5a364ec/ master?urlpath=/lab https://mybinder.org/v2/gist/jtpio/8d392846c2f3ee6fab38cdfab5a364ec/ master?urlpath=/lab Get Involved There are many ways you can participate in the JupyterLab effort. We welcome contributions from all members of the Jupyter community: * Make your own JupyterLab extensions. Please add the jupyterlab-extension topic if your extension is hosted on GitHub. You can also help existing extensions update to JupyterLab 3.0. The changelog gives an overview of changes that may affect extension maintainers. * Contribute to the development, documentation, and design of JupyterLab on GitHub. To get started with development, please see the Contributing Guide and Code of Conduct. Many issues are ideal for new contributors and are tagged as "good first issue" or " help wanted". * Connect with the community on GitHub or on the Gitter Channel. If you find a bug, have questions, or want to provide feedback, please join the conversation! And don't forget to participate in the user survey: https:// www.surveymonkey.com/r/LCB7GBF Thanks! Image for post Image for post Jupyter Blog The Jupyter Blog Follow 723 Thanks to Sylvain Corlay. * Jupyter * Jupyterlab * Jupyter Notebook * Data Science 723 claps 723 claps Jeremy Tuloup Written by Jeremy Tuloup Follow Scientific Software Engineer at QuantStack contributing to open source projects within the Jupyter ecosystem. Follow Jupyter Blog Jupyter Blog Follow The Jupyter Blog Follow Jeremy Tuloup Written by Jeremy Tuloup Follow Scientific Software Engineer at QuantStack contributing to open source projects within the Jupyter ecosystem. Jupyter Blog Jupyter Blog Follow The Jupyter Blog More From Medium A C++ backend for Vega-Lite Madhur Tandon in Jupyter Blog [1] [1] How to Deploy JupyterHub with Kubernetes on OpenStack Loic Gouarin in Jupyter Blog [1] [1] A Jupyter kernel for SQLite Mariana Meireles in Jupyter Blog [1] [1] Survey -- JupyterLab and beyond Luciano Resende in Jupyter Blog [0] [0] Congratulations, Distinguished Contributors! Afshin Darian in Jupyter Blog [1] [1] Reusable code snippets in JupyterLab Luciano Resende in Jupyter Blog [1] [1] ipygany: Jupyter into the third dimension Martin Renou in Jupyter Blog [1] [1] Tema Okun Reshama Shaikh in Jupyter Blog [1] [1] Learn more. Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more Make Medium yours. Follow the writers, publications, and topics that matter to you, and you'll see them on your homepage and in your inbox. Explore Share your thinking. If you have a story to tell, knowledge to share, or a perspective to offer -- welcome home. It's easy and free to post your thinking on any topic. Write on Medium About Help Legal Get the Medium app A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store