|
@@ -59,13 +59,13 @@ Changes for extension developers include:
|
|
|
* 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.
|
|
|
+* 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))
|
|
|
+* 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.
|