-
Notifications
You must be signed in to change notification settings - Fork 6
Add compatibility with Jupyter Collaboration v4 #106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Nice! QQ: what do you think about jupyter_server_documents overriding |
|
@ellisonbg I can explore if "perfect compatibility" is possible. Will look into it and make the changes if they're simple enough. 👍 |
|
@ellisonbg Done. The backend API should now be compatible with any extension using |
cb68aec to
17f9fca
Compare
|
Rebased onto |
5019b63 to
1ce7e7d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dlqqq
This looks great 🚀 . Tested, and everything with server docs works.
One minor question about the store in the yroom events.
Description
jupyter_collaborationin the same environment #102jupyter_events#105This PR allows
jupyter_server_documentsto be installed on top ofjupyter_collaboration~=4.0. This means that any package depending onjupyter_collaboration~=4.0can optionally installjupyter_server_documentsto upgrade to the new RTC experience provided by this extension. 🎉The backend has also been updated to provide compatibility with server extensions depending on
jupyter_collaboration~=4.0. Specifically:The extension now emits events to the same event schema IDs as
jupyter_collaboration. This allows consumers to get notified when a new room is created.The extension now provides the same API as
jupyter_collaborationunderself.settings["jupyter_server_ydoc"]. This allows consumers to get aJupyterYDocfor a room.Details
The changes to
jupyter-config/server-config/jupyter_server_documents.jsondisable thejupyter_server_ydocserver extension when this package is installed.The changes to
package.jsondisable the@jupyter/docprovider-extensionlabextension, which we override entirely. This required adding an extra optional plugin; see changes tosrc/index.tsfor more details.Events are emitted to
jupyter_eventsvia a newYRoomEventsAPIclass. EachYRoominstance initializes one to use.Fixes the plugin IDs for each plugin provided by our extension. Plugin IDs should always take the syntax
<npm-package-name>:<plugin-name>.Reviewer instructions
I've added a new
devenv-jcollab.yamlfile that replaces the older dev environments. This creates an environment withjupyterlab>=4.4&jupyter_collaboration>=4.0. You can use this environment file to test this branch:Everything should work as expected.