JupyterLab Changelog#

v4.5#

JupyterLab 4.5 includes a number of new features (described below), bug fixes, and enhancements.This release is compatible with extensions supporting JupyterLab 4.0.Extension authors are encouraged to consult theExtension Migration Guide which lists deprecations and changes to the public API.

Performance and windowing#

The default windowing mode is nowcontentVisibility which improves cell rendering andalleviates previously reported issues. The minimap can be enabled for all windowing modesand all notebooks via theSettings menu, or by toggling the minimap per notebook withtheView ->ShowMinimap option. Additional fixes improve layout containment andscrollbar behavior when working with long cells.

Notebook improvements#

Saving large notebooks is now faster and more responsive thanks to streamed uploadsand users can now open notebooks without starting a kernel, via theOpenWithcontext menu option.

File browser context menu with 'Open With → Notebook (No Kernel)' option

Markdown support has been expanded for using grid and flex based layouts and theTable of Contents has been significantly improved to better handle markdown headings,fixing issues with HTML tags, comments, and horizontal lines.

Copying and pasting cells across browser tabs is now supported and the “Line Wrap”toggle in settings now correctly applies line wrapping to cells.

Other improvements include: restored scrolling to in-notebook links, manualsaving support in collaborative mode, and improved performance and memory usagewhen streaming text outputs.

Debugger and Console improvements#

The debugger’s evaluate dialog has been replaced with an interactive console with syntaxhighlighting and code completion, and the variables panel now preserves its contents whenswitching editors. Selected breakpoints are now visually highlighted and breakpointscorrectly handle empty lines and duplicate clicks. A visual indicator is displayedwhen the debugger is paused.

Debugger panels as well as console debugging panels now reference the cell execution counthelping users relate breakpoints, call stacks and source code to the cells they originatefrom.

Debugger panels with reference to execution counts and paused indicator as well as console evaluation

For the Log Console, users can now configure the default log level via settings,as well as customise the toolbar.

Terminal enhancements#

The terminal now includes search functionality, with search highlights that adapt totheme changes.

Terminal panel showing the search bar with highlighted matches

Media and content support#

JupyterLab now includes built-in audio and video viewers, allowing users to openaudio and video files directly from within JupyterLab.

Video file opened in a JupyterLab tab

File browser enhancements#

Uploaded files can auto-open, with controls for size limits and behavior, anda newallowFileUploads setting provides control over upload permissions.

There is now a menu option for creating new Python, R, or Julia files,and a “Select All” command has also been added, also accessible via theCtrl+A keyboard shortcut.

Users can now configure file browser breadcrumbs through the settings editoroptionsbreadcrumbsLeftItems andbreadcrumbsRightItems.

File browser with the New menu expanded showing options to create Python, R, and Julia files; breadcrumb bar displayed above file list

Updates to file dialogs and navigation have addressed column spacing,preferred-directory handling and double-click behavior.

Keyboard shortcuts and commands#

Code fold and unfold commands have been added and shortcuts for these can beset in the settings editor.

The “Show Workspace Indicator” command has been added to the command paletteand the “Send Code to Console” shortcut has been restored. The previous issueinvolving editing shortcuts on Safari loosing focus, has been resolved.

Settings#

The settings editor now supports atoSkip configuration to hidespecific plugins from view.

A new setting,addExtraLineOnCellMerge, allows to remove the extra line addedwhen merging cells, which is expected behavior based on the classic notebook.

User interface and accessibility#

JupyterLab can now automatically switch between light and dark themes when“Synchronize with System Settings” is enabled.

Dialog components display buttons and checkboxes on separate lines for betterreadability, and selections in the terminal under high-contrast themes havebetter visibility.

Keyboard navigation and tab order in the status bar has also been improved.

v4.4#

JupyterLab 4.4 includes a number of new features (described below), bug fixes, and enhancements.This release is compatible with extensions supporting JupyterLab 4.0.Extension authors are encouraged to consult theExtension Migration Guide which lists deprecations and changes to the public API.

Code console improvements#

The code console prompt can now be positioned on the top, left, or right side of the console,in addition to the default bottom placement. The placement is persisted in the Prompt CellPosition setting.

The console toolbar now includes buttons to:

  • Execute code

  • Restart the kernel

  • Clear the cells

  • Switch the kernel

The option to change console prompt position is available under the three dots button in the console toolbar, which is the last toolbar button

Additional settings for console behavior have been added:

  • Clear Code Content on Execute (enabled by default) – When disabled, the code submitted for execution remains in the code editor, allowing for further edits.

  • Hide Code Input – When enabled, only the execution output is shown in the console.

  • Clear Cells on Execute – When enabled, only the last cell is displayed.

Toggling all the three new settings transforms the console into an interactive editorresembling an ephemeral notebook with a single cell.

Toggling all the three new settings transforms the console into a single cell

Settings import and export#

Settings can now be exported tooverrides.json from the Settings Editor,which can be used to pre-configure defaults in deployments or to restore settings.

The Import and Export buttons in the Settings Editor are the first two items in the toolbar panel

Workspace indicator#

An opt-in workspace indicator is displayed on the top bar (next to the menu bar). It can be enabledin the Settings → View → Appearance → Show Workspace Indicator.

The workspace indicator in the open state

Support for collaboration withoutRTC: drive#

Real time collaboration in previous versions of JupyterLab(which can be enabled by installing jupyter-collaboration package)was implemented by swapping the default JupyterLab file systemdrive to a collaborative drive with theRTC: prefix.This approach was incompatible with multiple extensions.JupyterLab 4.4 introduces the Content Providers API, which allows the next version ofjupyter-collaboration to work without changing the drive prefix.This improves compatibility with extensions that do not support arbitrary drives.

Kernel subshells support#

Kernel subshells, introduced inJEP 91,enable concurrent code execution in kernels that support them.When performing long-running computations (such as training a model), subshells enable users to:

  • Useipywidgets with updates displayed immediately

  • Monitor kernel resource usage (e.g. memory usage)

  • Invoke arbitrary commands (e.g., refine code for a subsequent cell) while maintaining live access to previously defined variables

Subshells are supported byipykernel 7 (currently in alpha).

To create a subshell, open context menu (right-click)over a notebook using a kernel supporting subshellsand select “New Subshell Console for Notebook”.A new console panel will open allowing access to variables from the main session.

The subshell console

JupyterLab can automatically create subshells for comm messages if kernels support this feature.This enables concurrent execution ofipywidgets callbacks without requiring a user action.This behavior can be changed from the settings, with options to:

  • disable that feature to not use subshells for comms

  • (default) automatically create one subshell per comm-target (e.g. one subshell for allipywidgets)

  • automatically create one subshell per comm (this can lead to issues if creating many comms)

Context menu opt-out#

The context menu, available under right mouse click in browsers, can now be disabled globallyby toggling theEnableContextMenu option available in the Command Palette,or via the JSON Settings Editor in the Application Context Menu.

Slimmer status bar#

The terminals counter no longer appears in the status bar if no terminals are open.The kernels counter can be disabled by toggling the “Show the status bar item” settingin “Running Terminals and Kernels” (code nameshowStatusBarItem).

v4.3#

JupyterLab 4.3 includes a number of new features (described below), bug fixes, and enhancements.This release is compatible with extensions supporting JupyterLab 4.0.Extension authors are recommended to consult theExtension Migration Guide which lists deprecations and changes to the public API.

Minimap#

The virtual scrollbar now acts as a minimap and exposes information on whether a cell:

  • is running/scheduled ([*]), idle ([]) or was already run (e.g.[1])

  • was modified since it was last executed (“dirty”) - orange background

  • has an output that contains an error - red background

  • is markdown/code ([]/[*]/[1] for code, nothing for markdown)

  • how much text/code it contains

The minimap view

To enable the minimap, click on the hamburger icon (≡) which appears in the notebook’s toolbar. If you do not see the hamburger icon, go to Settings → Notebook → Windowing mode and choose “full”.

Fullscreen mode#

JupyterLab now offers two ways to toggle the full screen mode from within the application:

  • using theViewAppearanceFullscreenMode menu entry

  • using a customizable shortcut, by defaultF11 (custom shortcuts are supported in Chrome, Safari and Edge)

File browser enhancements#

The file browser now:

  • supports resizing the columns and remembers the column sizes after reloading JupyterLab

  • supports uploading folders by drag-and-drop

  • supports navigation with a single click (opt-in)

  • has the file filter collapsed by default (funnel icon), increasing the space available

The file browser with resize handle and filter funnel icon

Server-side execution and collaboration#

JupyterLab 4.2 added the option for extensions to implement server-side execution, which preservesoutputs created when the browser window is closed or disconnected.The server-side execution builds on the same shared models API as the real-time collaboration (RTC).

This release includes additional work, improving boththe server-side execution and real-time collaboration (RTC) use cases:

  • the intermediary state of streaming outputs is now optimized away preventing a memory leak when using shared models with long-running computations,

  • the cell execution indicator ([*]) is now synchronized in the model, allowing collaborators to see that a cell is executed, and allowing server-side execution extensions to populate the state accordingly,

  • the issue of spurious “File Change” dialog on save was addressed by enabling the collaborative models extension to update the document hash.

You can try these features by installing extensions:

* whilejupyter-server-nbmodel is developed by maintainers of JupyterLab, as of the JupyterLab 4.3.0 release date it is not an official Project Jupyter extension.

Improved kernel and server interactions#

The previous release enabled connecting to external kernels, such as those spawned by a third-party application like Blender.In this release the kernel selector dialog was improved to also show the external kernels.

The previous release improved the awareness of the kernel/kernel specification distinction by providing both tree and list view in the kernels sidebar panel, but only the tree view featured the kernel identifiers.In this release both the list and tree view show the kernel identifier stub.

A new toolbar button was added in the kernel allowing to shut down unused kernels (kernels with no widget attached).

List view of the kernels in the sidebar, with the clear Shut Down Unused kernels button focused

The following dialog windows can now be dismissed or silenced:

  • the “Server Connection Error” dialog now has an option to dismiss it for the duration of the session,

  • the “Restart Kernel?” dialog now has an option to not ask again. This preference is persisted in settings (skipKernelRestartDialog),

The new options added in the server/session dialog windows

v4.2#

Workspaces UI#

It is now possible to switch and manageworkspaces from within JupyterLab.

A context menu opened over the sidebar with workspaces list. The menu has options to manage the workspace over which it was opened - clone, rename, reset, delete, export, and import.

Recently opened/closed files#

Thejupyterlab-recents extension was integrated into JupyterLab.

Users are now able to:

  • re-open recently used files from the main menu:

    An 'Open Recent' sub-menu in the 'File' menu allowing to re-open recently used files
  • re-open recently closed files from the sidebar:

    A new 'Recently Closed' section in the 'Running' sidebar
  • quickly jump to open tabs/recently closed files by using a new searchable modal dialog (pressCtrl+Alt+A to open the dialog, or click on the [↗] icon in the sidebar):

    A modal dialog for quickly jumping to open/closed files

Full notebook windowing mode by default#

Notebooks in thefull windowing mode only render the visible cells, significantly improving the performance of the application. One limitation offull mode is that the search function in your browser may produce false negatives; using theJupyterLab search function is recommended. To revert to the behaviour from JupyterLab 4.1, go to Settings → Settings Editor → Notebook, scroll to “Windowing mode”, and choosedefer.

Improved Shortcuts Editor#

Among the numerous improvements and bug fixes for the keyboard shortcuts editor:

  • it is now possible to remove the default shortcuts,

  • shortcuts are correctly sorted when using a language pack,

  • shortcuts with different arguments are now correctly displayed as individual entries.

A context menu opened over a keybinding in the Keyboard Shortcuts setting panel within the Settings widget

Dark high contrast theme#

A new theme, JupyterLab Dark High Contrast, which is intended to benefit users with the need for higher contrast, following the WCAG AAA accessibility standard for color contrast.To select this theme, from the menu bar, choose Settings → Theme → JupyterLab Dark High Contrast. Please provide feedback and suggestions on further improvements to this theme.

A dark high contrast theme

Keyboard shortcuts improvements#

Following feedback from users, implementation of certain shortcuts was moved from the CodeMirror editor to JupyterLab shortcut system, allowing for better integration:

  • the shortcut for deleting a line was restored toCtrl+D as in JupyterLab 3.x; the shortcut for extending (multi-cursor) selection was remapped toCtrl+Shift+D. TheCtrl+Shift+K shortcut can also be used for deleting lines for compatibility with other editors.

  • the shortcuts for toggling line comments (by defaultCtrl+/) and block comments (by defaultAlt+A) can be customized in the Shortcuts Editor, enabling users of non-US keyboards to adjust the keybinding to one optimal on their keyboard layout. Please note that the block comment only works in languages which have a dedicated block comment syntax defined in the CodeMirror language data (e.g. C, JavaScript, but not Python). The line comment shortcut can be also used to comment out multiple lines.

v4.1#

JupyterLab 4.1 includes a number of new features (described below), bug fixes, and enhancements for extension developers. This release is compatible with extensions supporting JupyterLab 4.0. Extension authors are recommended to consult theExtension Migration Guide which lists deprecations and changes to the public API.

Custom CSS#

JupyterLab now supports automatic loading of custom CSS.Themes are the recommended way for customizing the JupyterLab look and feel,while custom CSS is intended for minor personal adjustments.

To opt in, start JupyterLab with the--custom-css flag.The location of thecustom.css file is documented in the section oncustomizing the user interface.

Note

custom.css is also available in Jupyter Notebook;while similar selectors can be used for components shared between JupyterLab 4.1 and Jupyter Notebook 7.0,there was a different set of selectors in Notebook 6 and older versions.Users with the custom CSS file using the selectors from legacy Notebook versionswill need to update them and note that tutorials may refer to the selectors for the old Notebook versions.

Diagrams in Markdown#

Matching GitHub-Flavoured Markdown, JupyterLab 4.1 now supportsMermaid diagrams.To create a mermaid diagram use themermaid language specifier for a code block in a markdown cell or document, for example:

```mermaidflowchart LRA[Hard] -->|Text| B(Round)B --> C{Decision}C -->|One| D[Result 1]C -->|Two| E[Result 2]```

which renders as:

Rendered Mermaid diagram going from left to right with modern look; the diagram contains blueish square node with text Hard pointing to round square node with text Round; over the arrow connecting the two nodes there is a word Text; the second node further connects to a rhombus-shaped node with text Decision which then connects to two further nodes, Result 1 and Result 2.

Inline completer#

JupyterLab now supports completion presented as ghost text in the cell and file editors,allowing generative AI models to provide multi-line completions.The suggestions are provided by plugins implementing theIInlineCompletionProvider API;by default a single provider which uses kernel history is available.

In a code cell with `def fac` content a ghost text containing a suggestion representing further code of factorial function is shown; over the code cell there is a floating widget allowing to accept the suggestion and iterate between alternative suggestions

The suggestions can be invoked as-you-type or manually using a configurable shortcut (by defaultAlt +\).The default keyboard shortcuts are displayed in the small widget shown when hovering over the ghost suggestion:

  • Alt +End - accept suggestion

  • Alt +[ - previous suggestion

  • Alt +] - next suggestion

To enable the inline suggestions based on the kernel history, go to Settings → Inline Completer → History provider → check the “enabled” checkbox.

In addition to the built-in history suggestions,thejupyter-ai extension can providesuggestions from supported models.Thejupyter-ai integration with inline completer is available starting with thev2.10.0 release.

The Inline Completer API is still considered experimental and may be subject to changes, please share feedback!

Keyboard navigation improvements#

Numerous improvements to keyboard navigation with focus on accessibility and usability are included in this release:

  • the notebook cells now retain focus

  • the focus can now be moved beyond the active notebook

  • the toolbars can now be navigated using arrow keys

For more details, seethis post on the Jupyter Blog.

Execution history in notebook#

The code from previously executed cells can be used to populate empty cells,allowing to iterate on code from previous cells or even previous sessions(depending on how a specific kernel stores history).

To cycle between history items, pressAlt +Arrow Up andAlt +Arrow Down.

To enable execution history, go to Settings → Notebook → check the “Kernel history access” checkbox.

This feature was already available in the console in previous releases; it only works with kernels supporting execution history requests.To clear the execution history, consult the documentation of the kernel you are using (e.g., IPython/ipykernel).

Opening files from tracebacks#

Paths to code files detected in tracebacks returned by kernels on execution error are now turned into links.These links will open the corresponding file for editing, if it is in the Jupyter root directory,or they will open a read-only preview if the file is outside of the root directory and the active kernel supports the debugger.

A link to the file with definition of imported module is shown in the traceback

Error indicator in the table of contents#

When a cell fails during execution, an error indicator will be displayed by the corresponding heading,increasing awareness of the notebook state and enabling users to quickly navigate to the cell which requires attention.

Error indicator in the shape of a triangle with exclamation sign (using ⚠ UTF character) shown next to one of the headings in the table of contents panel

Plugin Manager#

Individual plugins can now be disabled or enabled from a new Plugin Manager user interface.Each extension is composed of one or more plugins, and plugins form the basis of JupyterLab itself,thus the plugin manager enables more extensive customization of the JupyterLab experience.

An example search result in the plugin extension listing

This feature is intended for advanced users and is documented in depth in thedocumentation.

Administrators may want tolock specific plugins if they are required for any reason; this will prevent users from disabling the plugins via Plugin Manager and remote API calls. The Plugin Manager itself can bedisabled using the CLI.

Virtual scrollbar for notebook in windowed mode#

The windowed notebook received an optional scrollbar delineating the active cell and selected cells.Users can jump to a specific cell.

Virtual scrollbar shown on the right side of notebook

To enable the virtual scrollbar, go to Settings → Notebook → Windowing mode, choose “full”, and click on the hamburger icon (≡) which appears in the notebook’s toolbar.

Virtual scrollbar is considered experimental, please share feedback!

Notifications#

JupyterLab 3.6 added a notification center which so far was only used for announcements and version update notifications (both opt-in).JupyterLab 4.1 adds two notifications to guide users in potentially confusing situations:

  • when a user attempts to save a read-only document, a transient notification suggesting using “save as” is displayed

  • when a user attempts to execute a cell before a slow-starting kernel has initialized, a notification is shown to indicate that the cell cannot be yet executed (this is opt-in and needs to be enabled in settings)

Full notebook windowing mode improvements#

