JupyterLab v2.0.0 Release Notes

  • February 2020

    ๐Ÿš€ Here are some highlights for this release. See the JupyterLab 2.0 milestone on GitHub for the full list of pull requests and issues closed.

    ๐Ÿ‘‰ User-facing changes

    • ๐Ÿ†• New user interface for notebook cell tags (#7407, #7786)
    • ๐Ÿ’ป File info display when hovering on a file in the file browser (#7485, #7352)
    • ๐Ÿ‘Œ Support for searching outputs in notebooks (#7258)
    • ๐Ÿšš Ctrl Shift . and Ctrl Shift , shortcuts move focus to the next and previous tab bar in the main area, respectively (#7673)

    • Shift Home and Shift End shortcuts in a notebook select all cells from the current cell to the top or bottom of a notebook, respectively (#7177)

    • Explicit \"No Kernel\" button in the kernel selection dialog for new notebooks (#7647)

    • Notebook recordTiming advanced setting to control whether execution timing information is stored in notebook files (#7578)

    • \"Select current running or last run cell\" command added (requires notebook recordTiming advanced setting to be set to true) (#7551)

    • Codemirror lineWiseCopyCut advanced setting to control the behavior of the copy/cut keyboard shortcuts when there is no selection (#7842)

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

    • ๐Ÿ’ป \"New File\" and \"New Markdown File\" items in file browser context menu (#7483, #4280)

    • \"Download\" item in File menu (#7480)

    • \"Restart Kernel and Run up to Selected Cell\" item in notebook Kernel menu (#7789, #6746)

    • In extension manager, the \"enable\" button is now only shown for installed extensions (#7482)

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

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

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

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

    • ๐Ÿง Optional platform-aware keyboard shortcut fields linuxKeys, macKeys, and winKeys in keyboard shortcut definitions (#7589)

      {
        command: "application:toggle-mode",
        selector: "body",
        linuxKeys: ["Ctrl Shift M"], // only linux
        macKeys: ["Cmd Shift Z"], // only mac
        winKeys: ["Ctrl Shift B"], // only windows
        keys: ["Accel Shift U"] // default shortcut
      }
    
    • โž• Added options for jupyter lab clean to clean specific parts of the build, such as --extensions, --settings, --static, and --all (#7583, #6734)

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

    • 0๏ธโƒฃ JupyterHub users should use the c.Spawner.default_url = '/lab' setting instead of the deprecated and now removed labhubapp (#7724)

    For developers

    ๐Ÿ‘€ See extension_migration for help in migrating extensions to JupyterLab 2.0.

    Backward incompatible changes

    • Switch from @phosphor to @lumino dependencies. (#7582, #7534, #7763, #7762, #7595)
    • ๐Ÿ“ฆ Factor out the settingsregistry and statedb packages from coreutils (#7681, #7615)
    • Rework services architecture (sessions, kernels, terminals). Among these changes, ClientSession is renamed to SessionContext and the IKernelConnection.connectToComm method is replaced with IKernelConnection.createComm and IKernelConnection.hasComm methods. (#7252, #7674, #7820, #7694, #7690, #7682)
    • โฌ†๏ธ Upgrade to TypeScript 3.7 (#7522)
    • โœ‚ Remove polling 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 the Running 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 the currently 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 to ui-components (#7588, #6799)
    • โž• Add explicit documentation encouraging people to re-use lab components (#7543)
    • Enable TypeScript sourcemaps for debugging locally installed labextensions (#7541)
    • โž• Add UseSignal example to the docs (#7519)
    • โž• Add env 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 for phosphor (#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 extensions supporting multiple major versions of JupyterLab (#7723, #7241, #7919)
    • โšก๏ธ Teach update-dependency about more range specifiers and make it adopt 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 now properly 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 default memory ceilings (#7677, #7675)
    • 0๏ธโƒฃ 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 element type (#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 is set (#7311, #5443)
    • ๐Ÿ›  Fix context menu hit test to deal with SVG nodes. (#7242, #7224)
    • ๐Ÿ›  Fix overwriting of target attribute of anchors rendered by IPython.display (#7215, #6827)
    • ๐Ÿ›  Fix file browser location in tree view (#7155)
    • Stop too many fetch calls in docmanager-extension (#7879, #7874)
    • Ensures that Shift Tab dedent shortcut works correctly in the file editor (#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 default app_dir when app_dir is '' (#7268, #7264)