jupyter-server / team-compass

A repository for team discussion, syncing, and meeting notes.
https://jupyter-server-team-compass.readthedocs.io
BSD 3-Clause "New" or "Revised" License
13 stars 7 forks source link

Kernel protocol roadmap #50

Open JohanMabille opened 1 year ago

JohanMabille commented 1 year ago

Below is a list of the JEPs related to the Kernel protocol, with the actions required for both the documentation and the implementation. The idea is to have an easier process to update the protocol and trigger the required actions in downstream projects. The first step would be to have a dedicated repo for the kernel protocol specification instead of having it in Jupyter Client and probably move this issue there.

Current version of the protocol: 5.4

Title Links Status Notes
Debugger PR
JEP
- JEP Accepted
- In the protocol 5.5
- Implemented in xeus-python and ipykernel
Should be marked as optional when the Optional Features JEP is accepted
Deprecate shutdown request on shell - No JEP
- In the protocol 5.4
XPub PR
JEP
- JEP Accepted
- Not in the protocol
 
Handshake mechanism PR JEP opened
Optional Features PR JEP opened  
Parametrized kernels PR JEP opened
Subshells PR JEP opened Depends on Optional Features JEP
Kernel info request on control  PR JEP opened  
Status messages on control No PR yet  
Unkillable kernels No PR yet    

Note: in the format below, when we require kernels to warn, we mean:

XPub

Having kernels implement the XPub pattern for IOpub will not break the clients to the protocol that may not use XPub yet.

If a client requires kernels to implement XPub, they can remove the "nudging" mechanism which was a workaround to the IOpub taking too long to connect.

Proposal:

Handshake

The new handshake mechanism is incompatible with the old one.

Kernels will need to support both for some time, and clients will warn when encountering kernels that implement only the old protocol.

Proposal:

Optional features

Today we have a singular way to tell whether kernels support debugging.

Proposal:

Parameterized kernels

Proposal:

Subshells

Proposal:

TODO

Kernel info request on control

Proposal:

Deprecate shutdown request on shell

Proposal:

welcome[bot] commented 1 year ago

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively. welcome You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! :wave:
Welcome to the Jupyter community! :tada:

bollwyvl commented 1 year ago

Best prior art for this kind of spec and documentation:

https://xmpp.org/extensions/

bollwyvl commented 1 year ago

Another idea: encourage treating docker-stacks as the upstream of testable kernels.