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
Rework kernel and session architecture #7252
Commits on Dec 14, 2019
-
-
-
Update kernel status to have a connection status and a kernel status.
This simplified logic quite a bit. Most of these ideas came from previous work in jupyterlab#4724
-
-
Delete unnecessary awaits for kernel info replies.
This also (finally!) resolves the testing issues with kernel info messages being outstanding when the kernel is disposed.
-
-
-
Move kernel rest api communication to new restapi module and caching …
…to the kernel manager. This simplifies the responsibilities of each module.
-
-
-
-
-
-
-
WIP clean up tests and kernel starting signatures
Lots of things in the tests still are wrong, but this is a snapshot of the current work.
-
Reorganize kernelspec and kernel modules to use modules instead of na…
…mespaces. Also break out the kernelspec tests from the kernel tests.
-
Update services tests and fix relevant bugs.
Tests pass except for a small number of failures that still need investigating.
-
-
-
-
-
-
-
Change status bar code to indicate kernel sessions, not just kernels
I left the term "Kernels" in the ux tooltip since users probably are familiar with that term more than "sessions"
-
Update completers to handle session changes
There is still more to do in the completers to handle when there is no session, but this is a start, and the TODO is noted in the code.
-
-
-
Trigger ‘restarting’ status ourselves when we initiate the kernel res…
…tart. This won’t handle the restarting logic for other kernel connections to this same kernel. We should figure out what other kernel connections will do. Perhaps the kernel manager should broadcast the restarting across all kernel connections it knows about.
-
-
Work through tricky logic around disposing dead kernel connections.
All services/kernel tests are passing!
-
-
This documents the change in behavior that a session context is not tied to the session lifecycle.
-
Fix the kernel toolbar indicator to show the kernel connection status…
… when not connected.
-
-
-
Add initialize and ready/isReady methods to session context.
We need these to know when/if the initial kernel has been started.
-
-
-
-
Merge branch 'master' into sessionpersistence
In addition to resolving merge conflicts, we changed to lumino in files without merge conflicts.
-
-
Remove the sessionContext.kernel convenient shortcut.
I think it’s better to be explicit and have only one place to access it: sessionContext.session?.kernel
-
-
Make status bar explicitly and accurately have a tooltop of “kernel s…
…essions” rather than just “kernels”
-
-
Commits on Dec 15, 2019
Commits on Dec 16, 2019
-
-
Change kernel.connectComm to kernel.createComm and add a new hasComm …
…method. Previously, if you tried to create a comm that already existed, you could get the comm someone else had created, which means you would overwrite their message handlers, etc. This was a bad design decision. This changes the API so that you can only create comms with ids that do not exist. You can also query to see if a given id is used. See jupyterlab#7284 for more discussion.
Commits on Dec 17, 2019
-
Allow reconnections for disconnected kernels
This means that ‘disconnected’ is no longer a terminal state, and can be recovered from with an explicit call to reconnect() We also change the reconnect timeouts so that the first reconnection happens immediately, and subsequent ones happen at random times in growing intervals.
-
-
Update testEmission to use optional chaining and null coalescing.
Also make second parameter optional, since each property was already optional.
-
-
-
-
-
Resolve another TODO item by deciding against it.
We don’t want to accept a Partial<Session.IModel> since what we are really doing is setting the values of the top-level .path/.type/.name attributes.
-
Make the session and kernel interfaces more consistent
Namespace the ISessionConnection interfaces. Make the connectTo and various function signatures more uniform.
-
-
-
Separate out the kernel and session creation vs connection options in…
… the manager startNew methods. This also more generically supports any extra kernel startup options used by servers other than the notebook server, which encompasses the changes in jupyterlab#7499. Fixes jupyterlab#7640
-
Make slots class methods since we are now passing in the
this
conte……xt in the signal connection.
Commits on Dec 18, 2019
-
-
-
-
Add a convenience session context .kernelDisplayStatus
This gives a sensible status to show a user (i.e., if connected, the kernel status, if not, then the connection status). Also heuristically create a “initializing” status for an initially starting kernel.
-
Commits on Dec 19, 2019
-
-
-
When creating a test session context, make sure the spec manager is r…
…eady before using it.
-
Explicitly test kernel preference starting values to have the right d…
…efaults of true.
-
Commits on Dec 20, 2019
-
-
-
Steven Silvester committed
Dec 20, 2019 -
Merge branch 'sessionpersistence' of github.com:jasongrout/jupyterlab…
… into sessionpersistence