Elixirnote

Latest version: v4.0.0a30

Safety actively analyzes 638418 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 17 of 20

1.1.0

August 28, 2019

Here are some highlights of what is in this release. See the [JupyterLab
1.1.0](https://github.com/jupyterlab/jupyterlab/milestone/31?closed=1)
milestone on GitHub for the full list of pull requests and issues
closed.

User-facing changes

- `jupyter lab build` now has a `--minimize=False` option to build
without minimization to conserve memory and time
([6907](https://github.com/jupyterlab/jupyterlab/pull/6907))
- Fix workspace reset functionality
([7106](https://github.com/jupyterlab/jupyterlab/pull/7106),
[7105](https://github.com/jupyterlab/jupyterlab/issues/7105))
- Restore behavior of the \"raises-exception\" cell tag
([7020](https://github.com/jupyterlab/jupyterlab/pull/7020),
[7015](https://github.com/jupyterlab/jupyterlab/issues/7015))
- Add settings to override theme font sizes
([6926](https://github.com/jupyterlab/jupyterlab/pull/6926))
- Accept query parameter to optionally change file browser location
([6875](https://github.com/jupyterlab/jupyterlab/pull/6875))
- Pressing escape in the console should switch out of edit mode
([6822](https://github.com/jupyterlab/jupyterlab/pull/6822))
- Fix file browser downloads in Google Chrome
([6686](https://github.com/jupyterlab/jupyterlab/pull/6686))
- Make it possible to override the default widgets to view a file
([6813](https://github.com/jupyterlab/jupyterlab/pull/6813),
[4048](https://github.com/jupyterlab/jupyterlab/issues/4048))
- Support installing multiple versions of the same extension
([6857](https://github.com/jupyterlab/jupyterlab/pull/6857))
- Support JupyterHub server name for JupyterHub 1.0
([6931](https://github.com/jupyterlab/jupyterlab/pull/6931))
- Add docs to help users diagnose issues before creating them
([6971](https://github.com/jupyterlab/jupyterlab/pull/6971))
- The JupyterLab conda-forge package is now a `noarch`
package. If you are using JupyterLab with `notebook`
version 5.2 or earlier, you may need to manually enable the
JupyterLab server extension. See the issue for more details
([7042](https://github.com/jupyterlab/jupyterlab/issues/7042))

For developers

- Expose install_kernel for tests so that outside projects can better
use the testing framework
([7089](https://github.com/jupyterlab/jupyterlab/pull/7089))
- Fix `comm_info_request` content to conform to the Jupyter message
specification in a backwards-compatible way
([6949](https://github.com/jupyterlab/jupyterlab/pull/6949),
[6947](https://github.com/jupyterlab/jupyterlab/issues/6947))
- Add yarn package resolution to build to constrain core package
versions to patch semver ranges
([6938](https://github.com/jupyterlab/jupyterlab/pull/6938))
- Make handling comm messages optional in a kernel connection.
([6929](https://github.com/jupyterlab/jupyterlab/pull/6929))
- Expose icon svg to theme css
([6034](https://github.com/jupyterlab/jupyterlab/pull/6034),
[7027](https://github.com/jupyterlab/jupyterlab/pull/7027))
- Expose convenience functions for open dialogs
([6366](https://github.com/jupyterlab/jupyterlab/pull/6366),
[6365](https://github.com/jupyterlab/jupyterlab/issues/6365))
- Add debug messages to possible kernel messages
([6704](https://github.com/jupyterlab/jupyterlab/pull/6704))
- Add server side coreconfig object
([6991](https://github.com/jupyterlab/jupyterlab/pull/6991))

Bug fixes

- Handle errors that occur during kernel selection
([7094](https://github.com/jupyterlab/jupyterlab/pull/7094))
- Fix escaping issues for page config and other template variables
([7016](https://github.com/jupyterlab/jupyterlab/pull/7016),
[7024](https://github.com/jupyterlab/jupyterlab/issues/7024),
[7061](https://github.com/jupyterlab/jupyterlab/pull/7061),
[7058](https://github.com/jupyterlab/jupyterlab/issues/7058),
[6858](https://github.com/jupyterlab/jupyterlab/issues/6858))
- Require jinja2 2.10+ to fix escaping issues
([7055](https://github.com/jupyterlab/jupyterlab/pull/7055),
[7053](https://github.com/jupyterlab/jupyterlab/issues/7053))
- Increase the search debounce from 100ms to 500ms to increase
incremental search responsiveness in large documents
([7034](https://github.com/jupyterlab/jupyterlab/pull/7034))
- Fix vega downloads and download urls in general
([7022](https://github.com/jupyterlab/jupyterlab/pull/7022),
[7017](https://github.com/jupyterlab/jupyterlab/issues/7017),
[7098](https://github.com/jupyterlab/jupyterlab/pull/7098),
[7047](https://github.com/jupyterlab/jupyterlab/issues/7047))
- Do not complain in the build about duplicate or optional packages
([7013](https://github.com/jupyterlab/jupyterlab/pull/7013))
- Fix contextual help layout for R help
([6933](https://github.com/jupyterlab/jupyterlab/pull/6933),
[6935](https://github.com/jupyterlab/jupyterlab/pull/6935))

1.0.0

June 28, 2019

See the [JupyterLab
1.0.0](https://github.com/jupyterlab/jupyterlab/milestone/2?closed=1)
milestone on GitHub for the full list of pull requests and issues closed
in 1.0.0, and other 1.0.x milestones for bugs fixed in patch releases.

Find and Replace

<img alt="A notebook with multiple cells and the find and replace interface in the upper right." src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/3.1.x/docs/source/getting_started/find.png" class="jp-screenshot">

We have added first class support for find and replace across
JupyterLab. It is currently supported in notebooks and text files and is
extensible for other widgets who wish to support it.
([6350](https://github.com/jupyterlab/jupyterlab/pull/6350),
[6322](https://github.com/jupyterlab/jupyterlab/issues/6322),
[6301](https://github.com/jupyterlab/jupyterlab/pull/6301),
[6282](https://github.com/jupyterlab/jupyterlab/pull/6282),
[6256](https://github.com/jupyterlab/jupyterlab/pull/6256),
[6241](https://github.com/jupyterlab/jupyterlab/pull/6241),
[6237](https://github.com/jupyterlab/jupyterlab/pull/6237),
[6159](https://github.com/jupyterlab/jupyterlab/pull/6159),
[6081](https://github.com/jupyterlab/jupyterlab/issues/6081),
[6155](https://github.com/jupyterlab/jupyterlab/pull/6155),
[6094](https://github.com/jupyterlab/jupyterlab/pull/6094),
[6024](https://github.com/jupyterlab/jupyterlab/pull/6024),
[5937](https://github.com/jupyterlab/jupyterlab/pull/5937),
[5795](https://github.com/jupyterlab/jupyterlab/pull/5795),
[1074](https://github.com/jupyterlab/jupyterlab/issues/1074))

Status Bar

<img alt="A screenshot of the updated JupyterLab status bar." src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/3.1.x/docs/source/getting_started/statusbar.png" class="jp-screenshot">

We have integrated the [JupyterLab Status Bar
package](https://github.com/jupyterlab/jupyterlab-statusbar) package
into the core distribution. Extensions can add their own status to it as
well ([5577](https://github.com/jupyterlab/jupyterlab/pull/5577),
[5525](https://github.com/jupyterlab/jupyterlab/pull/5525)
[5990](https://github.com/jupyterlab/jupyterlab/pull/5990),
[5982](https://github.com/jupyterlab/jupyterlab/issues/5982),
[5514](https://github.com/jupyterlab/jupyterlab/pull/5514),
[5508](https://github.com/jupyterlab/jupyterlab/pull/5508),
[5352](https://github.com/jupyterlab/jupyterlab/issues/5352)).

JupyterHub Integration

- We now include the JupyterHub extension in core JupyterLab, so you
no longer need to install `jupyterlab/hub-extension`.
([6451](https://github.com/jupyterlab/jupyterlab/pull/6451),
[6428](https://github.com/jupyterlab/jupyterlab/issues/6428))
- JupyterLab now has a File \> Logout menu entry when running with
JupyterHub
([6087](https://github.com/jupyterlab/jupyterlab/pull/6087),
[5966](https://github.com/jupyterlab/jupyterlab/issues/5966))

Printing

We now have a printing system that allows extensions to customize how
documents and activities are printed.
([5850](https://github.com/jupyterlab/jupyterlab/pull/5850),
[1314](https://github.com/jupyterlab/jupyterlab/issues/1314))

Other User Facing Changes

- The launcher displays longer kernel names and supports keyboard
navigation
([6587](https://github.com/jupyterlab/jupyterlab/pull/6587))
- Notebook outputs without any valid MimeType renderers will not be
displayed, instead of displaying an error
([6559](https://github.com/jupyterlab/jupyterlab/pull/6559),
[6216](https://github.com/jupyterlab/jupyterlab/issues/6216))
- Add tooltip to file browser root breadcrumb icon showing the server
root, if it is available
([6552](https://github.com/jupyterlab/jupyterlab/pull/6552))
- Downloading a file will no longer open a new browser window
([6546](https://github.com/jupyterlab/jupyterlab/pull/6546))
- Rename the help \"Inspector\" to \"Contextual Help\" and move it to
the \"Help\" menu
([6493](https://github.com/jupyterlab/jupyterlab/pull/6493),
[6488](https://github.com/jupyterlab/jupyterlab/issues/6488),
[6678](https://github.com/jupyterlab/jupyterlab/pull/6678),
[6671](https://github.com/jupyterlab/jupyterlab/pull/6671))
- Update many of the icons to make them more consistent
([6672](https://github.com/jupyterlab/jupyterlab/pull/6672),
[6618](https://github.com/jupyterlab/jupyterlab/issues/6618),
[6664](https://github.com/jupyterlab/jupyterlab/pull/6664),
[6621](https://github.com/jupyterlab/jupyterlab/issues/6621))
- Update the settings UI to remove the table view
([6654](https://github.com/jupyterlab/jupyterlab/pull/6654),
[6622](https://github.com/jupyterlab/jupyterlab/issues/6622),
[6653](https://github.com/jupyterlab/jupyterlab/pull/6653),
[6623](https://github.com/jupyterlab/jupyterlab/issues/6623),
[6646](https://github.com/jupyterlab/jupyterlab/pull/6646),
[6642](https://github.com/jupyterlab/jupyterlab/issues/6642))
- Replace FAQ Extension with link to JupyterLab documentation
([6628](https://github.com/jupyterlab/jupyterlab/pull/6628),
[6608](https://github.com/jupyterlab/jupyterlab/issues/6608),
[6625](https://github.com/jupyterlab/jupyterlab/pull/6625),
[6610](https://github.com/jupyterlab/jupyterlab/issues/6610))
- Change the default keyboard shortcut for closing a tab to be `Alt+w`
instead of `Cmd/Ctrl+w` to avoid conflicts with operating systems.
([6486](https://github.com/jupyterlab/jupyterlab/pull/6486),
[6357](https://github.com/jupyterlab/jupyterlab/issues/6357))
- Show help text in Inspector window to describe you should select a
function
([6476](https://github.com/jupyterlab/jupyterlab/pull/6476))
- Fixes SVG rendering
([6469](https://github.com/jupyterlab/jupyterlab/pull/6469),
[6295](https://github.com/jupyterlab/jupyterlab/issues/6295))
- Add support for dropping a tab in the tab bar area.
([6454](https://github.com/jupyterlab/jupyterlab/pull/6454),
[5406](https://github.com/jupyterlab/jupyterlab/issues/5406))
- Switch some default shortcuts to use `Accel` instead of `Ctrl` so
they are more natural for Mac users
([6447](https://github.com/jupyterlab/jupyterlab/pull/6447),
[5023](https://github.com/jupyterlab/jupyterlab/issues/5023))
- Add ability to tell between hover and selected command palette items
([6407](https://github.com/jupyterlab/jupyterlab/pull/6407),
[279](https://github.com/jupyterlab/jupyterlab/issues/279))
- Hide the \"Last Modified\" column when the file browser is narrow
([6406](https://github.com/jupyterlab/jupyterlab/pull/6406),
[6093](https://github.com/jupyterlab/jupyterlab/issues/6093))
- Support copy/paste in terminal and Mac OS using `Ctrl+C` and
`Ctrl+V`
([6391](https://github.com/jupyterlab/jupyterlab/pull/6391),
[6385](https://github.com/jupyterlab/jupyterlab/issues/6385),
[1146](https://github.com/jupyterlab/jupyterlab/issues/1146))
- Support scrolling in running kernels panel
([6383](https://github.com/jupyterlab/jupyterlab/pull/6383),
[6371](https://github.com/jupyterlab/jupyterlab/issues/6371))
- Adds ability to \"Merge Selected Cells\" in the context menu in the
notebook
([6375](https://github.com/jupyterlab/jupyterlab/pull/6375),
[6318](https://github.com/jupyterlab/jupyterlab/issues/6318))
- Turn On Accessibility In Xterm.js to make it more compatible for
screen readers
([6359](https://github.com/jupyterlab/jupyterlab/pull/6359))
- When selecting cells using the keyboard shortcuts, we now skip
collapsed cells
([6356](https://github.com/jupyterlab/jupyterlab/pull/6356),
[3233](https://github.com/jupyterlab/jupyterlab/issues/3233))
- Supporting opening `.geojson` files in JSON viewer
([6349](https://github.com/jupyterlab/jupyterlab/pull/6349))
- Performance fixes for text-based progress bars
([6304](https://github.com/jupyterlab/jupyterlab/pull/6304),
[4202](https://github.com/jupyterlab/jupyterlab/issues/4202))
- Add support for rendering Vega 5 and Vega Lite 3 while keeping the
existing Vega 4 and Vega Lite 2 renderers
([6294](https://github.com/jupyterlab/jupyterlab/pull/6294),
[6133](https://github.com/jupyterlab/jupyterlab/pull/6133),
[6128](https://github.com/jupyterlab/jupyterlab/issues/6128),
[6689](https://github.com/jupyterlab/jupyterlab/pull/6689),
[6685](https://github.com/jupyterlab/jupyterlab/pull/6685),
[6684](https://github.com/jupyterlab/jupyterlab/issues/6684),
[6675](https://github.com/jupyterlab/jupyterlab/issues/6675),
[6591](https://github.com/jupyterlab/jupyterlab/pull/6591),
[6572](https://github.com/jupyterlab/jupyterlab/issues/6572))
- Drag and drop console cells into a notebook or text editor
([5585](https://github.com/jupyterlab/jupyterlab/pull/5585),
[4847](https://github.com/jupyterlab/jupyterlab/issues/4847))
- Drag and drop notebook cells into a console or text editor
([5571](https://github.com/jupyterlab/jupyterlab/pull/5571),
[3732](https://github.com/jupyterlab/jupyterlab/issues/3732))
- The extension manager search now sorts extensions by the score
assigned to them by NPM instead of alphabetically
([5649](https://github.com/jupyterlab/jupyterlab/pull/5649))
- Notify the user when a kernel is automatically restarted, for
example, if crashes from an out of memory error
([6246](https://github.com/jupyterlab/jupyterlab/pull/6246),
[4273](https://github.com/jupyterlab/jupyterlab/issues/4273))
- Expose the extension manager in a command and menu item
([6200](https://github.com/jupyterlab/jupyterlab/pull/6200))
- Add command to render all Markdown cells
([6029](https://github.com/jupyterlab/jupyterlab/pull/6029),
[6017](https://github.com/jupyterlab/jupyterlab/issues/6017))
- Supports using shift to select text in output area
([6015](https://github.com/jupyterlab/jupyterlab/pull/6015),
[4800](https://github.com/jupyterlab/jupyterlab/issues/4800))
- Output areas that opened in new views are restored properly now on
reload
([5981](https://github.com/jupyterlab/jupyterlab/pull/5981),
[5976](https://github.com/jupyterlab/jupyterlab/issues/5976))
- Add support for managing notebook metadata under a new \"Advanced
Tools\" section in the cell tools area. The cell and notebook
metadata now always reflect the current state of the notebook
([5968](https://github.com/jupyterlab/jupyterlab/pull/5968),
[5200](https://github.com/jupyterlab/jupyterlab/issues/5200))
- Inherit terminal theme from core theme
([5964](https://github.com/jupyterlab/jupyterlab/pull/5964))
- Adds a built-in HTML viewer so that you can view HTML files
([5962](https://github.com/jupyterlab/jupyterlab/pull/5962),
[5855](https://github.com/jupyterlab/jupyterlab/pull/5855),
[2369](https://github.com/jupyterlab/jupyterlab/issues/2369))
- New workspaces are now automatically generated when you create a new
window with the same workspace name.
([5950](https://github.com/jupyterlab/jupyterlab/pull/5950),
[5854](https://github.com/jupyterlab/jupyterlab/issues/5854),
[5830](https://github.com/jupyterlab/jupyterlab/pull/5830),
[5214](https://github.com/jupyterlab/jupyterlab/issues/5214))
- We now add a hint to the context menu to describe how you can access
the native browser menu
([5940](https://github.com/jupyterlab/jupyterlab/pull/5940),
[4023](https://github.com/jupyterlab/jupyterlab/issues/4023))
- The tabs on the left panel have changed to make them more
understandable
([5920](https://github.com/jupyterlab/jupyterlab/pull/5920),
[5269](https://github.com/jupyterlab/jupyterlab/issues/5269))
- Start a new terminal when the page is refreshed and the old terminal
has died
([5917](https://github.com/jupyterlab/jupyterlab/pull/5917))
- Add a command to open the main menus, which can be assigned to a
keyboard shortcut to open and navigate menus without a mouse
([5910](https://github.com/jupyterlab/jupyterlab/pull/5910),
[3074](https://github.com/jupyterlab/jupyterlab/issues/3074))
- The contextual help now updates based on changes in the cursor from
the mouse instead of just from the keyboard
([5906](https://github.com/jupyterlab/jupyterlab/pull/5906),
[5899](https://github.com/jupyterlab/jupyterlab/issues/5899))
- The launcher now updates when the kernels change on the server
([5904](https://github.com/jupyterlab/jupyterlab/pull/5904),
[5676](https://github.com/jupyterlab/jupyterlab/issues/5676))
- Retain cell auto scroll behavior even when a cell output is cleared
([5817](https://github.com/jupyterlab/jupyterlab/pull/5817),
[4028](https://github.com/jupyterlab/jupyterlab/issues/4028))
- If you link to a relative path that is not a file in a markdown
cell, this will now be preserved instead of changing it to a file
URL ([5814](https://github.com/jupyterlab/jupyterlab/pull/5814))
- Adds the ability to link to a certain row in a CSV file and have the
viewer open to that row
([5727](https://github.com/jupyterlab/jupyterlab/pull/5727),
[5720](https://github.com/jupyterlab/jupyterlab/issues/5720))
- We have improved the performance of switching to a large notebook
([5700](https://github.com/jupyterlab/jupyterlab/pull/5700),
[4292](https://github.com/jupyterlab/jupyterlab/issues/4292),
[2639](https://github.com/jupyterlab/jupyterlab/issues/2639))
- The vdom extension now supports event handling, so that you can have
kernel code run in response to user interaction with the UI
([5670](https://github.com/jupyterlab/jupyterlab/pull/5670))
- Adds the ability to run \"Run All Code\" and \"Restart Kernel and
Run All Code\" in code and markdown files
([5641](https://github.com/jupyterlab/jupyterlab/pull/5641),
[5579](https://github.com/jupyterlab/jupyterlab/issues/5579))
- We now remember what line ending a text file has when loading it, so
that files with `CRLF` line endings will properly be saved with the
same endings
([5622](https://github.com/jupyterlab/jupyterlab/pull/5622),
[4464](https://github.com/jupyterlab/jupyterlab/issues/4464),
[3901](https://github.com/jupyterlab/jupyterlab/issues/3901),
[3706](https://github.com/jupyterlab/jupyterlab/issues/3706))
- Fixes rendering of SVG elements in HTML MimeType output
([5610](https://github.com/jupyterlab/jupyterlab/pull/5610),
[5610](https://github.com/jupyterlab/jupyterlab/issues/5610),
[5589](https://github.com/jupyterlab/jupyterlab/issues/5589))
- Allow copying files by holding down `Ctrl` when dragging them in the
file browser
([5584](https://github.com/jupyterlab/jupyterlab/pull/5584),
[3235](https://github.com/jupyterlab/jupyterlab/issues/3235))
- Switch the hover modified time in the file browser to use the local
format
([5567](https://github.com/jupyterlab/jupyterlab/pull/5567))
- We have added a default keyboard shortcut of `Ctrl Shift Q` for
closing and cleaning up a file
([5534](https://github.com/jupyterlab/jupyterlab/pull/5534),
[4390](https://github.com/jupyterlab/jupyterlab/issues/4390))
- Adds the ability to find and go to a certain line in the CSV viewer
([5523](https://github.com/jupyterlab/jupyterlab/pull/5523))
- Add the ability to create new text and markdown files from the
launcher and command palette
([5512](https://github.com/jupyterlab/jupyterlab/pull/5512),
[5511](https://github.com/jupyterlab/jupyterlab/pull/5511))
- A \"New Folder\" option has been added to the file browser context
menu ([5447](https://github.com/jupyterlab/jupyterlab/pull/5447))
- The ANSI colors are now the same as those in the classic notebook
([5336](https://github.com/jupyterlab/jupyterlab/pull/5336),
[3773](https://github.com/jupyterlab/jupyterlab/issues/3773))
- Send complete statements instead of current lines when stepping
through code in a cell
([6515](https://github.com/jupyterlab/jupyterlab/pull/6515),
[6063](https://github.com/jupyterlab/jupyterlab/pull/6063))
- Description list styles (`dl`, `dt`, `dd`) are improved to be
consistent with the nteract project
([5682](https://github.com/jupyterlab/jupyterlab/pull/5682),
[2399](https://github.com/jupyterlab/jupyterlab/issues/2399))

Settings

- The settings system has been rewritten
([5470](https://github.com/jupyterlab/jupyterlab/pull/5470),
[5298](https://github.com/jupyterlab/jupyterlab/issues/5298)) and
now uses json5 as the syntax, which supports comments and other
features for better human readability
([6343](https://github.com/jupyterlab/jupyterlab/pull/6343),
[6199](https://github.com/jupyterlab/jupyterlab/issues/6199)).
- The keyboard shortcut system has been rewritten and now displays a
list of system commands in the settings comments
([5812](https://github.com/jupyterlab/jupyterlab/pull/5812),
[5562](https://github.com/jupyterlab/jupyterlab/issues/5562)).

There are new settings for many following items, including:

- Adds an option to shut down terminals and notebook kernels when they
are closed
([6285](https://github.com/jupyterlab/jupyterlab/pull/6285),
[6275](https://github.com/jupyterlab/jupyterlab/pull/6275))
- Scrolling past the end of a notebooks and text editor document
([5542](https://github.com/jupyterlab/jupyterlab/pull/5542),
[5271](https://github.com/jupyterlab/jupyterlab/issues/5271),
[5652](https://github.com/jupyterlab/jupyterlab/pull/5652),
[4429](https://github.com/jupyterlab/jupyterlab/issues/4429))
- Text editor code folding, rulers, and active line highlighting
([5761](https://github.com/jupyterlab/jupyterlab/pull/5761),
[4083](https://github.com/jupyterlab/jupyterlab/issues/4083),
[5750](https://github.com/jupyterlab/jupyterlab/pull/5750),
[4179](https://github.com/jupyterlab/jupyterlab/issues/4179),
[5529](https://github.com/jupyterlab/jupyterlab/pull/5529),
[5528](https://github.com/jupyterlab/jupyterlab/issues/5528))
- Markdown viewer options
([5901](https://github.com/jupyterlab/jupyterlab/pull/5901),
[3940](https://github.com/jupyterlab/jupyterlab/issues/3940))
- Terminal scrollback and other settings
([5609](https://github.com/jupyterlab/jupyterlab/pull/5609),
[3985](https://github.com/jupyterlab/jupyterlab/issues/3985))
- The autosave interval
([5645](https://github.com/jupyterlab/jupyterlab/pull/5645),
[5619](https://github.com/jupyterlab/jupyterlab/issues/5619))
- The file browser showing the current active file
([5698](https://github.com/jupyterlab/jupyterlab/pull/5698),
[4258](https://github.com/jupyterlab/jupyterlab/issues/4258))
- Custom scrollbar styling for dark themes
([6026](https://github.com/jupyterlab/jupyterlab/pull/6026),
[4867](https://github.com/jupyterlab/jupyterlab/issues/4867))

Command Line Changes

- Installing extensions will be quieter and adds a `--debug` to
extension installing
([6567](https://github.com/jupyterlab/jupyterlab/pull/6567),
[6499](https://github.com/jupyterlab/jupyterlab/issues/6499),
[5986](https://github.com/jupyterlab/jupyterlab/issues/5986))
- We now support running JupyterLab when its application directory is
a symlink
([6240](https://github.com/jupyterlab/jupyterlab/pull/6240),
[6166](https://github.com/jupyterlab/jupyterlab/issues/6166))
- Add `--all` flag to `labextension uninstall` to remove all
extensions
([6058](https://github.com/jupyterlab/jupyterlab/pull/6058),
[6006](https://github.com/jupyterlab/jupyterlab/issues/6006))
- Adds the ability to override the base URLs from the config
([5518](https://github.com/jupyterlab/jupyterlab/pull/5518),
[5503](https://github.com/jupyterlab/jupyterlab/pull/5503))
- Updates to workspaces CLI command
([6473](https://github.com/jupyterlab/jupyterlab/pull/6473),
[5977](https://github.com/jupyterlab/jupyterlab/issues/5977),
[6276](https://github.com/jupyterlab/jupyterlab/pull/6276),
[6234](https://github.com/jupyterlab/jupyterlab/pull/6234),
[6210](https://github.com/jupyterlab/jupyterlab/issues/6210),
[5975](https://github.com/jupyterlab/jupyterlab/pull/5975),
[5695](https://github.com/jupyterlab/jupyterlab/pull/5695),
[5694](https://github.com/jupyterlab/jupyterlab/issues/5694))

Extension Development Changes

- We have rewritten how extensions provide keyboard shortcuts and
interact with the settings system. If you previously defined
keyboard shortcuts or used the settings mechanism, you will need to
update your extension
([5470](https://github.com/jupyterlab/jupyterlab/pull/5470),
[5298](https://github.com/jupyterlab/jupyterlab/issues/5298))
- We have renamed the plugin type from `JupyterLabPlugin` to
`JupyterFrontEndPlugin`. The application arg is also renamed from
`JupyterLab` to `JupyterFrontEnd` and some its functionality has
been moved to a separate `ILabShell` plugin
([5845](https://github.com/jupyterlab/jupyterlab/pull/5845),
[5919](https://github.com/jupyterlab/jupyterlab/pull/5919))
- The lab shell `addToMainArea`, `addToLeftArea`, `addToTopArea`,
`addToRightArea`, and `addToBottomArea` functions have been replaced
with a single `add()` function that takes the area as an argument.
Replace `addToMainArea(widget, options)` with
`add(widget, 'main', options)`, etc.
([5845](https://github.com/jupyterlab/jupyterlab/pull/5845))
- Rename `pageUrl` to `appUrl` in the server connection
([6509](https://github.com/jupyterlab/jupyterlab/pull/6509),
[6508](https://github.com/jupyterlab/jupyterlab/issues/6508),
[6585](https://github.com/jupyterlab/jupyterlab/pull/6585),
[6584](https://github.com/jupyterlab/jupyterlab/issues/6584))
- `MainAreaWidget` instances now forward update requests to their
`content`
([6586](https://github.com/jupyterlab/jupyterlab/pull/6586),
[6571](https://github.com/jupyterlab/jupyterlab/issues/6571))
- The theme data attributes are renamed and moved to the document body
element. If you are relying on these attributes in CSS to
conditionally style based on the theme, you should update their
names. For example `data-theme-light` is now `data-jp-theme-light`.
([6566](https://github.com/jupyterlab/jupyterlab/pull/6566),
[6554](https://github.com/jupyterlab/jupyterlab/issues/6554))
- Extensions which require CSS should no longer import their CSS files
into their Javascript files. Instead, they should specify a root CSS
file in the `style` attribute in their `package.json`, and
JupyterLab will automatically import that CSS file.
([6533](https://github.com/jupyterlab/jupyterlab/pull/6533),
[6530](https://github.com/jupyterlab/jupyterlab/issues/6530),
[6395](https://github.com/jupyterlab/jupyterlab/pull/6395),
[6390](https://github.com/jupyterlab/jupyterlab/issues/6390))
- `Dialog.prompt` has been replaced by a number of type-specific
dialogs such as `InputDialog.getString`, `InputDialog.getBoolean`,
etc. ([6522](https://github.com/jupyterlab/jupyterlab/pull/6522),
[6378](https://github.com/jupyterlab/jupyterlab/issues/6378),
[6327](https://github.com/jupyterlab/jupyterlab/pull/6327),
[6326](https://github.com/jupyterlab/jupyterlab/issues/6326))
- When a `RenderMime` widget is re-rendered, the default behavior is
to remove any existing content in the DOM. This can be overridden if
needed.
([6513](https://github.com/jupyterlab/jupyterlab/pull/6513),
[6505](https://github.com/jupyterlab/jupyterlab/issues/6505),
[6497](https://github.com/jupyterlab/jupyterlab/issues/6497))
- We have updated our internal TypeScript version to 3.5.1 and our
compile target to `ES2017`. Extensions may need to upgrade their
TypeScript version and target as well.
([6440](https://github.com/jupyterlab/jupyterlab/pull/6440),
[6224](https://github.com/jupyterlab/jupyterlab/pull/6224))
- We have updated the typings for some of the Kernel messages so that
they better match the spec.
([6433](https://github.com/jupyterlab/jupyterlab/pull/6433))
- A `connectionFailure` signal has been added to some of the manager
classes, which can be used to detect when a connection to the server
is lost
([6399](https://github.com/jupyterlab/jupyterlab/pull/6399),
[6176](https://github.com/jupyterlab/jupyterlab/issues/6176),
[3324](https://github.com/jupyterlab/jupyterlab/issues/3324))
- Add rate limiting and polling utilities to `coreutils` to use for
throttling and debouncing of API requests
([6345](https://github.com/jupyterlab/jupyterlab/pull/6345),
[6346](https://github.com/jupyterlab/jupyterlab/issues/6346),
[6401](https://github.com/jupyterlab/jupyterlab/pull/6401),
[6305](https://github.com/jupyterlab/jupyterlab/pull/6305),
[6157](https://github.com/jupyterlab/jupyterlab/issues/6157),
[6192](https://github.com/jupyterlab/jupyterlab/pull/6192),
[6186](https://github.com/jupyterlab/jupyterlab/pull/6186),
[6141](https://github.com/jupyterlab/jupyterlab/pull/6141),
[3929](https://github.com/jupyterlab/jupyterlab/issues/3929),
[6141](https://github.com/jupyterlab/jupyterlab/pull/6141),
[3929](https://github.com/jupyterlab/jupyterlab/issues/3929),
[6186](https://github.com/jupyterlab/jupyterlab/pull/6186),
[6192](https://github.com/jupyterlab/jupyterlab/pull/6192),
[6401](https://github.com/jupyterlab/jupyterlab/pull/6401)
,[6305](https://github.com/jupyterlab/jupyterlab/pull/6305),
[6157](https://github.com/jupyterlab/jupyterlab/issues/6157))
- Require session when instantiating terminal widget
([6339](https://github.com/jupyterlab/jupyterlab/pull/6339),
[5061](https://github.com/jupyterlab/jupyterlab/issues/5061))
- Provides a signal to see what items are opened in a directory
listing
([6270](https://github.com/jupyterlab/jupyterlab/pull/6270),
[6269](https://github.com/jupyterlab/jupyterlab/issues/6269))
- Ads the ability to add widget above the main work area to a top
header area
([5936](https://github.com/jupyterlab/jupyterlab/pull/5936))
- Renames `contextMenuFirst` to `contextMenuHitTest` in the
`JupyterFrontEnd`
([5932](https://github.com/jupyterlab/jupyterlab/pull/5932))
- Removes the `initialCommand` arg from the terminal creation command.
([5916](https://github.com/jupyterlab/jupyterlab/pull/5916))
- Adds `--jp-code-cursor-width0`, `--jp-code-cursor-width1`, and
`--jp-code-cursor-width2` variables to the themes to support
changing the cursor width if you change the font size
([5898](https://github.com/jupyterlab/jupyterlab/pull/5898))
- Adds the ability to insert a new item to the toolbar before or after
another item
([5896](https://github.com/jupyterlab/jupyterlab/pull/5896),
[5894](https://github.com/jupyterlab/jupyterlab/issues/5894))
- Adds the ability for extensions to register new CodeMirror modes
([5829](https://github.com/jupyterlab/jupyterlab/pull/5829))
- We have removed the `JUPYTERLAB_xxx_LOADER` Webpack loaders, instead
you should use the loader directly in the URL as Webpack supports it
([5709](https://github.com/jupyterlab/jupyterlab/pull/5709),
[4406](https://github.com/jupyterlab/jupyterlab/issues/4406))
- Adds the ability to handle fragments for document widgets
([5630](https://github.com/jupyterlab/jupyterlab/pull/5630),
[5599](https://github.com/jupyterlab/jupyterlab/issues/5599))
- We have added a `jupyterlab/ui-components` package that contains
reusable React components to be used internally and in extensions.
Feel free to use this to create extension UIs with consistent styles
([5538](https://github.com/jupyterlab/jupyterlab/pull/5538))
- The `showErrorMessage` function now lets you customize the buttons
it uses
([5513](https://github.com/jupyterlab/jupyterlab/pull/5513))
- We now provide helpers for using React components within JupyterLab.
If you were previously using `ReactElementWidget` you should switch
to using `ReactWidget`.
([5479](https://github.com/jupyterlab/jupyterlab/pull/5479),
[5766](https://github.com/jupyterlab/jupyterlab/issues/5766),
[6595](https://github.com/jupyterlab/jupyterlab/pull/6595),
[6595](https://github.com/jupyterlab/jupyterlab/pull/6595))
- The share link command has been moved to its own extension so that
it can be overridden
([5460](https://github.com/jupyterlab/jupyterlab/pull/5460),
[5388](https://github.com/jupyterlab/jupyterlab/issues/5388))
- Creating a new services session now requires passing a kernel model
instead of a kernel instance
([6503](https://github.com/jupyterlab/jupyterlab/pull/6503),
[6142](https://github.com/jupyterlab/jupyterlab/issues/6142))
- We upgraded the Webpack raw file loader. The new version of the raw
loader exports ES2015 modules, so this may require changes in
extensions that import files using the raw loader. For example, if
you did `require('myfile.md')` to get the content of
`myfile.md` as a string, you now should import it using
ES2015 `import` syntax, or use
`require(\'myfile.md\').default`.
- Widget factories now can support custom cloning behavior from an
optional source widget
([6060](https://github.com/jupyterlab/jupyterlab/pull/6060),
[6044](https://github.com/jupyterlab/jupyterlab/issues/6044))
- We have renamed the type `InstanceTracker` to `WidgetTracker`
([6569](https://github.com/jupyterlab/jupyterlab/commit/da8e7bda5eebd22319f59e5abbaaa9917872a7e8)).
- In order to add widgets to the main area (e.g. as in the old XKCD
extension tutorial), the correct syntax is now
`app.shell.add(widget)` or `app.shell.add(widget, 'main')`, see
[here](https://github.com/jupyterlab/jupyterlab/blob/da8e7bda5eebd22319f59e5abbaaa9917872a7e8/packages/application/src/shell.ts#L500).

0.35.0

October 3, 2018

See the [JupyterLab
0.35.0](https://github.com/jupyterlab/jupyterlab/milestone/18?closed=1)
milestone on GitHub for the full list of pull requests and issues
closed.

Features

- A notebook cell can now be readonly, reflecting its `enabled`
metadata.
([5401](https://github.com/jupyterlab/jupyterlab/pull/5401),
[1312](https://github.com/jupyterlab/jupyterlab/issues/1312))
- Add \"Go To Line\" in the Edit menu for text editors.
([5377](https://github.com/jupyterlab/jupyterlab/pull/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](https://github.com/jupyterlab/jupyterlab/pull/5347),
[5054](https://github.com/jupyterlab/jupyterlab/issues/5054),
[3707](https://github.com/jupyterlab/jupyterlab/issues/3707))
- Make the sidebar a bit narrower, and make the minimum width
adjustable from a theme.
([5245](https://github.com/jupyterlab/jupyterlab/pull/5245))
- Populate the File, Export Notebook As\... submenu from the server
nbconvert capabilities.
([5217](https://github.com/jupyterlab/jupyterlab/pull/5217))
- Server contents managers can now tell JupyterLab to open files as
notebooks. For example, several custom contents managers save and
open notebooks as Markdown files.
([5247](https://github.com/jupyterlab/jupyterlab/pull/5247),
[4924](https://github.com/jupyterlab/jupyterlab/issues/4924))
- Add a command-line interface for managing workspaces.
([5166](https://github.com/jupyterlab/jupyterlab/pull/5166))
- Allow safe inline CSS styles in Markdown.
([5012](https://github.com/jupyterlab/jupyterlab/pull/5012),
[1812](https://github.com/jupyterlab/jupyterlab/issues/1812))
- Add Quit to File menu when appropriate.
([5226](https://github.com/jupyterlab/jupyterlab/pull/5226),
[5252](https://github.com/jupyterlab/jupyterlab/pull/5252),
[5246](https://github.com/jupyterlab/jupyterlab/issues/5246),
[5280](https://github.com/jupyterlab/jupyterlab/pull/5280))
- Rework extension manager user experience.
([5147](https://github.com/jupyterlab/jupyterlab/pull/5147),
[5042](https://github.com/jupyterlab/jupyterlab/issues/5042))

Dark theme

- Show a dark splash screen when using a dark theme.
([5339](https://github.com/jupyterlab/jupyterlab/pull/5339),
[5338](https://github.com/jupyterlab/jupyterlab/issues/5338),
[5403](https://github.com/jupyterlab/jupyterlab/pull/5403))
- Fix code completion menu for a dark theme.
([5364](https://github.com/jupyterlab/jupyterlab/pull/5364),
[5349](https://github.com/jupyterlab/jupyterlab/issues/5349))
- Style CSV viewer for a dark theme.
([5304](https://github.com/jupyterlab/jupyterlab/pull/5304),
[3456](https://github.com/jupyterlab/jupyterlab/issues/3456))
- Make Matplotlib figures legible in a dark theme.
([5232](https://github.com/jupyterlab/jupyterlab/pull/5232))
- Fix notebook cell dropdown legibility in a dark theme.
([5168](https://github.com/jupyterlab/jupyterlab/issues/5168))

Bug fixes

- Various save options in the file menu and toolbar are now disabled
when a file is not writable.
([5376](https://github.com/jupyterlab/jupyterlab/pull/5376),
[5391](https://github.com/jupyterlab/jupyterlab/pull/5391))
- Kernel selector dialog no longer cuts off kernel names.
([5260](https://github.com/jupyterlab/jupyterlab/pull/5260),
[5181](https://github.com/jupyterlab/jupyterlab/issues/5181))
- Fix focus issues with the toolbar.
([5344](https://github.com/jupyterlab/jupyterlab/pull/5344),
[5324](https://github.com/jupyterlab/jupyterlab/pull/5324),
[2995](https://github.com/jupyterlab/jupyterlab/issues/2995),
[5328](https://github.com/jupyterlab/jupyterlab/pull/5328))
- Fix toolbar button enabled/disabled status.
([5278](https://github.com/jupyterlab/jupyterlab/pull/5278))
- Table alignment is now respected in Markdown.
([5301](https://github.com/jupyterlab/jupyterlab/pull/5301),
[3180](https://github.com/jupyterlab/jupyterlab/issues/3180))
- Fix syntax highlighting for Markdown lists.
([5297](https://github.com/jupyterlab/jupyterlab/pull/5297),
[2741](https://github.com/jupyterlab/jupyterlab/issues/2741))
- Use the current filebrowser instead of the default one for various
commands.
([5390](https://github.com/jupyterlab/jupyterlab/pull/5390))
- Fix escaping in link handling to conform to Markdown syntax. This
means that spaces in link references now need to be encoded as
`%20`.
([5383](https://github.com/jupyterlab/jupyterlab/pull/5383),
[5340](https://github.com/jupyterlab/jupyterlab/pull/5340),
[5153](https://github.com/jupyterlab/jupyterlab/issues/5153))

Build system

- Use Typescript 3.1.
([5360](https://github.com/jupyterlab/jupyterlab/pull/5360))
- Use Lerna 3.2.1.
([5262](https://github.com/jupyterlab/jupyterlab/pull/5262))
- Node \>=6.11.5 is now required.
([5227](https://github.com/jupyterlab/jupyterlab/pull/5227))
- Pin vega-embed version to 3.18.2.
([5342](https://github.com/jupyterlab/jupyterlab/pull/5342))
- Use Jest for services tests.
([5251](https://github.com/jupyterlab/jupyterlab/pull/5251),
[5282](https://github.com/jupyterlab/jupyterlab/pull/5282))
- Make it easier for third party extensions to use the JupyterLab test
app and testing utilities.
([5415](https://github.com/jupyterlab/jupyterlab/pull/5415))
- Fix `jupyter lab clean` on Windows.
([5400](https://github.com/jupyterlab/jupyterlab/pull/5400),
[5397](https://github.com/jupyterlab/jupyterlab/issues/5397))
- Fix `jupyter lab build` on NFS.
([5237](https://github.com/jupyterlab/jupyterlab/pull/5237),
[5233](https://github.com/jupyterlab/jupyterlab/issues/5233))
- Build wheels for Python 3 only.
([5287](https://github.com/jupyterlab/jupyterlab/pull/5287))
- Migrate to using `jupyterlab_server` instead of
`jupyterlab_launcher` and fix the app example.
([5316](https://github.com/jupyterlab/jupyterlab/pull/5316))
- Move Mathjax 2 typesetter to a library package.
([5259](https://github.com/jupyterlab/jupyterlab/pull/5259),
[5257](https://github.com/jupyterlab/jupyterlab/issues/5257))

For Developers

- Default toolbar buttons can be overridden, and mime renderers can
now specify toolbar buttons.
([5398](https://github.com/jupyterlab/jupyterlab/pull/5398),
[5370](https://github.com/jupyterlab/jupyterlab/pull/5370),
[5363](https://github.com/jupyterlab/jupyterlab/issues/5363))
- A JupyterLab application instance can now be given a document
registry, service manager, and command linker.
([5291](https://github.com/jupyterlab/jupyterlab/pull/5291))

0.34.0

August 18, 2018

See the [JupyterLab
0.34.0](https://github.com/jupyterlab/jupyterlab/milestone/16?closed=1)
milestone on GitHub for the full list of pull requests and issues
closed.

Key Features

- Notebooks, consoles, and text files now have access to completions
for local tokens.
- Python 3.5+ is now required to use JupyterLab. Python 2 kernels can
still be run within JupyterLab.
- Added the pipe (`|`) character as a CSV delimiter option.
- Added \"Open From Path\...\"\" to top level `File` menu.
- Added \"Copy Download Link\" to context menu for files.

Changes for Developers

- Notebooks, consoles, and text files now have access to completions
for local tokens. If a text file has a running kernel associated
with its path (as happens with an attached console), it also gets
completions and tooltips from that kernel.
([5049](https://github.com/jupyterlab/jupyterlab/pull/5049))

- The `FileBrowser` widget has a new constructor option
`refreshInterval`, allowing the creator to customize how often the
widget polls the storage backend. This can be useful to prevent
rate-limiting in certain contexts.
([5048](https://github.com/jupyterlab/jupyterlab/pull/5048))

- The application shell now gets a pair of CSS data attributes
indicating the current theme, and whether it is light or dark.
Extension authors can write CSS rules targeting these to have their
extension UI elements respond to the application theme. For
instance, to write a rule targeting whether the theme is overall
light or dark, you can use

css
[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 for
`data-theme-name`.
([5078](https://github.com/jupyterlab/jupyterlab/pull/5078))

- The `IThemeManager` interface now exposes a signal for
`themeChanged`, allowing extension authors to react to changes in
the theme. Theme extensions must also provide a new boolean property
`isLight`, declaring whether they are broadly light colored. This
data allows third-party extensions to react better to the active
application theme.
([5078](https://github.com/jupyterlab/jupyterlab/pull/5078))

- Added a patch to update the `uploads` for each `FileBrowserModel`
instantly whenever a file upload errors. Previously, the upload that
erred was only being removed from uploads upon an update. This would
allow the status bar component and other extensions that use the
`FileBrowserModel` to be more precise.
([5077](https://github.com/jupyterlab/jupyterlab/pull/5077))

- Cell IDs are now passed in the shell message as part of the cell
metadata when a cell is executed. This helps in developing reactive
kernels.
([5033](https://github.com/jupyterlab/jupyterlab/pull/5033))

- The IDs of all deleted cells since the last run cell are now passed
as part of the cell metadata on execution. The IDs of deleted cells
since the last run cell are stored as `deletedCells` in
`NotebookModel`. This helps in developing reactive kernels.
([5037](https://github.com/jupyterlab/jupyterlab/pull/5037))

- The `ToolbarButton` in `apputils` has been refactored with an API
change and now uses a React component `ToolbarButtonComponent` to
render its children. It is now a `div` with a single `button` child,
which in turn as two `span` elements for an icon and text label.
Extensions that were using the `className` options should rename it
as `iconClassName`. The `className` options still exists, but it
used as the CSS class on the `button` element itself. The API
changes were done to accommodate styling changes to the button.
([5117](https://github.com/jupyterlab/jupyterlab/pull/5117))

- The `Toolbar.createFromCommand` function has been replaced by a
dedicated `ToolbarButton` subclass called `CommandToolbarButton`,
that wraps a similarly named React component.
([5117](https://github.com/jupyterlab/jupyterlab/pull/5117))

- The design and styling of the right and left sidebars tabs has been
improved to address
[5054](https://github.com/jupyterlab/jupyterlab/issues/50). We are
now using icons to render tabs for the extensions we ship with
JupyterLab and extension authors are encouraged to do the same (text
labels still work). Icon based tabs can be used by removing
`widget.caption` and adding
`widget.iconClass = '<youriconclass> jp-SideBar-tabIcon';`.
([5117](https://github.com/jupyterlab/jupyterlab/pull/5117))

- The style of buttons in JupyterLab has been updated to a borderless
design.
([5117](https://github.com/jupyterlab/jupyterlab/pull/5117))

- A new series of helper CSS classes for stying SVG-based icons at
different 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 main
change is giving the extension manager a rank of `1000` so that it
appears at the end of the default items.

- Python 3.5+ is now required to use JupyterLab. Python 2 kernels can
still be run within JupyterLab.
([5119](https://github.com/jupyterlab/jupyterlab/pull/5119))

- JupyterLab now uses `yarn 1.9.4` (aliased as `jlpm`), which now
allows uses to use Node 10+.
([5121](https://github.com/jupyterlab/jupyterlab/pull/5121))

- Clean up handling of `baseUrl` and `wsURL` for `PageConfig` and
`ServerConnection`.
([5111](https://github.com/jupyterlab/jupyterlab/pull/5111))

Other Changes

- Added the pipe (`|`) character as a CSV delimiter option.
([5112](https://github.com/jupyterlab/jupyterlab/pull/5112))
- Added `Open From Path...` to top level `File` menu.
([5108](https://github.com/jupyterlab/jupyterlab/pull/5108))
- Added a `saveState` signal to the document context object.
([5096](https://github.com/jupyterlab/jupyterlab/pull/5096))
- Added \"Copy Download Link\" to context menu for files.
([5089](https://github.com/jupyterlab/jupyterlab/pull/5089))
- Extensions marked as `deprecated` are no longer shown in the
extension manager.
([5058](https://github.com/jupyterlab/jupyterlab/pull/5058))
- Remove `In` and `Out` text from cell prompts. Shrunk the prompt
width from 90px to 64px. In the light theme, set the prompt colors
of executed console cells to active prompt colors and reduced their
opacity to 0.5. In the dark theme, set the prompt colors of executed
console cells to active prompt colors and set their opacity to 1.
([5097](https://github.com/jupyterlab/jupyterlab/pull/5097) and
[5130](https://github.com/jupyterlab/jupyterlab/pull/5130))

Bug Fixes

- Fixed a bug in the rendering of the \"New Notebook\" item of the
command palette.
([5079](https://github.com/jupyterlab/jupyterlab/pull/5079))
- We only create the extension manager widget if it is enabled. This
prevents unnecessary network requests to `npmjs.com`.
([5075](https://github.com/jupyterlab/jupyterlab/pull/5075))
- The `running` panel now shows the running sessions at startup.
([5118](https://github.com/jupyterlab/jupyterlab/pull/5118))
- Double clicking a file in the file browser always opens it rather
than sometimes selecting it for a rename.
([5101](https://github.com/jupyterlab/jupyterlab/pull/5101))

0.33.0

July 26, 2018

See the [JupyterLab
0.33.0](https://github.com/jupyterlab/jupyterlab/milestone/12?closed=1)
milestone on GitHub for the full list of pull requests and issues
closed.

Key Features:

- [No longer in beta](no-longer-in-beta)
- [Workspaces](workspaces)
- [Menu items](menu-items)
- [Keyboard shortcuts](keyboard-shortcuts)
- [Command palette items](command-palette-items)
- [Settings](settings)
- [Larger file uploads](larger-file-uploads)
- [Extension management and installation](extension-management-and-installation)
- [Interface changes](interface-changes)
- [Renderers](renderers)
- [Changes for developers](changes-for-developers)
- [Other fixes](other-fixes)

No longer in beta

In JupyterLab 0.33, we removed the "Beta" label to better signal that
JupyterLab is ready for users to use on a daily basis. The extension
developer API is still being stabilized. See the release blog post for
details.
([4898](https://github.com/jupyterlab/jupyterlab/issues/4898),
[4920](https://github.com/jupyterlab/jupyterlab/pull/4920))

Workspaces

We added new workspace support, which enables you to have multiple saved
layouts, including in different browser windows. See the
`workspace documentation` for more details.
([4502](https://github.com/jupyterlab/jupyterlab/issues/4502),
[4708](https://github.com/jupyterlab/jupyterlab/pull/4708),
[4088](https://github.com/jupyterlab/jupyterlab/issues/4088),
[4041](https://github.com/jupyterlab/jupyterlab/pull/4041)
[3673](https://github.com/jupyterlab/jupyterlab/issues/3673),
[4780](https://github.com/jupyterlab/jupyterlab/pull/4780))

Menu items

- "Activate Previously Used Tab" added to the Tab menu
(`Ctrl/Cmd Shift '`) to toggle between the previously active tabs in
the main area.
([4296](https://github.com/jupyterlab/jupyterlab/pull/4296))
- "Reload From Disk" added to the File menu to reload an open file
from the state saved on disk.
([4615](https://github.com/jupyterlab/jupyterlab/pull/4615))
- "Save Notebook with View State" added to the File menu to persist
the notebook collapsed and scrolled cell state. We now read the
`collapsed`, `scrolled`, `jupyter.source_hidden` and
`jupyter.outputs_hidden` notebook cell metadata when opening.
`collapsed` and `jupyter.outputs_hidden` are redundant and the
initial collapsed state is the union of both of them. When the state
is persisted, if an output is collapsed, both will be written with
the value `true`, and if it is not, both will not be written.
([3981](https://github.com/jupyterlab/jupyterlab/pull/3981))
- "Increase/Decrease Font Size" added to the text editor settings
menu. ([4811](https://github.com/jupyterlab/jupyterlab/pull/4811))
- "Show in File Browser" added to a document tab's context menu.
([4500](https://github.com/jupyterlab/jupyterlab/pull/4500))
- "Open in New Browser Tab" added to the file browser context menu.
([4315](https://github.com/jupyterlab/jupyterlab/pull/4315))
- "Copy Path" added to file browser context menu to copy the
document's path to the clipboard.
([4582](https://github.com/jupyterlab/jupyterlab/pull/4582))
- "Show Left Area" has been renamed to "Show Left Sidebar" for
consistency (same for right sidebar).
([3818](https://github.com/jupyterlab/jupyterlab/pull/3818))

Keyboard shortcuts

- "Save As..." given the keyboard shortcut `Ctrl/Cmd Shift S`.
([4560](https://github.com/jupyterlab/jupyterlab/pull/4560))
- "Run All Cells" given the keyboard shortcut `Ctrl/Cmd Shift Enter`.
([4558](https://github.com/jupyterlab/jupyterlab/pull/4558))
- "notebook:change-to-cell-heading-X" keyboard shortcuts (and
commands) renamed to "notebook:change-cell-to-heading-X" for
X=1...6. This fixes the notebook command-mode keyboard shortcuts for
changing headings.
([4430](https://github.com/jupyterlab/jupyterlab/pull/4430))
- The console execute shortcut can now be set to either `Enter` or
`Shift Enter` as a Console setting.
([4054](https://github.com/jupyterlab/jupyterlab/pull/4054))

Command palette items

- "Notebook" added to the command palette to open a new notebook.
([4812](https://github.com/jupyterlab/jupyterlab/pull/4812))

- "Run Selected Text or Current Line in Console" added to the command
palette to run the selected text or current line from a notebook in
a console. A default keyboard shortcut for this command is not yet
provided, but can be added by users with the
`notebook:run-in-console` command. To add a keyboard shortcut
`Ctrl G` for this command, use the "Settings" \| "Advanced Settings
Editor" menu item to open the "Keyboard Shortcuts" advanced
settings, and add the following JSON in the shortcut JSON object in
the User Overrides pane (adjust the actual keyboard shortcut if you
wish).
([3453](https://github.com/jupyterlab/jupyterlab/issues/3453),
[4206](https://github.com/jupyterlab/jupyterlab/issues/4206),
[4330](https://github.com/jupyterlab/jupyterlab/pull/4330))

json
{
"command": "notebook:run-in-console",
"keys": ["Ctrl G"],
"selector": ".jp-Notebook.jp-mod-editMode"
}


- The command palette now renders labels, toggled state, and keyboard
shortcuts in a more consistent and correct way.
([4533](https://github.com/jupyterlab/jupyterlab/pull/4533),
[4510](https://github.com/jupyterlab/jupyterlab/pull/4510))

Settings

- "fontFamily", "fontSize", and "lineHeight" settings added to the
text editor advanced settings.
([4673](https://github.com/jupyterlab/jupyterlab/pull/4673))
- Solarized dark and light text editor themes from CodeMirror.
([4445](https://github.com/jupyterlab/jupyterlab/pull/4445))

Larger file uploads

- Support for larger file uploads (\>15MB) when using Jupyter notebook
server version \>= 5.1.
([4224](https://github.com/jupyterlab/jupyterlab/pull/4224))

Extension management and installation

- New extension manager for installing JupyterLab extensions from npm
within the JupyterLab UI. You can enable this from the Advanced
Settings interface.
([4682](https://github.com/jupyterlab/jupyterlab/pull/4682),
[4925](https://github.com/jupyterlab/jupyterlab/pull/4925))
- Please note that to install extensions in JupyterLab, you must use
NodeJS version 9 or earlier (i.e., not NodeJS version 10). We will
upgrade yarn, with NodeJS version 10 support, when a [bug in
yarn](https://github.com/yarnpkg/yarn/issues/5935) is fixed.
([4804](https://github.com/jupyterlab/jupyterlab/pull/4804))

Interface changes

- Wider tabs in the main working area to show longer filenames.
([4801](https://github.com/jupyterlab/jupyterlab/pull/4801))
- Initial kernel selection for a notebook or console can no longer be
canceled: the user must select a kernel.
([4596](https://github.com/jupyterlab/jupyterlab/pull/4596))
- Consoles now do not display output from other clients by default. A
new "Show All Kernel Activity" console context menu item has been
added to show all activity from a kernel in the console.
([4503](https://github.com/jupyterlab/jupyterlab/pull/4503))
- The favicon now shows the busy status of the kernels in JupyterLab.
([4361](https://github.com/jupyterlab/jupyterlab/pull/4361),
[3957](https://github.com/jupyterlab/jupyterlab/issues/3957),
[4966](https://github.com/jupyterlab/jupyterlab/pull/4966))

Renderers

- JupyterLab now ships with a Vega4 renderer by default (upgraded from
Vega3).
([4806](https://github.com/jupyterlab/jupyterlab/pull/4806))
- The HTML sanitizer now allows some extra tags in rendered HTML,
including `kbd`, `sup`, and `sub`.
([4618](https://github.com/jupyterlab/jupyterlab/pull/4618))
- JupyterLab now recognizes the `.tsv` file extension as tab-separated
files.
([4684](https://github.com/jupyterlab/jupyterlab/pull/4684))
- Javascript execution in notebook cells has been re-enabled.
([4515](https://github.com/jupyterlab/jupyterlab/pull/4682))

Changes for developers

- A new signal for observing application dirty status state changes.
([4840](https://github.com/jupyterlab/jupyterlab/issues/4840))
- A new signal for observing notebook cell execution.
([4740](https://github.com/jupyterlab/jupyterlab/issues/4740),
[4744](https://github.com/jupyterlab/jupyterlab/pull/4744))
- A new `anyMessage` signal for observing any message a kernel sends
or receives.
([4437](https://github.com/jupyterlab/jupyterlab/pull/4437))
- A generic way for different widgets to register a "Save with extras"
command that appears in the File menu under save.
([3981](https://github.com/jupyterlab/jupyterlab/pull/3981))
- A new API for removing groups from a JupyterLab menu. `addGroup` now
returns an `IDisposable` which can be used to remove the group.
`removeGroup` has been removed.
([4890](https://github.com/jupyterlab/jupyterlab/pull/4890))
- The `Launcher` now uses commands from the application
`CommandRegistry` to launch new activities. Extension authors that
add items to the launcher will need to update them to use commands.
([4757](https://github.com/jupyterlab/jupyterlab/pull/4757))
- There is now a top-level `addToBottomArea` function in the
application, allowing extension authors to add bottom panel items
like status bars.
([4752](https://github.com/jupyterlab/jupyterlab/pull/4752))
- Rendermime extensions can now indicate that they are the default
rendered widget factory for a file-type. For instance, the default
widget for a markdown file is a text editor, but the default
rendered widget is the markdown viewer.
([4692](https://github.com/jupyterlab/jupyterlab/pull/4692))
- Add new workspace REST endpoints to `jupyterlab_server` and make
them available in `jupyterlab/services`.
([4841](https://github.com/jupyterlab/jupyterlab/pull/4841))
- Documents created with a mimerenderer extension can now be accessed
using an `IInstanceTracker` which tracks them. Include the token
`IMimeDocumentTracker` in your plugin to access this. The
`IInstanceTracker` interface has also gained convenience functions
`find` and `filter` to simplify iterating over instances.
([4762](https://github.com/jupyterlab/jupyterlab/pull/4762))
- RenderMime render errors are now displayed to the user.
([4465](https://github.com/jupyterlab/jupyterlab/pull/4465))
- `getNotebookVersion` is added to the `PageConfig` object.
([4224](https://github.com/jupyterlab/jupyterlab/pull/4224))
- The session `kernelChanged` signal now contains both the old kernel
and the new kernel to make it easy to unregister things from the old
kernel.
([4834](https://github.com/jupyterlab/jupyterlab/pull/4834))
- The `connectTo` functions for connecting to kernels and sessions are
now synchronous (returning a connection immediately rather than a
promise). The DefaultSession `clone` and `update` methods are also
synchronous now.
([4725](https://github.com/jupyterlab/jupyterlab/pull/4725))
- Kernel message processing is now asynchronous, which guarantees the
order of processing even if a handler is asynchronous. If a kernel
message handler returns a promise, kernel message processing is
paused until the promise resolves. The kernel's `anyMessage` signal
is emitted synchronously when a message is received before
asynchronous message handling, and the `iopubMessage` and
`unhandledMessage` signals are emitted during asynchronous message
handling. These changes mean that the comm `onMsg` and `onClose`
handlers and the kernel future `onReply`, `onIOPub`, and `onStdin`
handlers, as well as the comm target and message hook handlers, may
be asynchronous and return promises.
([4697](https://github.com/jupyterlab/jupyterlab/pull/4697))
- Kernel comm targets and message hooks now are unregistered with
`removeCommTarget` and `removeMessageHook`, instead of using
disposables. The corresponding `registerCommTarget` and
`registerMessageHook` functions now return nothing.
([4697](https://github.com/jupyterlab/jupyterlab/pull/4697))
- The kernel `connectToComm` function is synchronous, and now returns
the comm rather than a promise to the comm.
([4697](https://github.com/jupyterlab/jupyterlab/pull/4697))
- The `KernelFutureHandler` class `expectShell` constructor argument
is renamed to `expectReply`.
([4697](https://github.com/jupyterlab/jupyterlab/pull/4697))
- The kernel future `done` returned promise now resolves to undefined
if there is no reply message.
([4697](https://github.com/jupyterlab/jupyterlab/pull/4697))
- The `IDisplayDataMsg` is updated to have the optional `transient`
key, and a new `IUpdateDisplayDataMsg` type was added for update
display messages.
([4697](https://github.com/jupyterlab/jupyterlab/pull/4697))
- The `uuid` function from `jupyterlab/coreutils` is removed. Instead
import `UUID` from `phosphor/coreutils` and use `UUID.uuid4()` .
([4604](https://github.com/jupyterlab/jupyterlab/pull/4604))
- Main area widgets like the launcher and console inherit from a
common `MainAreaWidget` class which provides a content area
(`.content`) and a toolbar (`.toolbar`), consistent focus handling
and activation behavior, and a spinner displayed until the given
`reveal` promise is resolved. Document widgets, like the notebook
and text editor and other documents opened from the document
manager, implement the `IDocumentWidget` interface (instead of
`DocumentRegistry.IReadyWidget`), which builds on `MainAreaWidget`
and adds a `.context` attribute for the document context and makes
dirty handling consistent. Extension authors may consider inheriting
from the `MainAreaWidget` or `DocumentWidget` class for consistency.
Several effects from these changes are noted below.
([3499](https://github.com/jupyterlab/jupyterlab/pull/3499),
[4453](https://github.com/jupyterlab/jupyterlab/pull/4453))
- The notebook panel `.notebook` attribute is renamed to
`.content`.
- The text editor is now the `.content` of a `DocumentWidget`, so
the top-level editor widget has a toolbar and the editor itself
is `widget.content.editor` rather than just `widget.editor`.
- Mime documents use a `MimeContent` widget embedded inside of a
`DocumentWidget` now.
- Main area widgets and document widgets now have a `revealed`
promise which resolves when the widget has been revealed (i.e.,
the spinner has been removed). This should be used instead of
the `ready` 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 TypeScript
`esModuleInterop` flag to enable more natural imports from
non-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 the
codebase, especially in tests. Because we use Typedoc for API
documentation, we still use syntax compatible with TypeScript 2.7
where Typedoc is used. Extension authors may have some minor
compatibility updates to make. If you are writing an extension in
TypeScript, we recommend updating to TypeScript 2.9 and targeting
ES2015 output as well.
([4462](https://github.com/jupyterlab/jupyterlab/pull/4462),
[4675](https://github.com/jupyterlab/jupyterlab/pull/4675),
[4714](https://github.com/jupyterlab/jupyterlab/pull/4714),
[4797](https://github.com/jupyterlab/jupyterlab/pull/4797))
- The JupyterLab codebase is now formatted using
[Prettier](https://github.com/prettier/prettier). By default the
development environment installs a pre-commit hook that formats your
staged changes.
([4090](https://github.com/jupyterlab/jupyterlab/pull/4090))
- Updated build infrastructure using webpack 4 and better typing.
([4702](https://github.com/jupyterlab/jupyterlab/pull/4702),
[4698](https://github.com/jupyterlab/jupyterlab/pull/4698))
- Upgraded yarn to version 1.6. Please note that you must use NodeJS
version 9 or earlier with JupyterLab (i.e., not NodeJS version 10).
We will upgrade yarn, with NodeJS version 10 support, when a [bug in
yarn](https://github.com/yarnpkg/yarn/issues/5935) is fixed.
([4804](https://github.com/jupyterlab/jupyterlab/pull/4804))
- Various process utilities were moved to `jupyterlab_server`.
([4696](https://github.com/jupyterlab/jupyterlab/pull/4696))

Other fixes

- Fixed a rendering bug with the Launcher in single-document mode.
([4805](https://github.com/jupyterlab/jupyterlab/pull/4805))
- Fixed a bug where the native context menu could not be triggered in
a notebook cell in Chrome.
([4720](https://github.com/jupyterlab/jupyterlab/pull/4720))
- Fixed a bug where the cursor would not show up in the dark theme.
([4699](https://github.com/jupyterlab/jupyterlab/pull/4699))
- Fixed a bug preventing relative links from working correctly in
alternate `IDrive`s.
([4613](https://github.com/jupyterlab/jupyterlab/pull/4613))
- Fixed a bug breaking the image viewer upon saving the image.
([4602](https://github.com/jupyterlab/jupyterlab/pull/4602))
- Fixed the font size for code blocks in notebook Markdown headers.
([4617](https://github.com/jupyterlab/jupyterlab/pull/4617))
- Prevented a memory leak when repeatedly rendering a Vega chart.
([4904](https://github.com/jupyterlab/jupyterlab/pull/4904))
- Support dropped terminal connection re-connecting.
([4763](https://github.com/jupyterlab/jupyterlab/issues/4763),
[4802](https://github.com/jupyterlab/jupyterlab/pull/4802))
- Use `require.ensure` in `vega4-extension` to lazily load
`vega-embed` and its dependencies on first render.
([4706](https://github.com/jupyterlab/jupyterlab/pull/4706))
- Relative links to documents that include anchor tags will now
correctly scroll the document to the right place.
([4692](https://github.com/jupyterlab/jupyterlab/pull/4692))
- Fix default settings JSON in setting editor.
([4591](https://github.com/jupyterlab/jupyterlab/issues/4591),
[4595](https://github.com/jupyterlab/jupyterlab/pull/4595))
- Fix setting editor pane layout's stretch factor.
([2971](https://github.com/jupyterlab/jupyterlab/issues/2971),
[4772](https://github.com/jupyterlab/jupyterlab/pull/4772))
- Programmatically set settings are now output with nicer formatting.
([4870](https://github.com/jupyterlab/jupyterlab/pull/4870))
- Fixed a bug in displaying one-line CSV files.
([4795](https://github.com/jupyterlab/jupyterlab/issues/4795),
[4796](https://github.com/jupyterlab/jupyterlab/pull/4796))
- Fixed a bug where JSON arrays in rich outputs were collapsed into
strings.
([4480](https://github.com/jupyterlab/jupyterlab/pull/4480))

0.32.0

Apr 16, 2018

This is the second in the JupyterLab Beta series of releases. It
contains many enhancements, bugfixes, and refinements, including:

- Better handling of a corrupted or invalid state database.
([3619](https://github.com/jupyterlab/jupyterlab/issues/3619),
[3622](https://github.com/jupyterlab/jupyterlab/issues/3622),
[3687](https://github.com/jupyterlab/jupyterlab/issues/3687),
[4114](https://github.com/jupyterlab/jupyterlab/issues/4114)).
- Fixing file dirty status indicator.
([3652](https://github.com/jupyterlab/jupyterlab/issues/3652)).
- New option for whether to autosave documents.
([3734](https://github.com/jupyterlab/jupyterlab/issues/3734)).
- More commands in the notebook context menu.
([3770](https://github.com/jupyterlab/jupyterlab/issues/3770),
[3909](https://github.com/jupyterlab/jupyterlab/issues/3909))
- Defensively checking for completion metadata from kernels.
([3888](https://github.com/jupyterlab/jupyterlab/issues/3888))
- New "Shutdown all" button in the Running panel.
([3764](https://github.com/jupyterlab/jupyterlab/issues/3764))
- Performance improvements wherein non-focused documents poll the
server less.
([3931](https://github.com/jupyterlab/jupyterlab/issues/3931))
- Changing the keyboard shortcut for singled-document-mode to
something less easy to trigger.
([3889](https://github.com/jupyterlab/jupyterlab/issues/3889))
- Performance improvements for rendering text streams, especially
around progress bars.
([4045](https://github.com/jupyterlab/jupyterlab/issues/4045)).
- Canceling a "Restart Kernel" now functions correctly.
([3703](https://github.com/jupyterlab/jupyterlab/issues/3703)).
- Defer loading file contents until after the application has been
restored.
([4087](https://github.com/jupyterlab/jupyterlab/issues/4087)).
- Ability to rotate, flip, and invert images in the image viewer.
([4000](https://github.com/jupyterlab/jupyterlab/issues/4000))
- Major performance improvements for large CSV viewing.
([3997](https://github.com/jupyterlab/jupyterlab/issues/3997)).
- Always show the context menu in the file browser, even for an empty
directory.
([4264](https://github.com/jupyterlab/jupyterlab/issues/4264)).
- Handle asynchronous comm messages in the services library more
correctly (Note: this means `jupyterlab/services` is now at version
2.0!)
([\[4115\](https://github.com/jupyterlab/jupyterlab/issues/4115)](https://github.com/jupyterlab/jupyterlab/pull/4115)).
- Display the kernel banner in the console when a kernel is restarted
to mark the restart
([\[3663\](https://github.com/jupyterlab/jupyterlab/issues/3663)](https://github.com/jupyterlab/jupyterlab/pull/3663)).
- Many tweaks to the UI, as well as better error handling.

Page 17 of 20

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.