Notebooks in thefull windowing mode only render the visible cells, significantly improving the performance of the application.Numerous improvements for the full windowing mode behaviour (such as scrolling, search, rendering, and navigation) are included in this release (see the list of issues in#15258 for details).

Note

The windowing mode is still experimental and known issues remain to be solved(#15415,#15465,#15594).In addition, a sporadic regression in cell ordering (#15610) was observed in 4.1 beta,and remains to be fixed, pending reports from users willing to test the windowing mode in JupyterLab 4.1 to help create reproducible steps that would enable fixing this issue.

Users who already enabled this mode in previous versions are advised to evaluate the benefits of fixes included in 4.1 against regressions linked above before deciding to upgrade.

Search improvements#

  • The search box will now grow automatically to accommodate longer text

  • Search in selection can now be toggled usingAlt +L and automatic search in selection can be configured in settings

  • Tooltips with shortcuts were added to the buttons in the search box to improve discoverability of the shortcuts

Miscellaneous#

  • The current theme (dark/light) can now be synced with the browser/system preference (Settings menu → Theme → Synchronise with System Settings)

  • A blue “read-only” status indicator is now displayed in the toolbar of documents which cannot be saved because their model is read-only.

  • Native support for viewing jsonl/ndjson files was added

  • Collapsing of breadcrumbs in the File Browser can be disabled in File Browser settings

  • Extension manager can now use a HTTP proxy for fetching extensions

Moved plugins#

Some internal JupyterLab plugins have been re-organized to allow for better flexibility for deployments and downstream applications like Notebook 7. This might affect users that disable specific plugins with thejupyterlabextensiondisable command or thedisabledExtensions config option.

  • Thehelp:open command is not defined in the@jupyterlab/help-extension:resources plugin anymore, but has been moved to a new@jupyterlab/help-extension:open plugin instead.

v4.0#

4.0.0 - Highlights#

Below are the major highlights in JupyterLab 4.0.0.

New text editor#

CodeMirror, the text editor used for cells and file editors, has been updated toCodeMirror 6. This brings importantaccessibility and performance improvements as well as better customization capabilities.We have also improved the editor settings. Previously, users had to customize settings separately for each type of cell, the file editor, and the console editor. Now, you can change your settings in one place. It is now easier to use the default settings for all editors and to change some settings for specific cases. For example, you can now hide line numbers only for markdown cells.

Developers can now provide editor extensions, like themes and programming language parsers, through new application registries.

New extension manager#

Starting with JupyterLab 3, extensions can be installed via Python packages(or other providers ofprebuilt extensions).

In JupyterLab 4, building on this feature, the Extension Manager now includes extensions frompypi.org.This removes the build step from installation of extension when using Extension Manager.

Developers can provide an alternative package repository to display their own set of extensions.

Improved document search#

The Search and Replace functionality has been improved with new features when searching in a notebook:

  • Highlight matches in rendered markdown cells

  • Search in selection

  • Multi-line search

  • Replace using regex capture-group references

  • Replace while preserving case

UI improvements#

Some new elements have been added or changed in the UI:

  • Rework the running kernels section

  • “Add a new cell” button at the bottom of a notebook

  • Dialog to display keyboard shortcuts as in the Classic Notebook (useCtrl +Shift +H)

  • Display the first line of cell input and outputs when they are collapsed

Accessibility improvements#

JupyterLab is not yet fully accessible. Currently, we are focused on making Notebook 7 accessible.A big part of the code is shared, though, and the following accessibility improvements are in JupyterLab 4:

  • Improved focus and keyboard navigation in the file browser

  • More ARIA roles and labels were added to UI elements

  • Main menu collapses to a hamburger menu if there is not enough space to display all items.

Performance enhancements#

JupyterLab is now faster, thanks to the following improvements:

  • CSS rules optimization: CSS selectors have been optimized to improve web browser performance when many elements are present on a page.

  • Upgrade to CodeMirror 6: Especially for notebooks with many cells, the new CodeMirror version is far more efficient than the previous version. Large notebooks should load more quickly.

  • Upgrade to MathJax 3: The mathematical equations renderer library has been been upgraded from v2 to v3 allowing faster rendering.

  • Notebook windowing: By rendering only the parts of a notebook that fit in the web browser viewport, JupyterLab is much more efficient. See an important note below.

Notebook windowingmight add side effects for example if some cell outputs are displayingiframes. Therefore it is not yet the default value. But we recommend user to switch to it and report bugs to help us polish it. To test it, youneed to set the user settingNotebook >Windowing mode tofull. If you have issues with notebook rendering, try changing back todefer ornone. (none should be used as a last resort, because it disables all optimizations.)

Real Time Collaboration#

JupyterLab 3.6 already made significant improvements to the Real Time Collaboration (RTC) feature.The feature is now in a separate repository:jupyter_collaboration.The rationale is to limit the dependencies for users who don’t need RTC. Separating RTC also helps organizations using JupyterLab that do not meet the specific requirements regarding file content management.

To enable RTC, install thejupyter-collaboration package with eitherpip orconda.

  • with pip:pipinstall"jupyter-collaboration>=1.0.0a0"

  • with conda:not yet available

RTC highlights in the standalonejupyter-collboration package, version 1.0.0, include:

  • Support for displaying multiple cursors and selections

  • Support for registration of new shared model types

For developers#

Here are the main tool updates that will benefit extension authors and developers:

  • TypeScript v5

  • Yarn v3

  • React v18

  • Lumino v2

We recommend using Node.js v18 or newer, because older versions will reach end of life in 2023 or earlier (seeNode release schedule).

To ease code migration to JupyterLab 4, developers should review themigration guide. A few existing extensions have already been migrated and can be used as examples:

4.5.0#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@andrii-i |@Ankitaupadhaya |@arjxn-py |@bollwyvl |@brichet |@bsundaram1 |@choldgraf |@cmarmo |@CrafterKolyan |@Darshan808 |@davidbrochart |@dependabot |@dnlzrgz |@domoritz |@dotnetautor |@ellisonbg |@EtiennePelletier |@fcollonval |@Frank-Steiner |@github-actions |@gjmooney |@HaudinFlorence |@hxrshxz |@ianthomas23 |@isabela-pf |@itsmevichu |@jasongrout |@JasonWeill |@jrdnbradford |@jtpio |@jupyterlab-probot |@kathatherine |@kr-2003 |@krassowski |@lumberbot-app |@mahendrapaipuri |@martinRenou |@Meriem-BenIsmail |@minrk |@MUFFANUJ |@nkn2022 |@peytondmurray |@pre-commit-ci |@ritzdevp |@robertstrauss |@RRosio |@rschroll |@shreve |@skapin |@superlevure |@SylvainCorlay |@tonyfast |@trungleduc |@williamstein |@yacchin1205 |@yukiiii04 |@zanieb |@Zsailer

4.5.0rc1#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@arjxn-py |@Frank-Steiner |@HaudinFlorence |@jasongrout |@jtpio |@jupyterlab-probot |@krassowski |@martinRenou |@Meriem-BenIsmail

4.5.0rc0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrii-i |@Ankitaupadhaya |@arjxn-py |@bollwyvl |@Darshan808 |@domoritz |@ellisonbg |@gjmooney |@jasongrout |@jtpio |@jupyterlab-probot |@krassowski |@martinRenou |@Meriem-BenIsmail |@robertstrauss |@RRosio |@skapin

4.5.0b1#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrii-i |@arjxn-py |@Darshan808 |@github-actions |@hxrshxz |@ianthomas23 |@itsmevichu |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@martinRenou |@Meriem-BenIsmail |@shreve

4.5.0b0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@github-actions |@gjmooney |@HaudinFlorence |@jtpio |@jupyterlab-probot |@krassowski |@martinRenou |@Meriem-BenIsmail

4.5.0a4#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@arjxn-py |@bollwyvl |@brichet |@choldgraf |@cmarmo |@CrafterKolyan |@Darshan808 |@davidbrochart |@github-actions |@gjmooney |@HaudinFlorence |@isabela-pf |@jrdnbradford |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@martinRenou |@Meriem-BenIsmail |@williamstein

4.5.0a3#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@Darshan808 |@fcollonval |@github-actions |@ianthomas23 |@itsmevichu |@jtpio |@jupyterlab-probot |@krassowski |@Zsailer

4.5.0a2#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@bollwyvl |@brichet |@bsundaram1 |@Darshan808 |@dependabot |@github-actions |@ianthomas23 |@itsmevichu |@jtpio |@jupyterlab-probot |@kathatherine |@kr-2003 |@krassowski |@lumberbot-app |@martinRenou |@MUFFANUJ |@nkn2022 |@pre-commit-ci |@jupyterlab |@rschroll |@zanieb

4.5.0a1#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

  • Add aselectionChanged signal to the file browser#17563 (@jtpio)

Contributors to this release#

(GitHub contributors page for this release)

@brichet |@Darshan808 |@dnlzrgz |@dotnetautor |@EtiennePelletier |@github-actions |@jtpio |@jupyterlab-probot |@krassowski |@mahendrapaipuri |@ritzdevp |@SylvainCorlay |@yacchin1205

4.5.0a0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@dependabot |@jtpio |@jupyterlab-probot |@krassowski |@minrk |@nkn2022 |@peytondmurray |@pre-commit-ci |@trungleduc |@yukiiii04

4.4.1#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

  • Bump webpack from 5.91.0 to 5.99.6 in /jupyterlab/tests/mock_packages/test-hyphens-underscore#17495 (@dependabot)

  • Bump webpack from 5.91.0 to 5.99.6 in /jupyterlab/tests/mock_packages/test_no_hyphens#17494 (@dependabot)

  • Bump @babel/runtime from 7.21.0 to 7.27.0#17491 (@dependabot)

  • Fix@jupyterlab/services import#17457 (@jtpio)

  • Remove dependencies for Python < 3.9#17453 (@bnavigator)

  • Bump nanoid from 3.3.7 to 3.3.11 in /jupyterlab/tests/mock_packages/test-hyphens-underscore#17448 (@dependabot)

Contributors to this release#

(GitHub contributors page for this release)

@achhina |@afshin |@bnavigator |@brichet |@Darshan808 |@davidbrochart |@DenisaCG |@dependabot |@jtpio |@jupyterlab-probot |@krassowski |@pre-commit-ci

4.4.0#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@Adam-D-Lewis |@afshin |@ajbozarth |@AmberArr |@andrewfulton9 |@andreytaboola |@andrii-i |@bollwyvl |@brichet |@Carreau |@claytonparnell |@cmarmo |@Darshan808 |@davidbrochart |@deephbz |@dependabot |@dlqqq |@echarles |@fcollonval |@fleming79 |@github-actions |@holzman |@hxrshxz |@ianthomas23 |@iisakkirotko |@itsmevichu |@JasonWeill |@jesuino |@joaopalmeiro |@jtpio |@jupyterlab-probot |@kellyrowland |@krassowski |@kuraga |@lumberbot-app |@maitreya2954 |@martenrichter |@martinRenou |@mgeier |@MUFFANUJ |@nkn2022 |@Nriver |@pawel99k |@pdarshane |@peytondmurray |@pre-commit-ci |@Princekumarofficial |@Rishab87 |@rpwagner |@jupyterlab |@rsaditya01 |@SamuelMarks |@SatyajitRedekar |@SylvainCorlay |@trungleduc |@Zsailer

4.4.0rc1#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@Darshan808 |@dependabot |@fcollonval |@github-actions |@jtpio |@jupyterlab-probot |@krassowski |@MUFFANUJ |@nkn2022

4.4.0rc0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@bollwyvl |@brichet |@itsmevichu |@jupyterlab-probot |@krassowski |@MUFFANUJ

4.4.0b2#

(Full Changelog)

Enhancements made#

  • AddIKernelSpecAPICLient andITerminalAPIClient, fix definitions of interfaces#17395 (@jtpio)

  • If subshells are supported by the kernel, send comm messages to subshells#17363 (@martinRenou)

Bugs fixed#

  • More specific selector for “Copy Output to Clipboard”#17413 (@jtpio)

  • Fix rendering URLs as linked in errors#17371 (@afshin)

Maintenance and upkeep improvements#

Documentation improvements#

  • If subshells are supported by the kernel, send comm messages to subshells#17363 (@martinRenou)

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@fleming79 |@ianthomas23 |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@martinRenou |@trungleduc

4.4.0b1#

(Full Changelog)

Enhancements made#

  • Add a setting to disable the context menu#17352 (@afshin)

  • AddIKernelAPIClient andISessionAPIClient as options forKernel.IManager andSession.IManager#17348 (@jtpio)

  • Fix checkbox alignment in dialog usingdisplay:flex#17343 (@SatyajitRedekar)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@andrii-i |@bollwyvl |@Darshan808 |@davidbrochart |@dependabot |@dlqqq |@fcollonval |@github-actions |@ianthomas23 |@iisakkirotko |@itsmevichu |@jesuino |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@martinRenou |@pre-commit-ci |@Princekumarofficial |@jupyterlab |@rsaditya01 |@SatyajitRedekar |@trungleduc

4.4.0b0#

(Full Changelog)

Enhancements made#

  • Speed up output rendering: add a limit on max length of protocol to linkify#17264 (@krassowski)

  • Remove spurious regex to slightly improve performance of streaming large outputs#17262 (@krassowski)

  • Add (opt-in) workspace selector, show workspace name in the title#17256 (@Darshan808)

  • Add commands to change the console prompt position to the palette#17253 (@jtpio)

  • Add more descriptive labels for fetching Jupyter news options#16848 (@Adam-D-Lewis)

  • Allow customizing theServiceManager with plugins#16794 (@jtpio)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@Adam-D-Lewis |@afshin |@andrii-i |@brichet |@Carreau |@Darshan808 |@dependabot |@dlqqq |@echarles |@fcollonval |@github-actions |@hxrshxz |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@MUFFANUJ |@pdarshane |@pre-commit-ci |@Rishab87 |@rpwagner |@jupyterlab |@Zsailer

4.4.0a3#

(Full Changelog)

Enhancements made#

  • Replace R logo with official logo#17216 (@ajbozarth)

  • Bump@codemirror/lang-python to provide match-case indentation#17189 (@deephbz)

  • Remove--subshell-console flag#17180 (@ianthomas23)

  • Fix read-only cells becoming editable on settings change#17167 (@Darshan808)

  • Hide the terminals part of the running sessions status bar item by default#16846 (@jtpio)

  • Allow changing the position of the code console prompt cell, add settings and toolbar items#13837 (@jtpio)

Bugs fixed#

  • Fix display of tooltip/title for terminal and kernel sessions statusbar item#17220 (@MUFFANUJ)

  • Fix disabling Fuzzy Filtering in the File Browser#17214 (@Darshan808)

  • Fix for inconsistent tab closure in “Close All Tabs” operation#17203 (@itsmevichu)

  • Fix “running” prompt state with server-side execution#17195 (@krassowski)

  • Increase color contrast of operators in code editor#17173 (@hxrshxz)

  • Fix emission oflastCell from notebook run actions#17156 (@pawel99k)

  • Improve contrast for ‘Add’ button in Keyboard Shortcuts UI in both dark and light theme#17153 (@hxrshxz)

  • Fixed Missing Comma in devcontainer.json to enable functional configuration#17150 (@hxrshxz)

  • Fix setter forcontentProviderId#17141 (@jtpio)

  • Ensure context menu closes when clicking outside it in the minimap#17128 (@peytondmurray)

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@ajbozarth |@brichet |@Darshan808 |@deephbz |@dependabot |@github-actions |@hxrshxz |@ianthomas23 |@itsmevichu |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@MUFFANUJ |@pawel99k |@peytondmurray |@pre-commit-ci |@SylvainCorlay

4.4.0a2#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@AmberArr |@andrewfulton9 |@andreytaboola |@bollwyvl |@Darshan808 |@davidbrochart |@dependabot |@echarles |@fcollonval |@ianthomas23 |@jtpio |@jupyterlab-probot |@krassowski |@martenrichter |@peytondmurray |@SamuelMarks

4.4.0a1#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@bollwyvl |@brichet |@claytonparnell |@cmarmo |@Darshan808 |@davidbrochart |@dependabot |@fcollonval |@itsmevichu |@JasonWeill |@joaopalmeiro |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@mgeier |@Nriver |@pre-commit-ci |@jupyterlab

4.4.0a0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrewfulton9 |@brichet |@cmarmo |@Darshan808 |@dependabot |@fcollonval |@holzman |@ianthomas23 |@itsmevichu |@JasonWeill |@jtpio |@jupyterlab-probot |@kellyrowland |@krassowski |@kuraga |@maitreya2954 |@pre-commit-ci

4.3.0#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@achhina |@afshin |@ajbozarth |@algonell |@andrewfulton9 |@andreytaboola |@andrii-i |@bollwyvl |@brichet |@ChairBorn |@cmarmo |@Darshan808 |@davidbrochart |@dependabot |@dhysdrn |@doshi-kevin |@echarles |@EdsterG |@ellisonbg |@ericsnekbytes |@fcollonval |@g547315 |@gabalafou |@gderocher |@github-actions |@guyq1997 |@HaudinFlorence |@hnben |@itsmevichu |@j264415 |@JasonWeill |@jgoodson |@joaopalmeiro |@jtpio |@jupyterlab-probot |@kaushalaaditya99 |@krassowski |@krishanbhasin-px |@lumberbot-app |@mahendrapaipuri |@maitreya2954 |@Mehak261124 |@mjpsyapse |@Nagidrop |@Nazeeh21 |@nekomeowww |@NexVeridian |@pauldruce |@pre-commit-ci |@Renegade334 |@Rob-P-Smith |@jupyterlab |@sanskriti2005 |@srdas |@SylvainCorlay |@tonyfast |@welcome |@williamstein |@Wzixiao

4.3.0rc1#

(Full Changelog)

Enhancements made#

  • Standardize the button role and label for single, dismissal buttons in dialogs#16622 (@joaopalmeiro)

Bugs fixed#

Maintenance and upkeep improvements#

  • Ignorehttps://code.visualstudio.com incheck-links#16878 (@jtpio)

  • Fix job updating snapshots when triggered by comment on first-time contributor PR#16872 (@krassowski)

  • Bump markdown-to-jsx from 7.3.2 to 7.5.0#16868 (@dependabot)

  • Update to Playwright 1.48.0#16854 (@jtpio)

  • Require newer handlebars version (^4.7.7) to silence false positive CVE notifications#16740 (@mjpsyapse)

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@Darshan808 |@dependabot |@github-actions |@joaopalmeiro |@jtpio |@jupyterlab-probot |@kaushalaaditya99 |@krassowski |@mjpsyapse |@Nagidrop

4.3.0rc0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@algonell |@ChairBorn |@github-actions |@HaudinFlorence |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@nekomeowww |@pre-commit-ci

4.3.0b3#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@dependabot |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski

4.3.0b2#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

  • Fix typo in theIPropertyInspectorProvider plugin description#16797 (@jtpio)

  • Replace link to accessibility project with a link to accessibility issues#16787 (@jtpio)

  • Remove Python 2 from documentation#16771 (@JasonWeill)

  • Fix compatibility with server-side execution extensions#16764 (@krassowski)

  • Document mandatory steps before running JupyterLab in dev mode#16761 (@cmarmo)

Contributors to this release#

(GitHub contributors page for this release)

@andrewfulton9 |@bollwyvl |@cmarmo |@Darshan808 |@davidbrochart |@dependabot |@fcollonval |@github-actions |@JasonWeill |@joaopalmeiro |@jtpio |@jupyterlab-probot |@krassowski

4.3.0b1#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@cmarmo |@davidbrochart |@dependabot |@itsmevichu |@JasonWeill |@joaopalmeiro |@jtpio |@jupyterlab-probot |@krassowski |@maitreya2954

4.3.0b0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@andrii-i |@brichet |@davidbrochart |@dependabot |@dhysdrn |@EdsterG |@fcollonval |@gabalafou |@gderocher |@github-actions |@HaudinFlorence |@itsmevichu |@JasonWeill |@joaopalmeiro |@jtpio |@jupyterlab-probot |@krassowski |@Mehak261124 |@Nazeeh21 |@NexVeridian |@pauldruce |@pre-commit-ci |@Renegade334 |@Rob-P-Smith |@jupyterlab |@tonyfast |@welcome |@williamstein

4.3.0a2#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@dependabot |@fcollonval |@g547315 |@gabalafou |@github-actions |@j264415 |@JasonWeill |@joaopalmeiro |@jtpio |@jupyterlab-probot |@krassowski |@NexVeridian |@pre-commit-ci |@welcome

4.3.0a1#

(Full Changelog)

New features added#

Enhancements made#

  • DefineICodeCellModel.executionState, deprecatesetPrompt()#16431 (@krassowski)

  • Implement viewport tracking and reactive rendering in scrollbar#16392 (@krassowski)

  • Use lazy loading for HTML/PDF files, and help tabs#16387 (@hnben)

  • Add option to dismiss “Server Connection Error” dialog for the duration of the session#16269 (@jupyterlab)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@achhina |@afshin |@brichet |@Darshan808 |@davidbrochart |@dependabot |@echarles |@ellisonbg |@fcollonval |@github-actions |@HaudinFlorence |@hnben |@itsmevichu |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@krishanbhasin-px |@lumberbot-app |@mahendrapaipuri |@Mehak261124 |@pre-commit-ci |@jupyterlab |@sanskriti2005 |@srdas |@welcome

4.3.0a0#

(Full Changelog)

Enhancements made#

Bugs fixed#

  • Fix execution in console in terminal interaction mode#16348 (@krassowski)

  • Fix workspace context menu incorrectly showing up in other sidebar sections#16346 (@krassowski)

  • FixShift+Tab contextual help inspector tooltip regression#16343 (@krassowski)

  • Reactive toolbar: avoid simultaneous calls to _onResize()#16335 (@brichet)

  • Upgrade CodeMirror dependencies#16306 (@krassowski)

  • Resetting a shortcut does not restore and enable the default if it was modified#16304 (@itsmevichu)

  • Allow to invoke inline completer anywhere (not only at the end of line)#16298 (@ajbozarth)

  • Search and replace with substring in markdown and raw cells#16293 (@JasonWeill)

  • Wait for the cell toolbar items to be rendered the first time before looking for overlap#16291 (@brichet)

  • Add lowercase proxy vars and make priority consistent with other tools#16287 (@jgoodson)

Maintenance and upkeep improvements#

Documentation improvements#

  • Run Python tests on MacOS with Python 12, replacecanvas withjest-canvas-mock#16314 (@krassowski)

Contributors to this release#

(GitHub contributors page for this release)

@ajbozarth |@brichet |@dependabot |@fcollonval |@github-actions |@itsmevichu |@JasonWeill |@jgoodson |@jtpio |@jupyterlab-probot |@krassowski |@Rob-P-Smith |@welcome |@Wzixiao

4.2.0#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@davidbrochart |@dependabot |@fcollonval |@FoSuCloud |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@welcome

4.2.0rc0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@Alanhou1222 |@divyansshhh |@github-actions |@itsmevichu |@JasonWeill |@jtpio |@jupyterlab-probot |@kolibril13 |@krassowski |@NexVeridian |@Rob-P-Smith |@sawickid |@welcome

4.2.0b3#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@dependabot |@fcollonval |@jupyterlab-probot |@krassowski

4.2.0b2#

(Full Changelog)

Enhancements made#

  • Use toolkit search input for all search inputs: filebrowser, extension manager, debugger kernel source#16046 (@Mehak261124)

  • Much smaller “Last Modified” column, date#15948 (@JasonWeill)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@AnastasiaSliusar |@andrii-i |@bollwyvl |@brichet |@dependabot |@fcollonval |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@Mehak261124 |@milinm |@Tanmay-Deshmukh |@welcome

4.2.0b1#

(Full Changelog)

New features added#

  • Dark High Contrast Theme for JupyterLab with Improved Sidebar Focus Indication#15623 (@m158261)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

  • Mention JupyterLab Desktop in the installation section#16100 (@krassowski)

  • Dark High Contrast Theme for JupyterLab with Improved Sidebar Focus Indication#15623 (@m158261)

Contributors to this release#

(GitHub contributors page for this release)

@Alanhou1222 |@brichet |@davidbrochart |@dependabot |@e218736 |@echarles |@fcollonval |@FoSuCloud |@gabalafou |@github-actions |@itsmevichu |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@m158261 |@pre-commit-ci |@Susilkessav |@welcome

4.2.0b0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@fcollonval |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@UntitledError-09 |@welcome

4.2.0a2#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@brichet |@dependabot |@erkin98 |@fcollonval |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@mdietz94 |@Mehak261124 |@minrk |@jupyterlab |@trungleduc |@welcome

4.2.0a1#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrii-i |@blink1073 |@brichet |@dependabot |@diyoyo |@fcollonval |@FoSuCloud |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@linlol |@welcome

4.2.0a0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@AllanChain |@brichet |@dependabot |@ericsnekbytes |@fcollonval |@FoSuCloud |@github-actions |@HaudinFlorence |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@linlol |@lumberbot-app |@trungleduc |@welcome

4.1.2#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@FoSuCloud |@github-actions |@JasonWeill |@jupyterlab-probot |@kiliansinger |@krassowski |@lumberbot-app |@nluetts |@trungleduc |@welcome

4.1.1#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@davidbrochart |@dhml |@fcollonval |@g547315 |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@minrk |@pre-commit-ci |@welcome

4.1.0#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

API and Breaking Changes#

Deprecated features#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@akx |@alden-ilao |@AllanChain |@andrewfulton9 |@andrii-i |@ashna1jain |@bikash30851 |@blink1073 |@bollwyvl |@brichet |@brijsiyag |@coriegulik |@davidbrochart |@DcWire |@Deepali1211 |@DenisaCG |@dependabot |@dharmaquark |@divyansshhh |@dolevf |@DonJayamanne |@echarles |@eliaslma |@emmanuel-ferdman |@ericsnekbytes |@fcollonval |@firai |@FoSuCloud |@g547315 |@gabalafou |@GabrielaVives |@github-actions |@HaudinFlorence |@hbcarlos |@holzman |@isabela-pf |@j264415 |@jans-code |@JasonWeill |@jtpio |@jupyterlab-bot |@jupyterlab-probot |@KiranmaiKalla |@krassowski |@LJMP |@lumberbot-app |@m158261 |@mctoohey |@mdengler |@MFA-X-AI |@misterfads |@mlucool |@mmichilot |@nbowditch-einblick |@nishikantparmariam |@paolocarinci |@parmentelat |@pauky |@paulkim3151 |@phil-zxx |@pre-commit-ci |@Rmarieta |@jupyterlab |@Sarthug99 |@sinistersnare |@skyetim |@smacke |@SylvainCorlay |@t03857785 |@tibdex |@timkpaine |@tonyfast |@trungleduc |@welcome |@Wh1isper |@yuvipanda

4.1.0rc1#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@FoSuCloud |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@Sarthug99 |@welcome

4.1.0rc0#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

  • Mention jupyter-ai pre-release in inline completer changelog section#15669 (@krassowski)

Contributors to this release#

(GitHub contributors page for this release)

@brichet |@dependabot |@fcollonval |@FoSuCloud |@github-actions |@j264415 |@JasonWeill |@jupyterlab-bot |@jupyterlab-probot |@KiranmaiKalla |@krassowski |@welcome |@Wh1isper

4.1.0b2#

(Full Changelog)

Security fixes#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@github-actions |@jupyterlab-probot |@krassowski

4.1.0b1#

(Full Changelog)

Enhancements made#

  • Show toast notification for running code cell while kernel initializing#15421 (@misterfads)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@alden-ilao |@andrewfulton9 |@bollwyvl |@brichet |@dependabot |@fcollonval |@github-actions |@j264415 |@jtpio |@jupyterlab-probot |@krassowski |@MFA-X-AI |@misterfads |@pre-commit-ci |@welcome |@Wh1isper

4.1.0b0#

(Full Changelog)

New features added#

  • Add virtual scrollbar component to windowed lists.#15533 (@afshin)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Deprecated features#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@akx |@ashna1jain |@brichet |@DcWire |@dependabot |@DonJayamanne |@fcollonval |@g547315 |@gabalafou |@GabrielaVives |@github-actions |@j264415 |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@m158261 |@mmichilot |@parmentelat |@pre-commit-ci |@t03857785 |@tonyfast |@welcome

4.1.0a4#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrewfulton9 |@blink1073 |@brichet |@fcollonval |@gabalafou |@github-actions |@j264415 |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@m158261 |@mdengler |@parmentelat |@jupyterlab |@tonyfast |@welcome

4.1.0a3#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrewfulton9 |@andrii-i |@blink1073 |@bollwyvl |@brichet |@DenisaCG |@dependabot |@dharmaquark |@divyansshhh |@dolevf |@eliaslma |@ericsnekbytes |@fcollonval |@firai |@github-actions |@j264415 |@jtpio |@jupyterlab-probot |@krassowski |@LJMP |@lumberbot-app |@m158261 |@mmichilot |@nbowditch-einblick |@nishikantparmariam |@parmentelat |@pauky |@paulkim3151 |@pre-commit-ci |@sinistersnare |@skyetim |@tibdex |@tonyfast |@trungleduc |@welcome

4.1.0a2#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

API and Breaking Changes#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@andrewfulton9 |@bikash30851 |@brichet |@Deepali1211 |@dependabot |@echarles |@fcollonval |@gabalafou |@github-actions |@HaudinFlorence |@hbcarlos |@isabela-pf |@jans-code |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@m158261 |@parmentelat |@pre-commit-ci |@Rmarieta |@smacke |@trungleduc |@welcome

4.1.0a1#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@AllanChain |@andrii-i |@bollwyvl |@brichet |@brijsiyag |@coriegulik |@davidbrochart |@DenisaCG |@dependabot |@echarles |@emmanuel-ferdman |@ericsnekbytes |@fcollonval |@FoSuCloud |@g547315 |@gabalafou |@GabrielaVives |@github-actions |@hbcarlos |@holzman |@isabela-pf |@j264415 |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@lumberbot-app |@mctoohey |@pauky |@pre-commit-ci |@skyetim |@SylvainCorlay |@timkpaine |@tonyfast |@trungleduc |@welcome |@yuvipanda

4.0.2#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@dependabot |@ericsnekbytes |@fcollonval |@GabrielaVives |@github-actions |@jtpio |@jupyterlab-probot |@krassowski |@pre-commit-ci |@tonyfast

4.0.1#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@brijsiyag |@c3Vu |@dependabot |@fcollonval |@github-actions |@j264415 |@JasonWeill |@JeanLescutMuller |@jtpio |@jupyterlab-probot |@krassowski |@nishikantparmariam |@t03857785 |@tpatel |@tuncbkose |@welcome

4.0.0#

(Full Changelog)

JupyterLab 4 is released! :tada:

Check out the new features, improvements and bug fixes: https://jupyterlab.readthedocs.io/en/latest/getting_started/changelog.html#v4-0

For extension authors, there is a migration guide available to help you migrate your extensions to JupyterLab 4: https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#jupyterlab-3-x-to-4-x


For reference, below are the changed sincev4.0.0rc1:

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@andrii-i |@fcollonval |@github-actions |@HaudinFlorence |@jupyterlab-probot |@krassowski |@welcome

4.0.0rc1#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@andrewfulton9 |@andrii-i |@bikash30851 |@dependabot |@fcollonval |@gabalafou |@github-actions |@JaSpa |@jtpio |@jupyterlab-probot |@krassowski |@meeseeksdev |@pre-commit-ci |@welcome

4.0.0rc0#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

API and Breaking Changes#

Contributors to this release#

(GitHub contributors page for this release)

@3coins |@a3626a |@aditya211935 |@afshin |@agoose77 |@ajbozarth |@akhmerov |@alec-kr |@Alexboiboi |@andrii-i |@athornton |@blink1073 |@bollwyvl |@brichet |@c00kie123 |@cccs-nik |@chbrandt |@ChristopherDavisUCI |@damiend97 |@davidbrochart |@dependabot |@dlqqq |@dmonad |@kamalika0363 |@domoritz |@echarles |@ellisonbg |@ericsnekbytes |@fcollonval |@firai |@FoSuCloud |@fperez |@frenzymadness |@frivas-at-navteca |@gabalafou |@GabrielaVives |@github-actions |@HaudinFlorence |@hbcarlos |@hsuanxyz |@hugetim |@isabela-pf |@jasongrout |@JasonWeill |@jmk89 |@joaopalmeiro |@JohanMabille |@jtpio |@jupyterlab-probot |@kenyaachon |@kostyafarber |@krassowski |@kulsoomzahra |@liliyao2022 |@malemburg |@markgreene74 |@marthacryan |@martinRenou |@matthewturk |@mctoohey |@meeseeksdev |@meeseeksmachine |@mgcth |@minrk |@mlucool |@NikolayXHD |@oscar6echo |@peytondmurray |@pre-commit-ci |@psychemedia |@RobbyPratl |@jupyterlab |@rursprung |@siddartha-10 |@steff456 |@SylvainCorlay |@telamonian |@thetorpedodog |@thomasaarholt |@tonyfast |@trallard |@trungleduc |@vidartf |@vthinkxie |@welcome |@yangql176 |@yanmulin |@yczhangsjtu |@yumyumqing |@yuvipanda |@zrottman |@Zsailer

v3.6#

3.6.3#

(Full Changelog)

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrii-i |@bollwyvl |@brichet |@damiend97 |@fcollonval |@github-actions |@JasonWeill |@jtpio |@jupyterlab-probot |@krassowski |@welcome

3.6.2#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrii-i |@blink1073 |@bollwyvl |@brichet |@bt- |@dlqqq |@domoritz |@echarles |@fcollonval |@fperez |@gabalafou |@GabrielaVives |@github-actions |@goanpeca |@HaudinFlorence |@hbcarlos |@ianhi |@jasongrout |@JasonWeill |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@meeseeksdev |@meeseeksmachine |@mlucool |@psychemedia |@telamonian |@tonyfast |@vidartf |@welcome

3.6.1#

(Full Changelog)

Bugs fixed#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@fcollonval |@jupyterlab-probot |@meeseeksmachine

3.6.0#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

API and Breaking Changes#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@andrii-i |@blink1073 |@bollwyvl |@brichet |@Carreau |@davidbrochart |@echarles |@ellisonbg |@ericsnekbytes |@fcollonval |@fperez |@github-actions |@HaudinFlorence |@hbcarlos |@jasongrout |@JasonWeill |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@martinRenou |@meeseeksdev |@meeseeksmachine |@psychemedia |@SylvainCorlay |@trungleduc |@uenot |@vidartf |@welcome

v3.5#

3.5.0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)@Carreau |@davidbrochart |@ellisonbg |@fcollonval |@hbcarlos |@jasongrout |@jtpio |@jupyterlab-probot |@krassowski |@meeseeksdev |@meeseeksmachine |@SylvainCorlay |@trungleduc |@welcome

v3.4#

3.4.7#

(Full Changelog)

Enhancements made#

Bugs fixed#

Contributors to this release#

(GitHub contributors page for this release)

@agoose77 |@blink1073 |@ellisonbg |@fcollonval |@gabalafou |@github-actions |@jtpio |@jupyterlab-probot |@krassowski |@meeseeksmachine |@welcome

3.4.6#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@ajbozarth |@athornton |@blink1073 |@ellisonbg |@fcollonval |@goanpeca |@ian-r-rose |@isabela-pf |@jasongrout |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@JasonWeill |@krassowski |@KrishnaKumarHariprasannan |@malemburg |@manfromjupyter |@meeseeksdev |@meeseeksmachine |@mlucool |@saulshanabrook |@telamonian |@tgeorgeux |@trallard |@VersBersh |@vidartf |@welcome

3.4.5#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@agoose77 |@blink1073 |@davidbrochart |@fcollonval |@jasongrout |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@martinRenou |@meeseeksdev |@meeseeksmachine |@ryanlovett |@SylvainCorlay |@telamonian |@trungleduc |@welcome

3.4.4#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@aiqc |@davidbrochart |@dlqqq |@dmonad |@echarles |@ellisonbg |@fcollonval |@github-actions |@goanpeca |@hbcarlos |@jasongrout |@JohanMabille |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@JasonWeill |@krassowski |@martinRenou |@meeseeksdev |@meeseeksmachine |@siddartha-10 |@SylvainCorlay |@welcome |@williamstein

3.4.3#

(Full Changelog)

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

  • Add more explanation for internationalization (translation python package)#12635 (@a3626a)

  • Add “Open in Simple Mode” contextMenu option#12577 (@fcollonval)

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@blink1073 |@bollwyvl |@davidbrochart |@dmonad |@echarles |@ellisonbg |@fcollonval |@github-actions |@hbcarlos |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@meeseeksdev |@meeseeksmachine |@welcome

3.4.2#

(Full Changelog)

Bugs fixed#

  • Building extensions fail if not using latest patch#12571 (@ajbozarth)

  • fixed shouldOverwrite is never called when rename target exists#12543 (@ephes)

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@fcollonval |@jtpio |@jupyterlab-probot |@karlaspuldaro |@meeseeksmachine |@welcome

3.4.1#

(Full Changelog)

Enhancements made#

  • Setting to use the advanced setting editor for the settings#12466 (@echarles)

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@ajbozarth |@echarles |@fcollonval |@github-actions |@jtpio |@jupyterlab-probot |@meeseeksmachine |@welcome

3.4.0rc0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Deprecated features#

Contributors to this release#

(GitHub contributors page for this release)

@bollwyvl |@davidbrochart |@echarles |@fcollonval |@gabalafou |@github-actions |@jtpio |@jupyterlab-probot |@JasonWeill |@krassowski |@meeseeksdev |@meeseeksmachine |@welcome

3.4.0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Deprecated features#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@bollwyvl |@davidbrochart |@echarles |@fcollonval |@gabalafou |@github-actions |@jtpio |@jupyterlab-probot |@JasonWeill |@krassowski |@meeseeksdev |@meeseeksmachine |@welcome

v3.3#

3.3.4#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@aiqc |@blink1073 |@echarles |@fcollonval |@github-actions |@jasongrout |@jtpio |@jupyterlab-probot |@JasonWeill |@krassowski |@meeseeksdev |@meeseeksmachine |@welcome

3.3.3#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@afshin |@aiqc |@ajbozarth |@blink1073 |@bollwyvl |@damianavila |@davidbrochart |@echarles |@fcollonval |@github-actions |@hbcarlos |@isabela-pf |@jtpio |@jupyterlab-probot |@JasonWeill |@krassowski |@marthacryan |@martinRenou |@meeseeksdev |@meeseeksmachine |@mlucool |@rccern |@welcome

3.3.2#

(Full Changelog)

Bugs fixed#

Documentation improvements#

  • Add note aboutasync,await andPromises in the extension tutorial#12199 (@jtpio)

Contributors to this release#

(GitHub contributors page for this release)

@fcollonval |@github-actions |@jtpio |@jupyterlab-probot |@meeseeksmachine

3.3.1#

(Full Changelog)

Enhancements made#

Bugs fixed#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@davidbrochart |@echarles |@ellisonbg |@fcollonval |@github-actions |@jasongrout |@jtpio |@jupyterlab-probot |@JasonWeill |@krassowski |@martinRenou |@meeseeksmachine |@welcome

3.3.0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

API and Breaking Changes#

Other merged PRs#

Contributors to this release#

(GitHub contributors page for this release)

@agoose77 |@andrewfulton9 |@baggiponte |@blink1073 |@bollwyvl |@Carreau |@davidbrochart |@dmonad |@echarles |@ellisonbg |@ErikBjare |@fcollonval |@github-actions |@hbcarlos |@isabela-pf |@jasongrout |@JohanMabille |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@JasonWeill |@krassowski |@marthacryan |@meeseeksdev |@meeseeksmachine |@mlucool |@schmidi314 |@SylvainCorlay |@Sync271 |@telamonian |@thesinepainter |@trungleduc |@welcome |@yuvipanda |@Zsailer

v3.2#

3.2.9#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@andrewfulton9 |@blink1073 |@bollwyvl |@echarles |@fcollonval |@github-actions |@hbcarlos |@isabela-pf |@jasongrout |@JohanMabille |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@marthacryan |@meeseeksdev |@meeseeksmachine |@mlucool |@welcome |@yuvipanda |@Zsailer

3.2.8#

(Full Changelog)

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@github-actions |@hbcarlos |@jtpio |@jupyterlab-probot |@meeseeksdev |@meeseeksmachine

3.2.7#

No merged PRs

3.2.6#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Other merged PRs#

Contributors to this release#

(GitHub contributors page for this release)

@andrewfulton9 |@bollwyvl |@davidbrochart |@echarles |@ellisonbg |@fcollonval |@github-actions |@hbcarlos |@jasongrout |@JohanMabille |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@meeseeksdev |@meeseeksmachine |@schmidi314 |@TheOtherRealm |@thesinepainter |@welcome

3.2.5#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@bollwyvl |@dmonad |@echarles |@ellisonbg |@fcollonval |@github-actions |@hbcarlos |@jasongrout |@jess-x |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@JasonWeill |@krassowski |@meeseeksdev |@meeseeksmachine |@trungleduc |@welcome

3.2.4#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@fcollonval |@github-actions |@isabela-pf |@jasongrout |@jtpio |@jupyterlab-probot |@krassowski |@meeseeksdev |@meeseeksmachine |@welcome |@williamstein

3.2.3#

(Full Changelog)

Enhancements made#

Bugs fixed#

  • Handle relative paths tothemePath andschemaDir#11427 (@jtpio)

  • Backport PR #11398 on branch 3.2.x (fix #11377 & bump Yjs dependencies & fix modeldb overwriting yjs content)#11408 (@dmonad)

Maintenance and upkeep improvements#

  • Backport PR #11420 on branch 3.2.x (Makes ILabShell optional in toc extension)#11421 (@JasonWeill)

Contributors to this release#

(GitHub contributors page for this release)

@dmonad |@fcollonval |@github-actions |@jasongrout |@jtpio |@jupyterlab-probot |@JasonWeill |@krassowski |@meeseeksdev |@meeseeksmachine

3.2.2#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@davidbrochart |@ellisonbg |@fcollonval |@github-actions |@jasongrout |@jess-x |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@meeseeksmachine |@trungleduc |@welcome |@williamstein |@Zsailer

3.2.1#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@3coins |@blink1073 |@ellisonbg |@fcollonval |@github-actions |@jasongrout |@jtpio |@jupyterlab-probot |@meeseeksmachine |@welcome

3.2.0#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@3coins |@achimgaedke |@blink1073 |@echarles |@ellisonbg |@fcollonval |@github-actions |@goanpeca |@hbcarlos |@isabela-pf |@jasongrout |@jess-x |@joelostblom |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@loichuder |@meeseeksdev |@meeseeksmachine |@SylvainCorlay |@trungleduc |@welcome

v3.1#

3.1.19#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@agoose77 |@andrewfulton9 |@baggiponte |@blink1073 |@bollwyvl |@Carreau |@davidbrochart |@dmonad |@echarles |@ellisonbg |@fcollonval |@github-actions |@hbcarlos |@isabela-pf |@jasongrout |@jess-x |@JohanMabille |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@JasonWeill |@krassowski |@meeseeksdev |@meeseeksmachine |@schmidi314 |@SylvainCorlay |@telamonian |@thesinepainter |@trungleduc |@welcome |@williamstein |@yuvipanda |@Zsailer

3.1.18#

(Full Changelog)

Bugs fixed#

  • Backport PR #11249 on branch 3.1.x (Fix Webpack crypto handling)#11252 (@blink1073)

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@github-actions |@jupyterlab-probot

3.1.17#

(Full Changelog)

Bugs fixed#

Contributors to this release#

(GitHub contributors page for this release)

@jupyterlab-probot |@meeseeksmachine

3.1.16#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@echarles |@ellisonbg |@fcollonval |@github-actions |@goanpeca |@hbcarlos |@isabela-pf |@jasongrout |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@loichuder |@meeseeksdev |@meeseeksmachine |@SylvainCorlay |@welcome

3.1.15#

(Skipped due to errors in release process)

3.1.14#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@echarles |@github-actions |@goanpeca |@jess-x |@jupyterlab-probot |@krassowski |@meeseeksdev |@meeseeksmachine |@welcome

3.1.13#

(Full Changelog)

Enhancements made#

  • Fetch translations via theServerConnection.ISettings#11091 (@jtpio)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

  • Add a note on the Jupyter Releaser in the extension tutorial#11085 (@jtpio)

Other merged PRs#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@fcollonval |@github-actions |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@meeseeksmachine |@Mithil467 |@trungleduc |@welcome

3.1.12#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Other merged PRs#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@github-actions |@jasongrout |@jtpio |@jupyterlab-dev-mode |@jupyterlab-probot |@krassowski |@meeseeksmachine |@Mithil467

3.1.11#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@echarles |@fcollonval |@jtpio |@jupyterlab-dev-mode |@meeseeksmachine

3.1.10#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

  • Backport #10893 on branch 3.1.x (Add internationalization documentation)#10974 (@fcollonval)

  • Fix formatting of a link in the changelog#10945 (@jtpio)

Contributors to this release#

(GitHub contributors page for this release)

@agoose77 |@baggiponte |@blink1073 |@echarles |@ellisonbg |@fcollonval |@goanpeca |@jasongrout |@jtpio |@jupyterlab-dev-mode |@krassowski |@mbektas |@meeseeksdev |@meeseeksmachine |@SarunasAzna |@welcome

3.1.9#

(Full Changelog)

Bugs fixed#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@jupyterlab-dev-mode |@meeseeksdev |@meeseeksmachine |@welcome

3.1.8#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@fcollonval |@jupyterlab-dev-mode |@krassowski |@meeseeksdev |@meeseeksmachine

3.1.7#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@3coins |@afshin |@blink1073 |@fcollonval |@goanpeca |@jasongrout |@jupyterlab-dev-mode |@krassowski |@meeseeksmachine |@welcome

3.1.6#

(Full Changelog)

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@jupyterlab-dev-mode |@krassowski |@meeseeksmachine

3.1.5#

(Full Changelog)

Bugs fixed#

Contributors to this release#

(GitHub contributors page for this release)

@echarles |@jupyterlab-dev-mode |@meeseeksmachine |@welcome

3.1.2#

(Full Changelog)

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Contributors to this release#

(GitHub contributors page for this release)

@AnudeepGunukula |@blink1073 |@ellisonbg |@fcollonval |@goanpeca |@jasongrout |@jupyterlab-dev-mode |@krassowski |@meeseeksmachine |@welcome

3.1.1#

(Full Changelog)

Bugs fixed#

  • Use appName in page title when restoring workspaces (vs 3.1.x)#10724 (@bollwyvl)

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@blink1073 |@bollwyvl |@goanpeca |@hbcarlos |@jtpio |@jupyterlab-dev-mode |@meeseeksmachine |@welcome

3.1.0#

(Full Changelog)

User-facing changes#

  • From JupyterLab 3.1, file documents and notebooks have collaborativeediting using theYjs shared editing framework.Editors are not collaborative by default; to activate it, start JupyterLabwith the--collaborative flag. See full documentation oncollaboration.

  • The undo/redo history in the notebook is now document-wide (tracking changes across all cells); the future verisions will enable restoring the previous behaviour of per-cell undo/redo.

  • Table of Contents received multiple new features and settings described in theuser documentation.

  • The debugger received many improvements, including basic support for evaluating code at a breakpoint, and for variable inspection.

  • The closing bracket is no longer automatically added by default; the old behaviour can be re-enabled from the menu bar (Settings ->AutoCloseBrackets) or from the Advanced Settings Editor.

  • A new visual indicator was introduced to highlight cells in which the code changed in the editor since last execution:A GIF of the visual indicator showing up after editing a cell.

  • Many other new features were added as documented below.

New features added#

Enhancements made#

Bugs fixed#

Maintenance and upkeep improvements#

Documentation improvements#

Contributors to this release#

(GitHub contributors page for this release)

@0618 |@achandak123 |@afonit |@afshin |@AgoCan |@agoose77 |@ainzzorl |@aiqc |@ajbozarth |@akx |@andrewfulton9 |@Ashish-15s |@blink1073 |@bollwyvl |@bsyouness |@cameron-toy |@consideRatio |@darcsoel |@davidbrochart |@dge8 |@dharmaquark |@dhirschfeld |@DianeHu |@dmonad |@echarles |@ellisonbg |@fasiha |@fcollonval |@flying-sheep |@fperez |@gereleth |@goanpeca |@Guillaume-Garrigos |@hbcarlos |@ian-r-rose |@isabela-pf |@jahn96 |@janjagusch |@jasongrout |@jayqi |@jess-x |@jhamet93 |@jluttine |@jochym |@JohanMabille |@jtpio |@jupyterlab-dev-mode |@krassowska |@krassowski |@legendb317 |@loichuder |@maartenbreddels |@manavendrasen |@manfromjupyter |@mariobuikhuizen |@marthacryan |@martinRenou |@mbektas |@meeseeksdev |@meeseeksmachine |@mellesies |@mgeier |@mlucool |@mnowacki-b |@mwakaba2 |@NPetz |@ognjenjevremovic |@ohrely |@palewire |@paravatha |@partev |@plan-do-break-fix |@robertpyke |@RodyLipson |@sarahspak |@saulshanabrook |@shngt |@skyetim |@smacke |@stadlerb |@SylvainCorlay |@telamonian |@tonyfast |@trallard |@vidartf |@vkaidalov-rft |@welcome |@yasmin-bb |@yuvipanda

v3.0#

See theJupyterLab3.0milestone on GitHub for the full list of pull requests and issuesclosed.

v3.0.16#

(Full Changelog)

Maintenance and upkeep improvements#

v3.0.15#

(Full Changelog)

Enhancements made#

Maintenance and upkeep improvements#

  • [3.0.x] Remove Dependency on Jupyter Packaging#10218 (@jtpio)

Documentation improvements#

Other merged PRs#

v3.0.14#

  • Clean up browser check#10080

  • Loosen pin on jupyter-packaging#9998

v3.0.13#

  • Add cell id per notebook format 4.5 (#10018)

  • Fix label for “Create Console for Editor” (#9794)

  • Use blobs to set the svg source of an image in the image viewer (#10029)

  • [Fix] Copy shareable link command (#10021)

  • Clarify where the overrides.json file should be in the docs (#9996)

  • Do not make unnecessary npm registry requests (#9974)

  • Fix escaping of urls and paths (#9978)

v3.0.12#

  • Fix support for Safari by changing regular expression for Table of Contents (#9962)

  • Fix DocRegistry FileType pattern matching (#9958)

v3.0.11#

  • Fix: use process/browser module as real polyfill (#9636)

  • Fix Table of Contents extension markdown bug for HTML comments (#9938)

  • Make Table of Contents extension not rewrite all notebook headers (#9932)

v3.0.10#

  • Fix watch mode for external extensions(#9915)

  • Bug fix for extension watch mode behavior(#9889,#9861)

v3.0.9#

  • Remove the previousfile_to_run logic.(#9848)

  • Enable Caching in Production Minimized Mode.(#9834)

  • Remove the auto-switch to “mobile” mode, and behavior switches associatedwith mobile mode.(#9832)

  • Fix the display of breakpoints on restore.(#9828)

  • Update CI script timeouts.(#9825)

  • Fix mimerender test example and test in CI.(#9820)

v3.0.8#

  • @jupyterlab/rendermime: upgradedmarked dep pastvulnerability.(#9809)

  • Fix Services Tests.(#9806)

  • Enable jupyter labextension build/watch to work for customjupyterlab distributions.(#9697)

  • Add hash to webpack requests to enable caching.(#9776)

  • Update MANIFEST.in to include package_data files.(#9780)

  • Correct synchronization of tags between metadata and tags widget.(#9773)

  • Fix use of hyphen in module name.(#9655)

  • Add missing default_url fields to examples.(#9731,#9737)

v3.0.7#

  • Add link for prebuilt extensions too.(#9702)

  • Remove outdated note on ipywidgets.(#9707)

  • Fix debug flag handling in build command.(#9715)

  • Update notebook toolbar example docs.(#9705)

  • UsePath.resolve() to get canonical case-sensitive path names.(#9709)

v3.0.6#

  • Listen for'restarting' instead of'autorestarting' from server.(#9674)

  • Usejupyterhubmake_singleuser_app mixin when available.(#9681)

  • Remove jest version constrain.(#9632)

  • Disable large uploads for notebook server < 5.1.(#9628)

  • Ignore timeout errors when preloading settings.(#9629)

  • Customize template branch when upgrading extension.(#9630)

  • Renamed variable that clashed with a module.(#9641)

  • Allow for lazily retrieved documentation (with a getter).(#9643)

  • Upgradehtml-webpack-plugin to support webpack 5.(#9651)

  • Fix viewing of PDF files in Safari.(#9656)

  • Add ToC entries for all headers in markdown cells.(#9358)

  • Revert creating a new browser tab for a new launcher when in simpleinterface.(#9664)

  • Addxeus-robot to the debugger documentation.(#9661)

v3.0.5#

  • Enable large file uploads.(#9616)

  • Fix display of?? help on Windows.(#9617)

  • Update app and federated examples.(#9586)

v3.0.4#

  • Do not use?? in plain js, as it is too new.(#9606)

  • Fix handling of multiple notebooks for the debugger.(#9598)

  • Refactor labhub + CI.(#9604)

v3.0.3#

  • Move open_browser to the top level configs of classes.(#9580)

v3.0.2#

  • Manage kernel message queueing better to prevent out-of-orderexecution.(#9571)

  • Fix breadcrumb links.(#9572)

  • Fix integration with JupyterHub.(#9568)

  • Fix parsing of empty CSV files.(#9557)

  • Use tree/table buttons to display debugger variables view mode.(#9502)

  • Update tutorial for final jlab 3 release.(#9562)

  • Fix upgrade_extension.py.(#9551,#9550)

  • Update the Binder link in the README to point to a 3.0 Binder.(#9549)

v3.0.1#

  • Fixes error when applyingjupyterlab.upgrade_extension on Windows.(#9546)

  • Improve upgrade script to add style settings.(#9515)

  • Fixed incorrect link to GitHub milestone.(#9516)

  • Split contribution guidelines into web-based and local instructions.(#9540)

  • Remove--checkout3.0 in the extension tutorial.(#9545)

  • Docs updates for 3.0.(#9546)

  • Fix usage test.(#9547)

  • Remove visible 1px border for terminal.(#9548)

v3.0.0#

User-facing changes#

Extensions can be installed without building JupyterLab with NodeJS#

In JupyterLab 3.0, a new recommended way of distributing and installingextensions as Python pip or conda packages is available. Installing suchextensions does not require rebuilding JupyterLab and does not requirehaving NodeJS installed. The previous way of distributing extensions asnpm packages requiring rebuilding JupyterLab is still available as well.See thedocumentationfor more details.

The JupyterLab interface supports multiple languages#

JupyterLab now provides the ability to set the display language of theuser interface. See thedocumentationfor more details.

A new visual debugger#

JupyterLab now ships with a debugger front-end by default, available forkernels that support the new debugging protocol. See thedocumentationfor more details.

Improvements to Simple Interface mode and Mobile#

The Simple Interface mode (previously Single Document Mode) is now morestreamlined. JupyterLab now supports showing the current file in use inthe browser URL bar, similar to the classic Jupyter Notebook.

Table of Contents is now in core#

The popular Table of Contents extension is now part of core JupyterLab.This core extension makes it easy to see an outline view of notebooksand other documents.

Visual filter in file browser#

The file browser now has a filter input which filters the list of filesusing the same fuzzy matching as the command palette.

Property inspector moved to right sidebar#

The default interface for JupyterLab now has system-wide sidebar paneson the left side and sidebar panels that interact with a specificdocument (such as the debugger or notebook property inspector) on theright side. As always, you can move panes between the left and rightsidebars (right click on the sidebar icon, or change it in AdvancedSettings).

Command Palette#

The command palette is now a floating window that appears on top of yourJupyterLab workspace. This enables users to quickly invoke a commandwhile keeping the sidebar closed or switching sidebar panels. Thecommand palette can be put back into the sidebar by adjusting thedefault in Advanced Settings.

Jupyter Server#

JupyterLab 3.0 now depends onJupyterServer, which is a new Jupyterproject based on the server portion of the classic Notebook server. SeetheMigrationGuideto migrate custom notebook configuration to Jupyter Server.

For Developers#

Prebuilt Extensions#

Users will typically consume prebuilt extensions, which are Pythonpackages with static assets built usingJupyterLab. See the updatedAPOD tutorial for the workflow of creating a prebuilt extension fromscratch. For existing extensions, there is a newpython-mjupyterlab.upgrade_extension script that can be used toupgrade extensions. The script will update the relevant dependencies andadd the boilerplate to create the Python package. For extensions thatalready contained Python packages (typically server extensions), thefiles are not overwritten, and some manual copying of content isrequired. See theexample,which used this script heavily. There are two highlighted commits thatdemonstrate upgrading a server extension. Prebuilt extensions are alsoknown as federated extensions in the changes below, since they use thefederated module capability in Webpack 5.

  • Better handling of extensions that provide both prebuilt and sourceextensions.(#9489,#9277)

  • Document new page config conventions(#9454,#9240)

  • Use stylemodule in prebuilt extensions(#9460,#9459)

  • Update style-loader and mini-css-extract-plugin(#9451)

  • Use a more explicit stylemodule key for js css imports(#9427,#9423)

  • Ignore source packages when building or loading jupyterlab if thereis a prebuilt package(#9424,#9277)

  • Include federated extensions in extension manager from the api(#9390,#9367)

  • Handle hyphens and switch to importlib in the develop script(#9471)

  • Chunk the jupyterlab and lumino modules together when building thecore application(#9359)

  • Link to the documentation in the extension manager federated dialog(#9327)

  • Federated extension script: change package name logic(#9326,#9320)

  • Do not error if requiredversion is not provided.(#9321)

  • Reinstate extension manager(#9317)

  • Built-in extensions using federated dependencies(#9310)

  • Update upgrade script to use labextension for outputdir(#9306)

  • Require ‘package’ instead of ‘package/’ so webpack activatessharing(#9300)

  • Enable using federated extensions in dev mode when a flag is set.(#9286,#9235)

  • Update webpack to 5.3.1(#9245)

  • Adds package installation info to labextension list and uninstalloutput(#9244)

  • Restructure federated extensions to allow for package managermetadata(#9239)

  • List the dynamic extensions in the extension manager(#9236,#8804)

  • Refuse to uninstall federated extensions.(#9232,#9230)

  • Allow custom webpack config for federated extensions(#9224,#9175)

  • Use the new webpack 5 ‘auto’ publicpath(#9062,#9043)

  • Bump webpack to 5.0rc1(#9091)

  • Update the upgrade script to not replace dev deps to caret(#9090)

  • Bump webpack to 5.0rc2(#9103)

  • Fix watch mode(#9101,#9089)

  • Upgrade to webpack 5(#9148)

  • Fix watch mode(#9146,#9116)

  • Docs: fix commands to watch(#9163)

  • Docs: update jupyter lab command in ext dev guide(#9165,#)

  • Update release test script to also install federated extensions(#9166,#8818)

  • Remove @types/webpack (shipped with webpack 5)(#9167)

  • Mention jupyter-packaging and cookiecutter in migration guide(#9199)

  • Install jupyter_packaging in tutorial(#9190,#9174)

  • Handle sharing of linked packages and locally installed extensions(#9213,#9203)

  • Clean up federated extension install and upgrade(#8974)

  • Add--development and--source-map flags for buildingextensions.(#8961,#8952)

  • Add extension upgrade script(#8950,#8870,#8869)

  • Improved handling of disabled extensions(#8944,#7481)

  • Add development mode to lab extension build scripts(#8918)

  • Pull federated extension loading data from the webpack compilation(#8913,#8842)

  • Update labextension build cli to include a parameter for setting thewebpack publicpath option(#8911)

  • Update apod extension tutorial(#8905,#8859)

  • Let webpack automatically determine the required version ofdependencies(#8875)

  • Fix rebuild of federated extension and add discovery metadata toschema(#8874)

  • Fix build issues with publicpath(#8871)

  • Split buildutils into buildutils and builder(#8863,#8857)

  • Dynamically set public path in generated extensions according topage config(#8861,#8827)

  • Clean up federated extension cli(#8855,#46)

  • Fix app example.(#8852)

  • Add lumino dependencies to buildutils so the phosphor webpackaliasing works(#8850,#8822)

  • Add another federated example package.(#8847,#5)

  • Fixes for the federated example(#8846)

  • Add slash to publicpath(#8845)

  • Update watch plugin for webpack 5(#8841,#8705)

  • Adding a mime extension to the webpack config(#8825)

  • Fix labextension build(#8821)

  • Fix boolean error(#8819)

  • CI and extension developer cleanup(#8810)

  • Adding extension to shared modules list(#8808)

  • Module federation implementation(#8802)

  • Fix examples and update webpack(#8779,#8767)

  • Add extension building scripts(#8772)

  • Keep the existing webpack file in staging(#8673)

  • Workaround for vega build error(#8666)

  • Add missing polyfill(#8664,#8660)

  • Add url as a polyfill dependency for apputils.(#8659,#8657)

  • Update to webpack 5b21(#8651)

  • Fix examples and break into separate build(#8647,#8646)

  • Add cur extension for url-loader(#8634)

  • Experiment with module federation(#8385)

Jupyter Server#

JupyterLab 3.0 uses Jupyter Server instead of the classic Notebookserver. Existing server extensions will be shimmed, but it is advised toupdate extensions to usejupyter_server.

  • Update server(s), nbclassic, pytest fixtures(#9478,#9473)

  • Add jupyter_core as a dependency(#9251)

  • Put exposeappinbrowser and quitbutton values back in page config(#9262)

  • Update favicon handling(#9145,#9138)

  • Enable JupyterLab to run as an old notebook server extension(#8956,#8943)

  • Fixedstatic_url_prefix, added classic notebook flags and aliases,and bumpedjupyterlab_server dependency(#8910)

  • Use favicons provided byjupyter_server(#8898,#8794)

  • Loadapp_version next to running on jupyter_server(#8889,#8812)

  • Reinstate the labhubapp(#8806,#8704)

  • Jupyterlab as server extension(#7416)

Internationalization#

The JupyterLab UI now supports translation.

  • Cleanup tsconfig for the translation extension(#9357)

  • Add options to add prefix to strings(#8946)

  • Add a standalone translation manager to be used outside of plugins(#8945)

  • Add missing string fixes(#8888)

  • Add crowdin badge(#8823)

  • Changeoptionsmap to a an array of tuples to be able to localizethe options(#8820)

  • Localize strings in jlab(#8800)

  • Add translation package(#8681)

Visual Debugger#

  • Debugger-sidebar(#9452)

  • Handle multiple scopes in the debugger variables viewer(#9346)

  • Remove the ptvsd dependency from the debugger user docs(#9344)

  • Throws an error if the kernel cannot start the debugger(#9426)

  • Replace switch in debugger(#9432,#9354)

  • Sets terminatedebuggee to false(#9362)

  • Add missing return signatures in debugger sidebar(#9088)

  • Fix invisible breakpoint in debugger(#8908)

  • Portjupyterlab/debugger PR #527 to JupyterLab(#8878)

  • Add jupyterlab debugger to core(#8747,#75)

Table of Contents#

  • Update toc ui(#9275)

  • Add tests for the toc(#8757,#8558)

  • Change toc to use labicon(#8692,#8557)

  • Switch from using settings registry to a signal for notebookcollapsing behavior in toc(#8601)

  • Removehusky dependencies fromtoc andtoc-extension(#8571)

  • Merge toc extension into core(#8538)

Other#

  • Resolve ‘restarting’ state on reconnect(#9484,#9008)

  • Upgrade typedoc(#9483)

  • Update to typescript 4.1.3(#9476)

  • Disable shut down all button if there is no running kernel orterminal(#9468,#48)

  • Make some dependencies optional for the code console plugin(#9467)

  • Require tornado>=6.1.0(#9453)

  • Pin to tornado>=6.1 on binder(#9449)

  • Fix some of the ui-components dependency warnings(#9448)

  • Fix browser test(#9447)

  • Support for lowercase search queries in the file browser(#9446)

  • Set the tabs menu title by default(#9445)

  • Add tests for interop between source and prebuilt extensions(#9443,#9333)

  • Make itreepathupdater optional in file browser plugin(#9442)

  • Make ilabshell optional in the filebrowser factory plugin(#9439)

  • Reduce yarn timeout(#9419)

  • Remove unused requires for the tree-resolver plugin(#9412)

  • Update @types/react to ^17.0.0(#9409)

  • Make css dependency graph of js modules(#9407)

  • Cleanup unused python imports in examples/(#9404)

  • Clear the model and the signals upon continue response(#9402)

  • Fix scroll positions when clearing outputs(#9400,#9331)

  • Remove initial extra _onmimetypechanged call(#9394)

  • Bump the eslint dev dependencies(#9391)

  • Reconnect to kernel on manual restart(#9388)

  • Remove the memory usage status bar item(#9386,#9363)

  • Change user references from single-document mode to simple interface(mode)(#9380,#9378)

  • Reconnect to kernel on restart action(#9371)

  • Add a polyfill for path in the base webpack config(#9368,#9345)

  • Add reconnect to kernel main menu item, and notebook implementation.(#9356,#9353)

  • Update blueprint dependencies(#9350)

  • Target sys-prefix by default but allow you to specify user(#9347)

  • Eliminate eager sharing(#9348,#9343)

  • Revert opening in new tab in single-document mode(#9334,#9323)

  • Eager share only core packages and their dependencies(#9332,#9329)

  • Changed the expression to “server unavailable or unreachable”instead of “server not running”(#9325)

  • Increase the pause between publishing and using npm packages to 5minutes(#9319)

  • Lint extension manager(#9318)

  • Refactor build conventions(#9312,#9304)

  • Make ilabshell optional for the launcher extension(#9305)

  • Update binder to use conda, which allows us to install our ownnodejs.(#9298)

  • Move the single document switch to the status bar(#9296)

  • Added utf-8 encoding parameter to create process(#9294,#8600)

  • Fix linting errors in github prs(#9293)

  • Enable mimedocument to use an optional specific renderer(#9291)

  • Pause after publishing packages to allow npm time to update theirlisting(#9288)

  • Sidebar width(#9287,#8938)

  • Mybinder.org link for people who want to test their own branches inthe developer guidelines(#9284,#9255)

  • Remove ensure-max-old-space script(#9282)

  • Fix usage tests refusing to uninstall federated extensions(#9281,#9280)

  • Add a new menu shell area(#9274)

  • Fix #9255(#9273,#9255)

  • Fix theme path in jupyterlab builder(#9272)

  • Move document mode switch to separate plugin(#9270)

  • Fix styling of single-document mode switch in menu bar(#9267)

  • Make pdf viewer extension recognize pdf files(#9266)

  • Fix relative path handling in markdown images(#9264,#9253,#9243)

  • Add jupyterhub to page config(#9256,#9248)

  • Update to webpack-cli 4.1.0(#9254)

  • Upgrade to react 17(#9227)

  • Extension documentation(#9221)

  • Lint fixes(#9218)

  • Update change log(#9217)

  • Update committer list(#9215)

  • Upgrade to TypeScript 4(#8883)

  • File browser filter(#8615)

  • Update yarn.lock.(#9095)

  • Handle notebook kernel in busy state on page reload(#9077)

  • Use span element to maintain ellipsis(#9075,#9074)

  • Add codemirror singleton plugin(#9067)

  • Support token authentication for terminal websocket communication(#9080)

  • Do not special-case logic for mainareawidget.(#9094)

  • Set an icon for the inspector main area widget(#9093)

  • Fix the open tabs handling of mainareawidget icons(#9092,#126)

  • Sort completion filtering results(#9098,#9048,#9048)

  • Add hover scrolling to menu, like toolbar.(#9097)

  • Add codemirror simple mode addon(#9123)

  • Create codeql-analysis.yml(#9119)

  • Create ensurevimkeymap function(#9161)

  • Increase size of docstring pop up tooltip(#9134,#9085)

  • Add a 2.x -> 3.x migration guide(#9162,#9118)

  • Add an offline circle icon for disconnected or unknown kernel state(#9172)

  • Include js api in sphinx docs(#9179)

  • Update rtd build(#9182)

  • Allow to substitute the default completer renderer(#8930,#8926)

  • Update dependencies for beta(#8921)

  • Test cleanup(#8894)

  • Resize isolated iframes on content height change(#8909,#5696)

  • Update minimum python version to python 3.6.(#8903)

  • Update yarn.lock(#8862)

  • Makes some properties and methods of class dsvmodel accessibleoutside the class.(#8849,#8848)

  • Do not use token parameters in websocket urls(#8835,#8813)

  • Use blocked/allowed extension naming in jupyterlab(#8799,#8533)

  • Create icon for pdfs in the filebrowser(#8791)

  • Correctly set base_url on workspace apps(#8788)

  • Pass in isessioncontextdialogs to notebookwidgetfactory(#8778)

  • Update encoding version in vega sample.(#8766)

  • Upgrade codemirror(#8739)

  • Rename the logconsole:nboutput plugin id(#8729)

  • Rename the celltags plugin id to @jupyterlab/celltags(#8728)

  • Uncaught typeerror when switching kernels(#8727)

  • Change inspector detail_level to 1(#8725)

  • Change main menu ranks to allow for application menu to l of file(#8719)

  • Handle errors in async browser_check(#8717,#8709)

  • Add mehmet and andrew to contributors, fix last name order(#8712)

  • Updated puppeteer version to v4.0.0(#8707)

  • Update the singleton packages to include at least every package witha ‘tokens.ts’ file(#8703)

  • Update link to jupyter contributing guide(#8697,#8682)

  • Added ability to delete a document from titlebar context menu(#8670)

  • Move codemirror html tree and related css to shadow dom(#8584)

  • Support macoptionismeta option in terminal(#8573,#4236)

  • Align output baseline with prompt(#8561,#8560)

  • Use the same font-family for cell prompt and code(#8553,#8552)

  • Prompt to save files before rebuild(#8526,#7372)

  • Change json5 payload to json payload(#8225)

  • Move notebook logging plugin to notebook-extension package(#7830)

  • First pass at adding scroll to cell method(#6818)

  • Add a debugger section to the user docs and contributing guide(#8977)

Single Document Mode and Mobile Enhancements#

  • Make the single document title widget work for widgets that are notmain area widgets(#9078)

  • Add border at top of single-document open menus(#9096,#9065)

  • Implement a simple checkbox for single-document mode in the menubar. (#9100,#8292)

  • Followup #9100: made sdm switch pretty, accessible(#9104)

  • Improved url scheme, state, interactions for single document mode(#8715)

  • Add workspace mime handler and loading/saving workspaces manually(#8691)

  • Modify ansi color fix(#8555,#8554)

  • Improve single document mode to address classic notebook usage cases(#8531)

  • Incrementally improve jupyterlab mobile ux(#8456)

Benchmarks (now a separate repository)#

  • Move benchmarks to separate repo(#8795)

  • Fix off by one error in benchmark samples(#8785)

  • Benchmark params configurable and increase timeout(#8786)

  • Benchmarks: new erroroutputs + larger timeout + notebook defs insubfolder(#8783)

  • Add ability to compare benchmarks(#8737)

  • Benchmark notebook loads(#8020)

Bugfixes#

  • Fix lerna warning(#9061)

  • Fix doc build(#9063,#9060)

  • Make text settings menu work(#9066,#9042)

  • Fix lint check for the codemirror-extension package(#9087)

  • Fix the examples ci(#9150)

  • Test: cleanup eslint jest rules and files(#9125)

  • Switch to a different murmurhash2 implementation to handle unicodecharacters(#9158)

  • Add more xxx to the mktemp command in release_test.sh(#9131)

  • Add setup.py and pyproject.toml to manifest.in(#9129)

  • Urlext.join can’t handle colon in relative paths(#9169,#9159)

  • Remove absolute document search pane width(#9180,#9178)

  • Update session and kernel manager data only if there was a realchange.(#9189,#9133)

  • Update metadata recorded to align better with jupyter protocol(#9206)

  • Fix focus issues with command palette(#9210,#9121)

  • Update mimetype for dragging files(#8965,#8934)

  • Fix comment explaining the extension entry point.(#8964)

  • Security docs: link to jupyter-server instead of jupyter-noteboook(#8954)

  • Fix titles in the extension development docs(#8948)

  • Fix link syntax in the apod tutorial(#8942)

  • Fix codemirror text color issue with dark jupyter theme.(#8919,#8792)

  • Remove the extension path, not the entire extension directory, whenuninstalling an extension(#8904)

  • Header'content-type' should not be overwritten(#8891,#8890)

  • Make sure adding or removing a cell tag actually replaces the taglist, so a changed signal is emitted for the cell metadata(#8751,#8534)

  • Fix up ensure package and repo(#8749,#8748)

  • Add comma inextension_points.rst to fix syntax error of code(#8745)

  • Fix: Contributing Guide Link is Out of Sync(#8665)

  • Fix api docs links(#8624,#8616)

  • Fix handling of disposed widgets after closing a panel in tutorial(#8623)

  • Fix small typos in docs for developing extensions(#8622)

  • Reload the application on manual state reset(#8621)

  • Remove superfluous page reload on workspace reset(#8619)

  • Remove superfluous console log from the application shell(#8618)

  • Fix minor typos in extension tutorial(#8613)

  • Fix minor typos in docs for extensions.(#8551)

  • Fix small typo in install docs(#8550)

  • Fix more linting errors(#8454)

  • Reconnect a websocket when a kernel is restarted.(#8432)

v2.2.x#

v2.2.0#

See theJupyterLab2.2milestone on GitHub for the full list of pull requests and issuesclosed.

July 2020#

We are very excited to add Eric Charles to the core team this month!(#8513)

User-facing changes#

  • Cells can no longer be executed while kernels are terminating orrestarting. There is a new status for these events on the KernelIndicator(#8562,#8477)

An animation of the Jupyterlab interface that demonstrates restarting a kernel and running code cells.
  • Adds a visual clue for distinguishing hidden files and folders inthe file browser window(#8393)

A screenshot of the JupyterLab file browser.
  • Enable horizontal scrolling for toolbars to improve mobileexperience(#8417)

An animation demonstrating improved scrolling and navigation on mobile.
  • Improves the right-click context menu for the file editor(#8425)

A context menu in a text file with options like undo and redo.
  • Merge cell attachments when merging cells(#8427,#8414)

An animation demonstrating merging two cells with image outputs into one cell with both outputs.
  • Add styling for high memory usage warning in status bar withnbresuse(#8437)

A status bar message that says memory 110.51 MB used out of 117.25 MB available.
  • Adds support for Python version 3.10(#8445)

  • Support live editing of SVG with updating rendering(#8495,#8494)

Demonstrating editing an SVG in one tab and while it is previewed live in another tab.

For developers#

  • Specify that we recommend typescript over javascript for extensions(#8411)

  • Lazy load codemirror theme stylesheets.(#8506)

  • Increase the link expiry to one week(#8402)

  • Add documentation on private npm registry usage(#8455,#7827,#7660)

  • Add feature request template + slight reorg in readme(#8467)

  • Add link to react example in extension-examples repo(#8474)

  • Update documentation of whitelist/blacklist(#8540)

  • Improve whitelist figure description in documentation(#8517)

Bugfixes#

  • Typo: fix extensino to extension(#8512)

  • Close correct tab with close tab(#8529)

  • Remove unused css rules(#8547,#8537)

  • Fix small typo in getting started docs, proxy(#8549)

  • Fix link on CI badges(#8603)

  • Simplified multicursor backspace code(#8523)

  • Fix recent breaking changes to normalizepath in filebrowser(#8383,#8382)

  • Fix watch mode and add ci test(#8394)

  • Address CI failures(#8433)

  • Fix lint errors in dependency graph script(#8451)

  • Fix lint complaints coming up from github actions(#8452)

  • Address CI usage test timeout(#8464)

  • Add chokidar to dev_mode/package.json(#8481)

  • Fix autolink(#8496)

  • Update phosphor aliases(#8498)

  • Fix default return in Python when extension has no version metadata(#8430)

  • Updated the installation documentation on read the docs to match thereadme file on the repo(#8386)

  • Handle quit_button when launched as an extension(#8486,#8483)

  • Add worker-loader(#8593,#8587)

v2.1.x#

v2.1.2#

  • Fix icon sidebar height for third party extensions(#8333)

  • Pin JupyterLab server requirement more tightly(#8330)

  • Scrolls cells into view after deletion(#8287)

  • Sets data attribute on file type in filebrowser(#8275)

v2.1.1#

  • Pin puppeteer to fix ci(#8260)

  • Fix Save As for files without sessions(#8248)

v2.1.0#

April 2020#

See theJupyterLab2.1milestone on GitHub for the full list of pull requests and issuesclosed.

User-facing changes#

  • Display the extension manager in the left sidebar by default. Userswill need to acknowledge the disclaimer in the extension managerbefore using it.(#8050,#8145)

  • Addedblacklistandwhitelistsupport<extension_listings> for theextension manager(#7989)

  • Automatically link URLs in notebook output text(#8075,#7393)

  • Added a “Restart Kernel and Run All Cells…” button to thenotebook toolbar(#8024)

The main JupyterLab toolbar with focus on the Restart Kernel and Run All Cells button.
  • Added a context menu item for opening a Markdown editor from theMarkdown preview(#7942)

  • Support Node.js 10+(#8112,#8083)

  • Added a command to replace the selection in an editor with text(inserting if there is no selection). This can be assigned akeyboard shortcut, as shown below. We also added a command to gothrough a series of commands and run the first enabled command.(#7908) Hereis a keyboard shortcut to insert text in a currently-active notebookeditor:

    {command:"notebook:replace-selection",selector:".jp-Notebook",keys:["Ctrl L"],args:{text:"lambda x: x"}}

    Here is a keyboard shortcut to insert text into an editor of thecurrently active console, file editor, or notebook:

    {command:"apputils:run-first-enabled",selector:"body",keys:["Ctrl L"],args:{commands:["console:replace-selection","fileeditor:replace-selection","notebook:replace-selection",],args:{text:"lambda x: x"}}}

For developers#

  • NotebookWidgetFactory is now a plugin so it can be overridden(#8066,#7996)

  • Many improvements toLabIcon: work with all SVG loaders, improveperformance, fix issue with menus from extensions(#8125)

  • Change the header application area to a box panel, which means theheader area will display if its children set their minimum height(#8059,#7279)

  • JupyterLab’s custom context menu is now disabled on all descendantsof a DOM element with adata-jp-suppress-context-menu attribute(#7877,#7670)

Bugfixes#

  • Fix property inspector restoration on reload(#8114)

  • Increase the timeout for yarn(#8104,#8102)

  • Fix find and replace with empty strings(#8100,#8098)

  • Select search text when focusing the search overlay(#8073,#7932)

  • Fix attaching images with spaces in their names to Markdown cells(#8095)

  • Fix build errors by distributing the.yarnrc configuration withthe Python package(#8045)

  • Throttle fetch requests in the setting registry’s data connector(#7927)

  • Close the gap between lines in notebook output(#7832,#7760)

v2.0.2#

April 2020#

See theJupyterLab2.0.2milestone on GitHub for the full list of pull requests and issuesclosed.

  • Fix cell execution when recording timing(#8057,#8056)

  • Fix font settings for the editor(#8004,#7910)

  • Avoid redundant checkpoint calls on loading a notebook(#7926,#7889)

  • For developers: make kernelIFuture.done typings more correct bynot includingundefined(#8032)

v2.0.0#

February 2020#

Here are some highlights for this release. See theJupyterLab2.0milestone on GitHub for the full list of pull requests and issuesclosed.

User-facing changes#

  • New user interface for notebook cell tags(#7407,#7786)

Notebook cell tags in the left sidebar next to an open notebook.
  • File info display when hovering on a file in the file browser(#7485,#7352)

The file browser with a tooltip describing a notebook's info like the name, size, and kernel.
  • Support for searching outputs in notebooks(#7258)

A notebook with multiple cells and the cell output searching in the upper right.
  • CtrlShift. andCtrlShift, shortcuts move focus to the nextand previous tab bar in the main area, respectively(#7673)

  • ShiftHome andShiftEnd shortcuts in a notebook select allcells from the current cell to the top or bottom of a notebook,respectively(#7177)

  • Explicit “No Kernel” button in the kernel selection dialog for newnotebooks(#7647)

  • NotebookrecordTiming advanced setting to control whetherexecution timing information is stored in notebook files(#7578)

  • “Select current running or last run cell” command added (requiresnotebookrecordTiming advanced setting to be set to true)(#7551)

  • CodemirrorlineWiseCopyCut advanced setting to control thebehavior of the copy/cut keyboard shortcuts when there is noselection(#7842)

  • Refreshed the command palette and property inspector sidebar iconsand user interfaces(#7577,#7038,#7733,#7732,#7718,#7686)

  • “New File” and “New Markdown File” items in file browser contextmenu (#7483,#4280)

  • “Download” item in File menu(#7480)

  • “Restart Kernel and Run up to Selected Cell” item in notebookKernel menu(#7789,#6746)

  • In extension manager, the “enable” button is now only shown forinstalled extensions(#7482)

  • Dialogs can now be closed by clicking outside of them(#7885,#3784)

  • documentsearch:startWithReplace command to open the document findoverlay with replace. There is not currently a default keyboardshortcut for this, but one can be assigned as a custom keyboardshortcut in Advanced Settings.(#7725)

  • # added to the CSV Viewer delimiter options(#7367,#6324)

  • The JSON viewer now only displays structure hints for arrays andempty objects for a more streamlined feel(#7227)

  • Optional platform-aware keyboard shortcut fieldslinuxKeys,macKeys, andwinKeys in keyboard shortcut definitions(#7589)

    {command:"application:toggle-mode",selector:"body",linuxKeys:["Ctrl Shift M"],// only linuxmacKeys:["Cmd Shift Z"],// only macwinKeys:["Ctrl Shift B"],// only windowskeys:["Accel Shift U"]// default shortcut}
  • Added options forjupyterlabclean to clean specific parts of thebuild, such as--extensions,--settings,--static, and--all(#7583,#6734)

  • Removed the vega 4 and vega-lite 2 renderers (vega 5 and vega-lite 4is included in JupyterLab by default). These legacy renderers may beavailable via custom extensions(#7650,#7523,#7658)

  • JupyterHub users should use thec.Spawner.default_url='/lab'setting instead of the deprecated and now removedlabhubapp(#7724)

For developers#

Seeextension_migration for help inmigrating extensions to JupyterLab 2.0.

Backward incompatible changes#

  • Switch from@phosphor to@lumino dependencies.(#7582,#7534,#7763,#7762,#7595)

  • Factor out thesettingsregistry andstatedb packages fromcoreutils(#7681,#7615)

  • Rework services architecture (sessions, kernels, terminals). Amongthese changes,ClientSession is renamed toSessionContext andtheIKernelConnection.connectToComm method is replaced withIKernelConnection.createComm andIKernelConnection.hasCommmethods.(#7252,#7674,#7820,#7694,#7690,#7682)

  • Upgrade to TypeScript 3.7(#7522)

  • Removepolling from coreutils in favor for@lumino/polling(#7617)

  • TypeScript strict null checking in core packages(#7657,#7607)

  • Update state database list method to query based on namespace match.(#7742,#7257)

  • Address code todo items and deprecations for 2.0(#7720,#7724)

  • Update Console panel tracker widgets(#7705,#7726,#7648,#7645)

  • Update contribution guide to require node v12+(#7479)

  • New API for theRunning sidebar extension(#6895,#6876)

  • Clean up handling of icons under unified LabIcon (#7192#7700,#7765,#7767,#7800,#7846,#7859,#7864,#7886)

Other changes#

  • New property inspector used to display the properties of thecurrently selected main area widget(#7665,#7664,#7718,#7686)

  • Allow metadata for launcher items(#7654,#7652)

  • Allow default file browser to restore manually.(#7695,#4009)

  • Upgrade bundled yarn to 1.21.1(#7691,#7692)

  • Make session dialogs configurable(#7618,#7616)

  • Support transient editor configs(#7611,#7295)

  • Optionally force new browser tab(#7603,#7602)

  • Update core dependencies (e.g.,codemirror,xterm.js,markdown,fontawesome, etc.)(#7590,#7194,#7326,#6479,#7769)

  • Add storybook toui-components(#7588,#6799)

  • Add explicit documentation encouraging people to re-use labcomponents(#7543)

  • Enable TypeScript sourcemaps for debugging locally installedlabextensions(#7541)

  • AddUseSignal example to the docs(#7519)

  • Addenv prop to kernel options(#7499)

  • Add kernelspec metadata(#7229,#7228)

  • Allow different mimetypes for the clipboard data(#7202)

  • Add password dialog to apputils(#7855)

  • Alias phosphor packages to lumino to allow a deprecation period forphosphor(#7893)

  • Match react version in ui-components peerdependencies(#7794)

  • Fix lint-staged for both win and mac(#7784)

  • Update websocket workaround for node environments(#7780,#6934)

  • Fix handling of linked extensions(#7728,#6738)

  • Fix extension compatibility checks for prereleases and extensionssupporting multiple major versions of JupyterLab(#7723,#7241,#7919)

  • Teach update-dependency about more range specifiers and make itadopt the current range for any tag(#7709)

  • Add support for giving a rank to items in the top area(#7278)

  • Apply all options to the initial JupyterLab application instance(#7251)

Bugfixes#

  • “Copy Shareable Link” in the file browser context menu nowproperly works in JupyterHub(#7906)

  • Update Mathjax CDN in the cell and console examples(#7680)

  • Revert ensure-max-old-space now that Node 12+ has better defaultmemory ceilings(#7677,#7675)

  • Resolve race condition between default file browser and tree urls.(#7676,#4009)

  • Fix handling of code editor refresh(#7672,#7671)

  • Start new notebooks in edit mode(#7666,#6731)

  • Use consistent versions of React(#7661,#7655)

  • Add scrollbar styles to nbconvert-css(#7653)

  • Close output views when corresponding notebooks are closed(#7633,#7301)

  • Fixed incorrect white background for new command palette icon(#7609,#7577)

  • Block fetching the settings for a plugin that is disabled(#7147)

  • When timing metadata changes, ensure signal fires(#7576)

  • Prevent memory leaks in Vega renderer(#7564)

  • Handle cell execution cancellation when cell is disposed(#7555,#7554)

  • Fix dropdown option style issue on Windows(#7513)

  • Make sure label is linked to a control when checking for elementtype (#7458)

  • Refine log console message UX(#7448,#7444,#7443)

  • Fix multicursor backspacing(#7401,#7205)

  • Reset log display and count when non-notebook tab gets activated(#7334,#7325)

  • Fix Safari multiple tabs by working around a Safari bug.(#7316,#6921)

  • Skip custom click behavior on links when the download attribute isset (#7311,#5443)

  • Fix context menu hit test to deal with SVG nodes.(#7242,#7224)

  • Fix overwriting of target attribute of anchors rendered byIPython.display(#7215,#6827)

  • Fix file browser location in tree view(#7155)

  • Stop too many fetch calls in docmanager-extension(#7879,#7874)

  • Ensures thatShiftTab dedent shortcut works correctly in the fileeditor(#7865)

  • Fix unexpected jump to last search result when using documentsearch(#7835)

  • Fixed refresh issue for html viewer(#7824,#7552)

  • Fix for center-aligned images with IPython.display.image(#7798)

  • Changes to setting editor should trigger application dirty state(#7774,#7757)

  • Move vega from “devdependencies” to “dependencies”(#7699,#7689)

  • Restore default file browser manually.(#7695,#4009)

  • Use defaultapp_dir whenapp_dir is''(#7268,#7264)

v1.2.0#

October 29, 2019#

Here are some highlights for this release. See theJupyterLab1.2.0milestone on GitHub for the full list of pull requests and issuesclosed.

User-facing changes#

  • Select cells from the current cell to the top of the notebook withShiftHome, to the bottom of the notebook withShiftEnd(#7336,#6783)

  • Add a log console extension to display unhandled messages and otheractivity(#7318,#7319,#7379,#7399,#7406,#7421)

  • Allow the npmmax-old-space option to be specified outside ofJupyterLab(#7317)

  • Only display node structure in a JSON tree view for arrays and emptyobjects(#7261)

  • Make much smaller distribution packages by not building JavaScriptsource maps for releases.(#7150)

  • Add support for pasting cell attachments and dragging attachmentsfrom the file browser(#5913,#5744)

  • Add a newregistry configuration parameter to override the defaultyarn repository when building(#7363,#7109,#7249,#7248)

For developers#

  • Update the Markdown renderer (marked) to 0.7.0(#7328)

  • Remove datagrid as a singleton, allowing extensions to use newerversions(#7312)

  • Add metadata to the kernelspec information(#7234)

  • Allow different mimetypes for the clipboard data(#7233)

  • Add inline svg icon support to toolbar buttons(#7232)

  • Add PageConfig functions to query if a plugin is deferred ordisabled(#7216)

  • Allow for renderers for nbformat.ierror to be created(#7203,#7193)

  • Refactorfileeditor-extension for modularization(#6904)

  • Add execution timing to cells(#6864,#3320)

Bugfixes#

  • Fix thefile-browser-path query parameter(#7313)

  • Skip custom click behavior on links when the download attribute isset (#7323)

  • Fix opening multiple browser tabs in Safari(#7322)

  • Fix context menus on SVG icons(#7263)

  • Fix overwriting of target attribute of anchors rendered byIPython.display(#7231)

  • Fix multi-cursor backspacing(#7205,#7401,#7413)

  • Fix mult-cursor cell splitting(#7207,#7417,#7419)

v1.1.0#

August 28, 2019#

Here are some highlights of what is in this release. See theJupyterLab1.1.0milestone on GitHub for the full list of pull requests and issuesclosed.

User-facing changes#

  • jupyterlabbuild now has a--minimize=False option to buildwithout minimization to conserve memory and time(#6907)

  • Fix workspace reset functionality(#7106,#7105)

  • Restore behavior of the “raises-exception” cell tag(#7020,#7015)

  • Add settings to override theme font sizes(#6926)

  • Accept query parameter to optionally change file browser location(#6875)

  • Pressing escape in the console should switch out of edit mode(#6822)

  • Fix file browser downloads in Google Chrome(#6686)

  • Make it possible to override the default widgets to view a file(#6813,#4048)

  • Support installing multiple versions of the same extension(#6857)

  • Support JupyterHub server name for JupyterHub 1.0(#6931)

  • Add docs to help users diagnose issues before creating them(#6971)

  • The JupyterLab conda-forge package is now anoarchpackage. If you are using JupyterLab withnotebookversion 5.2 or earlier, you may need to manually enable theJupyterLab server extension. See the issue for more details(#7042)

For developers#

  • Expose install_kernel for tests so that outside projects can betteruse the testing framework(#7089)

  • Fixcomm_info_request content to conform to the Jupyter messagespecification in a backwards-compatible way(#6949,#6947)

  • Add yarn package resolution to build to constrain core packageversions to patch semver ranges(#6938)

  • Make handling comm messages optional in a kernel connection.(#6929)

  • Expose icon svg to theme css(#6034,#7027)

  • Expose convenience functions for open dialogs(#6366,#6365)

  • Add debug messages to possible kernel messages(#6704)

  • Add server side coreconfig object(#6991)

Bug fixes#

  • Handle errors that occur during kernel selection(#7094)

  • Fix escaping issues for page config and other template variables(#7016,#7024,#7061,#7058,#6858)

  • Require jinja2 2.10+ to fix escaping issues(#7055,#7053)

  • Increase the search debounce from 100ms to 500ms to increaseincremental search responsiveness in large documents(#7034)

  • Fix vega downloads and download urls in general(#7022,#7017,#7098,#7047)

  • Do not complain in the build about duplicate or optional packages(#7013)

  • Fix contextual help layout for R help(#6933,#6935)

v1.0.0#

June 28, 2019#

See theJupyterLab1.0.0milestone on GitHub for the full list of pull requests and issues closedin 1.0.0, and other 1.0.x milestones for bugs fixed in patch releases.

Find and Replace#

A notebook with multiple cells and the find and replace interface in the upper right.

We have added first class support for find and replace acrossJupyterLab. It is currently supported in notebooks and text files and isextensible for other widgets who wish to support it.(#6350,#6322,#6301,#6282,#6256,#6241,#6237,#6159,#6081,#6155,#6094,#6024,#5937,#5795,#1074)

Status Bar#

A screenshot of the updated JupyterLab status bar.

We have integrated theJupyterLab Status Barpackage packageinto the core distribution. Extensions can add their own status to it aswell (#5577,#5525#5990,#5982,#5514,#5508,#5352).

JupyterHub Integration#

  • We now include the JupyterHub extension in core JupyterLab, so youno longer need to install@jupyterlab/hub-extension.(#6451,#6428)

  • JupyterLab now has a File > Logout menu entry when running withJupyterHub(#6087,#5966)

Printing#

We now have a printing system that allows extensions to customize howdocuments and activities are printed.(#5850,#1314)

Other User Facing Changes#

  • The launcher displays longer kernel names and supports keyboardnavigation(#6587)

  • Notebook outputs without any valid MimeType renderers will not bedisplayed, instead of displaying an error(#6559,#6216)

  • Add tooltip to file browser root breadcrumb icon showing the serverroot, if it is available(#6552)

  • Downloading a file will no longer open a new browser window(#6546)

  • Rename the help “Inspector” to “Contextual Help” and move it tothe “Help” menu(#6493,#6488,#6678,#6671)

  • Update many of the icons to make them more consistent(#6672,#6618,#6664,#6621)

  • Update the settings UI to remove the table view(#6654,#6622,#6653,#6623,#6646,#6642)

  • Replace FAQ Extension with link to JupyterLab documentation(#6628,#6608,#6625,#6610)

  • Change the default keyboard shortcut for closing a tab to beAlt+winstead ofCmd/Ctrl+w to avoid conflicts with operating systems.(#6486,#6357)

  • Show help text in Inspector window to describe you should select afunction(#6476)

  • Fixes SVG rendering(#6469,#6295)

  • Add support for dropping a tab in the tab bar area.(#6454,#5406)

  • Switch some default shortcuts to useAccel instead ofCtrl sothey are more natural for Mac users(#6447,#5023)

  • Add ability to tell between hover and selected command palette items(#6407,#279)

  • Hide the “Last Modified” column when the file browser is narrow(#6406,#6093)

  • Support copy/paste in terminal and Mac OS usingCtrl+C andCtrl+V(#6391,#6385,#1146)

  • Support scrolling in running kernels panel(#6383,#6371)

  • Adds ability to “Merge Selected Cells” in the context menu in thenotebook(#6375,#6318)

  • Turn On Accessibility In Xterm.js to make it more compatible forscreen readers(#6359)

  • When selecting cells using the keyboard shortcuts, we now skipcollapsed cells(#6356,#3233)

  • Supporting opening.geojson files in JSON viewer(#6349)

  • Performance fixes for text-based progress bars(#6304,#4202)

  • Add support for rendering Vega 5 and Vega Lite 3 while keeping theexisting Vega 4 and Vega Lite 2 renderers(#6294,#6133,#6128,#6689,#6685,#6684,#6675,#6591,#6572)

  • Drag and drop console cells into a notebook or text editor(#5585,#4847)

  • Drag and drop notebook cells into a console or text editor(#5571,#3732)

  • The extension manager search now sorts extensions by the scoreassigned to them by NPM instead of alphabetically(#5649)

  • Notify the user when a kernel is automatically restarted, forexample, if crashes from an out of memory error(#6246,#4273)

  • Expose the extension manager in a command and menu item(#6200)

  • Add command to render all Markdown cells(#6029,#6017)

  • Supports using shift to select text in output area(#6015,#4800)

  • Output areas that opened in new views are restored properly now onreload(#5981,#5976)

  • Add support for managing notebook metadata under a new “AdvancedTools” section in the cell tools area. The cell and notebookmetadata now always reflect the current state of the notebook(#5968,#5200)

  • Inherit terminal theme from core theme(#5964)

  • Adds a built-in HTML viewer so that you can view HTML files(#5962,#5855,#2369)

  • New workspaces are now automatically generated when you create a newwindow with the same workspace name.(#5950,#5854,#5830,#5214)

  • We now add a hint to the context menu to describe how you can accessthe native browser menu(#5940,#4023)

  • The tabs on the left panel have changed to make them moreunderstandable(#5920,#5269)

  • Start a new terminal when the page is refreshed and the old terminalhas died(#5917)

  • Add a command to open the main menus, which can be assigned to akeyboard shortcut to open and navigate menus without a mouse(#5910,#3074)

  • The contextual help now updates based on changes in the cursor fromthe mouse instead of just from the keyboard(#5906,#5899)

  • The launcher now updates when the kernels change on the server(#5904,#5676)

  • Retain cell auto scroll behavior even when a cell output is cleared(#5817,#4028)

  • If you link to a relative path that is not a file in a markdowncell, this will now be preserved instead of changing it to a fileURL (#5814)

  • Adds the ability to link to a certain row in a CSV file and have theviewer open to that row(#5727,#5720)

  • We have improved the performance of switching to a large notebook(#5700,#4292,#2639)

  • The vdom extension now supports event handling, so that you can havekernel code run in response to user interaction with the UI(#5670)

  • Adds the ability to run “Run All Code” and “Restart Kernel andRun All Code” in code and markdown files(#5641,#5579)

  • We now remember what line ending a text file has when loading it, sothat files withCRLF line endings will properly be saved with thesame endings(#5622,#4464,#3901,#3706)

  • Fixes rendering of SVG elements in HTML MimeType output(#5610,#5610,#5589)

  • Allow copying files by holding downCtrl when dragging them in thefile browser(#5584,#3235)

  • Switch the hover modified time in the file browser to use the localformat(#5567)

  • We have added a default keyboard shortcut ofCtrlShiftQ forclosing and cleaning up a file(#5534,#4390)

  • Adds the ability to find and go to a certain line in the CSV viewer(#5523)

  • Add the ability to create new text and markdown files from thelauncher and command palette(#5512,#5511)

  • A “New Folder” option has been added to the file browser contextmenu (#5447)

  • The ANSI colors are now the same as those in the classic notebook(#5336,#3773)

  • Send complete statements instead of current lines when steppingthrough code in a cell(#6515,#6063)

  • Description list styles (dl,dt,dd) are improved to beconsistent with the nteract project(#5682,#2399)

Settings#

  • The settings system has been rewritten(#5470,#5298) andnow uses json5 as the syntax, which supports comments and otherfeatures for better human readability(#6343,#6199).

  • The keyboard shortcut system has been rewritten and now displays alist of system commands in the settings comments(#5812,#5562).

There are new settings for many following items, including:

Command Line Changes#

Extension Development Changes#

  • We have rewritten how extensions provide keyboard shortcuts andinteract with the settings system. If you previously definedkeyboard shortcuts or used the settings mechanism, you will need toupdate your extension(#5470,#5298)

  • We have renamed the plugin type fromJupyterLabPlugin toJupyterFrontEndPlugin. The application arg is also renamed fromJupyterLab toJupyterFrontEnd and some its functionality hasbeen moved to a separateILabShell plugin(#5845,#5919)

  • The lab shelladdToMainArea,addToLeftArea,addToTopArea,addToRightArea, andaddToBottomArea functions have been replacedwith a singleadd() function that takes the area as an argument.ReplaceaddToMainArea(widget,options) withadd(widget,'main',options), etc.(#5845)

  • RenamepageUrl toappUrl in the server connection(#6509,#6508,#6585,#6584)

  • MainAreaWidget instances now forward update requests to theircontent(#6586,#6571)

  • The theme data attributes are renamed and moved to the document bodyelement. If you are relying on these attributes in CSS toconditionally style based on the theme, you should update theirnames. For exampledata-theme-light is nowdata-jp-theme-light.(#6566,#6554)

  • Extensions which require CSS should no longer import their CSS filesinto their Javascript files. Instead, they should specify a root CSSfile in thestyle attribute in theirpackage.json, andJupyterLab will automatically import that CSS file.(#6533,#6530,#6395,#6390)

  • Dialog.prompt has been replaced by a number of type-specificdialogs such asInputDialog.getString,InputDialog.getBoolean,etc. (#6522,#6378,#6327,#6326)

  • When aRenderMime widget is re-rendered, the default behavior isto remove any existing content in the DOM. This can be overridden ifneeded.(#6513,#6505,#6497)

  • We have updated our internal TypeScript version to 3.5.1 and ourcompile target toES2017. Extensions may need to upgrade theirTypeScript version and target as well.(#6440,#6224)

  • We have updated the typings for some of the Kernel messages so thatthey better match the spec.(#6433)

  • AconnectionFailure signal has been added to some of the managerclasses, which can be used to detect when a connection to the serveris lost(#6399,#6176,#3324)

  • Add rate limiting and polling utilities tocoreutils to use forthrottling and debouncing of API requests(#6345,#6346,#6401,#6305,#6157,#6192,#6186,#6141,#3929,#6141,#3929,#6186,#6192,#6401,#6305,#6157)

  • Require session when instantiating terminal widget(#6339,#5061)

  • Provides a signal to see what items are opened in a directorylisting(#6270,#6269)

  • Ads the ability to add widget above the main work area to a topheader area(#5936)

  • RenamescontextMenuFirst tocontextMenuHitTest in theJupyterFrontEnd(#5932)

  • Removes theinitialCommand arg from the terminal creation command.(#5916)

  • Adds--jp-code-cursor-width0,--jp-code-cursor-width1, and--jp-code-cursor-width2 variables to the themes to supportchanging the cursor width if you change the font size(#5898)

  • Adds the ability to insert a new item to the toolbar before or afteranother item(#5896,#5894)

  • Adds the ability for extensions to register new CodeMirror modes(#5829)

  • We have removed theJUPYTERLAB_xxx_LOADER Webpack loaders, insteadyou should use the loader directly in the URL as Webpack supports it(#5709,#4406)

  • Adds the ability to handle fragments for document widgets(#5630,#5599)

  • We have added a@jupyterlab/ui-components package that containsreusable React components to be used internally and in extensions.Feel free to use this to create extension UIs with consistent styles(#5538)

  • TheshowErrorMessage function now lets you customize the buttonsit uses(#5513)

  • We now provide helpers for using React components within JupyterLab.If you were previously usingReactElementWidget you should switchto usingReactWidget.(#5479,#5766,#6595,#6595)

  • The share link command has been moved to its own extension so thatit can be overridden(#5460,#5388)

  • Creating a new services session now requires passing a kernel modelinstead of a kernel instance(#6503,#6142)

  • We upgraded the Webpack raw file loader. The new version of the rawloader exports ES2015 modules, so this may require changes inextensions that import files using the raw loader. For example, ifyou didrequire('myfile.md') to get the content ofmyfile.md as a string, you now should import it usingES2015import syntax, or userequire(\'myfile.md\').default.

  • Widget factories now can support custom cloning behavior from anoptional source widget(#6060,#6044)

  • We have renamed the typeInstanceTracker toWidgetTracker(#6569).

  • In order to add widgets to the main area (e.g. as in the old XKCDextension tutorial), the correct syntax is nowapp.shell.add(widget) orapp.shell.add(widget,'main'), seehere.

v0.35.0#

October 3, 2018#

See theJupyterLab0.35.0milestone on GitHub for the full list of pull requests and issuesclosed.

Features#

  • A notebook cell can now be readonly, reflecting itsenabledmetadata.(#5401,#1312)

  • Add “Go To Line” in the Edit menu for text editors.(#5377)

  • Sidebar panels can now be switched between left and right sidebars.Right-click on a sidebar tab to move it to the other sidebar.(#5347,#5054,#3707)

  • Make the sidebar a bit narrower, and make the minimum widthadjustable from a theme.(#5245)

  • Populate the File, Export Notebook As… submenu from the servernbconvert capabilities.(#5217)

  • Server contents managers can now tell JupyterLab to open files asnotebooks. For example, several custom contents managers save andopen notebooks as Markdown files.(#5247,#4924)

  • Add a command-line interface for managing workspaces.(#5166)

  • Allow safe inline CSS styles in Markdown.(#5012,#1812)

  • Add Quit to File menu when appropriate.(#5226,#5252,#5246,#5280)

  • Rework extension manager user experience.(#5147,#5042)

Dark theme#

  • Show a dark splash screen when using a dark theme.(#5339,#5338,#5403)

  • Fix code completion menu for a dark theme.(#5364,#5349)

  • Style CSV viewer for a dark theme.(#5304,#3456)

  • Make Matplotlib figures legible in a dark theme.(#5232)

  • Fix notebook cell dropdown legibility in a dark theme.(#5168)

Bug fixes#

  • Various save options in the file menu and toolbar are now disabledwhen a file is not writable.(#5376,#5391)

  • Kernel selector dialog no longer cuts off kernel names.(#5260,#5181)

  • Fix focus issues with the toolbar.(#5344,#5324,#2995,#5328)

  • Fix toolbar button enabled/disabled status.(#5278)

  • Table alignment is now respected in Markdown.(#5301,#3180)

  • Fix syntax highlighting for Markdown lists.(#5297,#2741)

  • Use the current filebrowser instead of the default one for variouscommands.(#5390)

  • Fix escaping in link handling to conform to Markdown syntax. Thismeans that spaces in link references now need to be encoded as%20.(#5383,#5340,#5153)

Build system#

  • Use Typescript 3.1.(#5360)

  • Use Lerna 3.2.1.(#5262)

  • Node >=6.11.5 is now required.(#5227)

  • Pin vega-embed version to 3.18.2.(#5342)

  • Use Jest for services tests.(#5251,#5282)

  • Make it easier for third party extensions to use the JupyterLab testapp and testing utilities.(#5415)

  • Fixjupyterlabclean on Windows.(#5400,#5397)

  • Fixjupyterlabbuild on NFS.(#5237,#5233)

  • Build wheels for Python 3 only.(#5287)

  • Migrate to usingjupyterlab_server instead ofjupyterlab_launcher and fix the app example.(#5316)

  • Move Mathjax 2 typesetter to a library package.(#5259,#5257)

For Developers#

  • Default toolbar buttons can be overridden, and mime renderers cannow specify toolbar buttons.(#5398,#5370,#5363)

  • A JupyterLab application instance can now be given a documentregistry, service manager, and command linker.(#5291)

v0.34.0#

August 18, 2018#

See theJupyterLab0.34.0milestone on GitHub for the full list of pull requests and issuesclosed.

Key Features#

  • Notebooks, consoles, and text files now have access to completionsfor local tokens.

  • Python 3.5+ is now required to use JupyterLab. Python 2 kernels canstill be run within JupyterLab.

  • Added the pipe (|) character as a CSV delimiter option.

  • Added “Open From Path…”” to top levelFile menu.

  • Added “Copy Download Link” to context menu for files.

Changes for Developers#

  • Notebooks, consoles, and text files now have access to completionsfor local tokens. If a text file has a running kernel associatedwith its path (as happens with an attached console), it also getscompletions and tooltips from that kernel.(#5049)

  • TheFileBrowser widget has a new constructor optionrefreshInterval, allowing the creator to customize how often thewidget polls the storage backend. This can be useful to preventrate-limiting in certain contexts.(#5048)

  • The application shell now gets a pair of CSS data attributesindicating the current theme, and whether it is light or dark.Extension authors can write CSS rules targeting these to have theirextension UI elements respond to the application theme. Forinstance, to write a rule targeting whether the theme is overalllight or dark, you can use

    [data-theme-light='true']your-ui-class{background-color:white;}[data-theme-light='false']your-ui-class{background-color:black;}

    The theme name can also be targeted by writing CSS rules fordata-theme-name.(#5078)

  • TheIThemeManager interface now exposes a signal forthemeChanged, allowing extension authors to react to changes inthe theme. Theme extensions must also provide a new boolean propertyisLight, declaring whether they are broadly light colored. Thisdata allows third-party extensions to react better to the activeapplication theme.(#5078)

  • Added a patch to update theuploads for eachFileBrowserModelinstantly whenever a file upload errors. Previously, the upload thaterred was only being removed from uploads upon an update. This wouldallow the status bar component and other extensions that use theFileBrowserModel to be more precise.(#5077)

  • Cell IDs are now passed in the shell message as part of the cellmetadata when a cell is executed. This helps in developing reactivekernels.(#5033)

  • The IDs of all deleted cells since the last run cell are now passedas part of the cell metadata on execution. The IDs of deleted cellssince the last run cell are stored asdeletedCells inNotebookModel. This helps in developing reactive kernels.(#5037)

  • TheToolbarButton inapputils has been refactored with an APIchange and now uses a React componentToolbarButtonComponent torender its children. It is now adiv with a singlebutton child,which in turn as twospan elements for an icon and text label.Extensions that were using theclassName options should rename itasiconClassName. TheclassName options still exists, but itused as the CSS class on thebutton element itself. The APIchanges were done to accommodate styling changes to the button.(#5117)

  • TheToolbar.createFromCommand function has been replaced by adedicatedToolbarButton subclass calledCommandToolbarButton,that wraps a similarly named React component.(#5117)

  • The design and styling of the right and left sidebars tabs has beenimproved to address#5054. We arenow using icons to render tabs for the extensions we ship withJupyterLab and extension authors are encouraged to do the same (textlabels still work). Icon based tabs can be used by removingwidget.caption and addingwidget.iconClass='<youriconclass>jp-SideBar-tabIcon';.(#5117)

  • The style of buttons in JupyterLab has been updated to a borderlessdesign.(#5117)

  • A new series of helper CSS classes for styling SVG-based icons atdifferent sizes has been added:jp-Icon,jp-Icon-16,jp-Icon-18,jp-Icon-20.

  • The rank of the default sidebar widget has been updated. The mainchange is giving the extension manager a rank of1000 so that itappears at the end of the default items.

  • Python 3.5+ is now required to use JupyterLab. Python 2 kernels canstill be run within JupyterLab.(#5119)

  • JupyterLab now usesyarn1.9.4 (aliased asjlpm), which nowallows uses to use Node 10+.(#5121)

  • Clean up handling ofbaseUrl andwsURL forPageConfig andServerConnection.(#5111)

Other Changes#

  • Added the pipe (|) character as a CSV delimiter option.(#5112)

  • AddedOpenFromPath... to top levelFile menu.(#5108)

  • Added asaveState signal to the document context object.(#5096)

  • Added “Copy Download Link” to context menu for files.(#5089)

  • Extensions marked asdeprecated are no longer shown in theextension manager.(#5058)

  • RemoveIn andOut text from cell prompts. Shrunk the promptwidth from 90px to 64px. In the light theme, set the prompt colorsof executed console cells to active prompt colors and reduced theiropacity to 0.5. In the dark theme, set the prompt colors of executedconsole cells to active prompt colors and set their opacity to 1.(#5097 and#5130)

Bug Fixes#

  • Fixed a bug in the rendering of the “New Notebook” item of thecommand palette.(#5079)

  • We only create the extension manager widget if it is enabled. Thisprevents unnecessary network requests tonpmjs.com.(#5075)

  • Therunning panel now shows the running sessions at startup.(#5118)

  • Double clicking a file in the file browser always opens it ratherthan sometimes selecting it for a rename.(#5101)

v0.33.0#

July 26, 2018#

See theJupyterLab0.33.0milestone on GitHub for the full list of pull requests and issuesclosed.

Key Features:#

No longer in beta#

In JupyterLab 0.33, we removed the “Beta” label to better signal thatJupyterLab is ready for users to use on a daily basis. The extensiondeveloper API is still being stabilized. See the release blog post fordetails.(#4898,#4920)

Workspaces#

We added new workspace support, which enables you to have multiple savedlayouts, including in different browser windows. See theworkspacedocumentation for more details.(#4502,#4708,#4088,#4041#3673,#4780)

Menu items#

  • “Activate Previously Used Tab” added to the Tab menu(Ctrl/CmdShift') to toggle between the previously active tabs inthe main area.(#4296)

  • “Reload From Disk” added to the File menu to reload an open filefrom the state saved on disk.(#4615)

  • “Save Notebook with View State” added to the File menu to persistthe notebook collapsed and scrolled cell state. We now read thecollapsed,scrolled,jupyter.source_hidden andjupyter.outputs_hidden notebook cell metadata when opening.collapsed andjupyter.outputs_hidden are redundant and theinitial collapsed state is the union of both of them. When the stateis persisted, if an output is collapsed, both will be written withthe valuetrue, and if it is not, both will not be written.(#3981)

  • “Increase/Decrease Font Size” added to the text editor settingsmenu. (#4811)

  • “Show in File Browser” added to a document tab’s context menu.(#4500)

  • “Open in New Browser Tab” added to the file browser context menu.(#4315)

  • “Copy Path” added to file browser context menu to copy thedocument’s path to the clipboard.(#4582)

  • “Show Left Area” has been renamed to “Show Left Sidebar” forconsistency (same for right sidebar).(#3818)

Keyboard shortcuts#

  • “Save As…” given the keyboard shortcutCtrl/CmdShiftS.(#4560)

  • “Run All Cells” given the keyboard shortcutCtrl/CmdShiftEnter.(#4558)

  • “notebook:change-to-cell-heading-X” keyboard shortcuts (andcommands) renamed to “notebook:change-cell-to-heading-X” forX=1…6. This fixes the notebook command-mode keyboard shortcuts forchanging headings.(#4430)

  • The console execute shortcut can now be set to eitherEnter orShiftEnter as a Console setting.(#4054)

Command palette items#

  • “Notebook” added to the command palette to open a new notebook.(#4812)

  • “Run Selected Text or Current Line in Console” added to the commandpalette to run the selected text or current line from a notebook ina console. A default keyboard shortcut for this command is not yetprovided, but can be added by users with thenotebook:run-in-console command. To add a keyboard shortcutCtrlG for this command, use the “Settings” | “Advanced SettingsEditor” menu item to open the “Keyboard Shortcuts” advancedsettings, and add the following JSON in the shortcut JSON object inthe User Overrides pane (adjust the actual keyboard shortcut if youwish).(#3453,#4206,#4330)

    {"command":"notebook:run-in-console","keys":["Ctrl G"],"selector":".jp-Notebook.jp-mod-editMode"}
  • The command palette now renders labels, toggled state, and keyboardshortcuts in a more consistent and correct way.(#4533,#4510)

Settings#

  • “fontFamily”, “fontSize”, and “lineHeight” settings added to thetext editor advanced settings.(#4673)

  • Solarized dark and light text editor themes from CodeMirror.(#4445)

Larger file uploads#

  • Support for larger file uploads (>15MB) when using Jupyter notebookserver version >= 5.1.(#4224)

Extension management and installation#

  • New extension manager for installing JupyterLab extensions from npmwithin the JupyterLab UI. You can enable this from the AdvancedSettings interface.(#4682,#4925)

  • Please note that to install extensions in JupyterLab, you must useNodeJS version 9 or earlier (i.e., not NodeJS version 10). We willupgrade yarn, with NodeJS version 10 support, when abug inyarn is fixed.(#4804)

Interface changes#

  • Wider tabs in the main working area to show longer filenames.(#4801)

  • Initial kernel selection for a notebook or console can no longer becanceled: the user must select a kernel.(#4596)

  • Consoles now do not display output from other clients by default. Anew “Show All Kernel Activity” console context menu item has beenadded to show all activity from a kernel in the console.(#4503)

  • The favicon now shows the busy status of the kernels in JupyterLab.(#4361,#3957,#4966)

Renderers#

  • JupyterLab now ships with a Vega4 renderer by default (upgraded fromVega3).(#4806)

  • The HTML sanitizer now allows some extra tags in rendered HTML,includingkbd,sup, andsub.(#4618)

  • JupyterLab now recognizes the.tsv file extension as tab-separatedfiles.(#4684)

  • Javascript execution in notebook cells has been re-enabled.(#4515)

Changes for developers#

  • A new signal for observing application dirty status state changes.(#4840)

  • A new signal for observing notebook cell execution.(#4740,#4744)

  • A newanyMessage signal for observing any message a kernel sendsor receives.(#4437)

  • A generic way for different widgets to register a “Save with extras”command that appears in the File menu under save.(#3981)

  • A new API for removing groups from a JupyterLab menu.addGroup nowreturns anIDisposable which can be used to remove the group.removeGroup has been removed.(#4890)

  • TheLauncher now uses commands from the applicationCommandRegistry to launch new activities. Extension authors thatadd items to the launcher will need to update them to use commands.(#4757)

  • There is now a top-leveladdToBottomArea function in theapplication, allowing extension authors to add bottom panel itemslike status bars.(#4752)

  • Rendermime extensions can now indicate that they are the defaultrendered widget factory for a file-type. For instance, the defaultwidget for a markdown file is a text editor, but the defaultrendered widget is the markdown viewer.(#4692)

  • Add new workspace REST endpoints tojupyterlab_server and makethem available in@jupyterlab/services.(#4841)

  • Documents created with a mimerenderer extension can now be accessedusing anIInstanceTracker which tracks them. Include the tokenIMimeDocumentTracker in your plugin to access this. TheIInstanceTracker interface has also gained convenience functionsfind andfilter to simplify iterating over instances.(#4762)

  • RenderMime render errors are now displayed to the user.(#4465)

  • getNotebookVersion is added to thePageConfig object.(#4224)

  • The sessionkernelChanged signal now contains both the old kerneland the new kernel to make it easy to unregister things from the oldkernel.(#4834)

  • TheconnectTo functions for connecting to kernels and sessions arenow synchronous (returning a connection immediately rather than apromise). The DefaultSessionclone andupdate methods are alsosynchronous now.(#4725)

  • Kernel message processing is now asynchronous, which guarantees theorder of processing even if a handler is asynchronous. If a kernelmessage handler returns a promise, kernel message processing ispaused until the promise resolves. The kernel’sanyMessage signalis emitted synchronously when a message is received beforeasynchronous message handling, and theiopubMessage andunhandledMessage signals are emitted during asynchronous messagehandling. These changes mean that the commonMsg andonClosehandlers and the kernel futureonReply,onIOPub, andonStdinhandlers, as well as the comm target and message hook handlers, maybe asynchronous and return promises.(#4697)

  • Kernel comm targets and message hooks now are unregistered withremoveCommTarget andremoveMessageHook, instead of usingdisposables. The correspondingregisterCommTarget andregisterMessageHook functions now return nothing.(#4697)

  • The kernelconnectToComm function is synchronous, and now returnsthe comm rather than a promise to the comm.(#4697)

  • TheKernelFutureHandler classexpectShell constructor argumentis renamed toexpectReply.(#4697)

  • The kernel futuredone returned promise now resolves to undefinedif there is no reply message.(#4697)

  • TheIDisplayDataMsg is updated to have the optionaltransientkey, and a newIUpdateDisplayDataMsg type was added for updatedisplay messages.(#4697)

  • Theuuid function from@jupyterlab/coreutils is removed. InsteadimportUUID from@phosphor/coreutils and useUUID.uuid4() .(#4604)

  • Main area widgets like the launcher and console inherit from acommonMainAreaWidget class which provides a content area(.content) and a toolbar (.toolbar), consistent focus handlingand activation behavior, and a spinner displayed until the givenreveal promise is resolved. Document widgets, like the notebookand text editor and other documents opened from the documentmanager, implement theIDocumentWidget interface (instead ofDocumentRegistry.IReadyWidget), which builds onMainAreaWidgetand adds a.context attribute for the document context and makesdirty handling consistent. Extension authors may consider inheritingfrom theMainAreaWidget orDocumentWidget class for consistency.Several effects from these changes are noted below.(#3499,#4453)

    • The notebook panel.notebook attribute is renamed to.content.

    • The text editor is now the.content of aDocumentWidget, sothe top-level editor widget has a toolbar and the editor itselfiswidget.content.editor rather than justwidget.editor.

    • Mime documents use aMimeContent widget embedded inside of aDocumentWidget now.

    • Main area widgets and document widgets now have arevealedpromise which resolves when the widget has been revealed (i.e.,the spinner has been removed). This should be used instead oftheready promise.

Changes in the JupyterLab code infrastructure include:

  • The JupyterLab TypeScript codebase is now compiled to ES2015 (ES6)using TypeScript 2.9. We also turned on the TypeScriptesModuleInterop flag to enable more natural imports fromnon-es2015 JavaScript modules. With the update to ES2015 output,code generated from async/await syntax became much more manageable,so we have started to use async/await liberally throughout thecodebase, especially in tests. Because we use Typedoc for APIdocumentation, we still use syntax compatible with TypeScript 2.7where Typedoc is used. Extension authors may have some minorcompatibility updates to make. If you are writing an extension inTypeScript, we recommend updating to TypeScript 2.9 and targetingES2015 output as well.(#4462,#4675,#4714,#4797)

  • The JupyterLab codebase is now formatted usingPrettier. By default thedevelopment environment installs a pre-commit hook that formats yourstaged changes.(#4090)

  • Updated build infrastructure using webpack 4 and better typing.(#4702,#4698)

  • Upgraded yarn to version 1.6. Please note that you must use NodeJSversion 9 or earlier with JupyterLab (i.e., not NodeJS version 10).We will upgrade yarn, with NodeJS version 10 support, when abug inyarn is fixed.(#4804)

  • Various process utilities were moved tojupyterlab_server.(#4696)

Other fixes#

  • Fixed a rendering bug with the Launcher in single-document mode.(#4805)

  • Fixed a bug where the native context menu could not be triggered ina notebook cell in Chrome.(#4720)

  • Fixed a bug where the cursor would not show up in the dark theme.(#4699)

  • Fixed a bug preventing relative links from working correctly inalternateIDrives.(#4613)

  • Fixed a bug breaking the image viewer upon saving the image.(#4602)

  • Fixed the font size for code blocks in notebook Markdown headers.(#4617)

  • Prevented a memory leak when repeatedly rendering a Vega chart.(#4904)

  • Support dropped terminal connection re-connecting.(#4763,#4802)

  • Userequire.ensure invega4-extension to lazily loadvega-embed and its dependencies on first render.(#4706)

  • Relative links to documents that include anchor tags will nowcorrectly scroll the document to the right place.(#4692)

  • Fix default settings JSON in setting editor.(#4591,#4595)

  • Fix setting editor pane layout’s stretch factor.(#2971,#4772)

  • Programmatically set settings are now output with nicer formatting.(#4870)

  • Fixed a bug in displaying one-line CSV files.(#4795,#4796)

  • Fixed a bug where JSON arrays in rich outputs were collapsed intostrings.(#4480)

Beta 2 (v0.32.0)#

Apr 16, 2018#

This is the second in the JupyterLab Beta series of releases. Itcontains many enhancements, bugfixes, and refinements, including:

  • Better handling of a corrupted or invalid state database.(#3619,#3622,#3687,#4114).

  • Fixing file dirty status indicator.(#3652).

  • New option for whether to autosave documents.(#3734).

  • More commands in the notebook context menu.(#3770,#3909)

  • Defensively checking for completion metadata from kernels.(#3888)

  • New “Shutdown all” button in the Running panel.(#3764)

  • Performance improvements wherein non-focused documents poll theserver less.(#3931)

  • Changing the keyboard shortcut for singled-document-mode tosomething less easy to trigger.(#3889)

  • Performance improvements for rendering text streams, especiallyaround progress bars.(#4045).

  • Canceling a “Restart Kernel” now functions correctly.(#3703).

  • Defer loading file contents until after the application has beenrestored.(#4087).

  • Ability to rotate, flip, and invert images in the image viewer.(#4000)

  • Major performance improvements for large CSV viewing.(#3997).

  • Always show the context menu in the file browser, even for an emptydirectory.(#4264).

  • Handle asynchronous comm messages in the services library morecorrectly (Note: this means@jupyterlab/services is now at version2.0!)([#4115](https://github.com/jupyterlab/jupyterlab/pull/4115)).

  • Display the kernel banner in the console when a kernel is restartedto mark the restart([#3663](https://github.com/jupyterlab/jupyterlab/pull/3663)).

  • Many tweaks to the UI, as well as better error handling.

Beta 1 (v0.31.0)#

Jan 11, 2018#

v0.30.0#

Dec 05, 2017#

v0.29.2#

Nov 17, 2017#

Bug fix for file browser right click handling.jupyterlab/jupyterlab#3019

v0.29.0#

Nov 09, 2017#

  • Create new view of cell in cell context menu.#3159

  • New Renderers for VDOM and JSON mime types and files.#3157

  • Switch to React for our VDOM implementation. Affects theVDomRenderer class.#3133

  • Standalone Cell Example.#3155

v0.28.0#

Oct 16, 2017#

This release generally focuses on developer and extension authorenhancements and general bug fixes.

  • Plugin id and schema file conventions change.jupyterlab/jupyterlab#2936.

  • Theme authoring conventions change.#3061

  • Enhancements to enabling and disabling of extensions.#3078

  • Mime extensions API change (name ->id and new namingconvention).#3078

  • Added ajupyterlab--watch mode for extension authors.#3077

  • New comprehensive extension authoring tutorial.#2921

  • Added the ability to use an alternate LaTeX renderer.#2974

  • Numerous bug fixes and style enhancements.

v0.27.0#

Aug 23, 2017#

v0.26.0#

Jul 21, 2017#

v0.25.0#

Jul 07, 2017#

v0.24.0#

Jun 16, 2017#

  • Overhaul of the launcher.#2380

  • Initial implementation of client-side settings system.#2157

  • Updatable outputs.#2439

  • Use new Phosphor Datagrid for CSV viewer.#2433

  • Added ability to enable/disable extensions without rebuilding.#2409

  • Added language and tab settings for the file viewer.#2406

  • Improvements to real time collaboration experience.#2387#2333

  • Compatibility checking for extensions.#2410

  • Numerous bug fixes and style improvements.

v0.23.0#

Jun 02, 2017#

v0.22.0#

May 18, 2017#

v0.20.0#

Apr 21, 2017#

Release Notes:

Numerous bug fixes and improvements.

v0.19.0#

Apr 04, 2017#

Mainly backend-focused release with compatibility with Phosphor 1.0 anda big refactor of session handling (the ClientSession class) thatprovides a simpler object for classes like notebooks, consoles,inspectors, etc. to use to communicate with the API. Also includesimprovements to the development workflow of JupyterLab itself after thebig split.

jupyterlab/jupyterlab#1984jupyterlab/jupyterlab#1927

v0.18.0#

Mar 21, 2017#

v0.17.0#

Mar 01, 2017#

v0.16.0#

Feb 09, 2017#

  • Adds a Cell Tools sidebar that allows you to edit notebook cellmetadata.#1586.

  • Adds keyboard shortcuts to switch between tabs (Cmd/Ctrl LeftArrowand Cmd/Ctrl RightArrow).#1647

  • Upgrades to xterm.js 2.3.#1664

  • Fixes a bug in application config, but lab extensions will need tobe re-enabled.#1607

  • Numerous other bug fixes and style improvements.

On this page

This Page