-
Notifications
You must be signed in to change notification settings - Fork 65
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
Xeus incorporation #44
Conversation
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.
I think this is great, and happy to include Xeus. The only downside I see to including xeus is that incorporating it into Jupyter makes the vibrant third-party kernel community look a little less great, as we bring one of the best bits in as first-party :).
I know naming things is hard, but jupyter-native seems like a confusing name. What's it native to? It's not native to Jupyter, etc. I know it's native to the processor because it's compiled, but the phrase "jupyter-native" doesn't communicate that as well, and the term "native kernels" also doesn't seem a good fit for describing kernels that are compiled. Can we not just keep the name xeus? We could use jupyter-xeus
for the GitHub org if folks want to make the Jupyter subproject relationship clear, but still call everything xeus.
I am not opinionated at all about that name. We thought of "native" because it is mostly compiled code. I am also OK with jupyter-xeus... |
Point of order: I just added a voting checklist to the OP. Now we have three ways to vote, the emojis, the github approval system, and the checklist. I've updated the checklist to merge each of these results.
|
I agree that |
I opened a discussion earlier today on the Jupyter Debugger repo about using xeus Python kernel vs ipykernel (jupyterlab/debugger#274). At the JupyterLab dev meeting, some folks suggested I move the discussion here to encourage more participation and visibility. The impetus is that we (@Quansight) have a client who wants us to help move forward the debugging support in JupyterLab. Currently, if they were to begin adopting it with a Python kernel, they would have to switch to xeus-python instead of ipykernel, because xeus-python has support for the debugging protocol and ipykernel does not. So the question is, should we put our resources towards making sure xeus-python works for them or on adding debugger support for ipykernel? More broadly, in the JupyterLab context, when Jupyter debugger is stable and we start encouraging use of it, we will have the same question. Of course technically we can tell users that if they want debugging support they have to switch kernels and if they want any features that ipykernel has that are not supported in xeus-python, then they should stick with that, but that isn't a satisfying answer from a UX perspective. When a new user comes to JupyterLab, eventually we would like them to be able to start debugging in Python with minimal friction. My understanding is that adding debugging support to ipykernel would require a significant refactor. So my hope is to get a sense from folks who are currently, or have been, active in ipykernel and those in xeus-python (cc @minrk @ivanov @Carreau). whether we can put together a plan to either:
I don't have a horse in the race, but just want to understand which would be useful for us to allocate resources towards, as client needs come up that affect the Python kernel. On a meta level, I am open to any feedback or suggestions on where this conversation should be held and how to move it forward in a way that is inclusive and transparent. EDIT: Here are some links to
I am not sure what it would take to make xeus-python feature-complete with ipykernel. Someone mentioned something about magics offhand, but I personally have never used xeus-python and am not sure about its status. |
This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there: https://discourse.jupyter.org/t/ipykernel-vs-xeus-kernel-discussion/2877/1 |
Thanks for opening this @saulshanabrook although I don't think that the JEP for incorporating xeus is the right place because for this. The JEP is not making a statement about an official recommended Python kernel, and it covers a broader set of projects, including |
@SylvainCorlay Could you make a recommendation for where we should discuss this then? |
Sure, I think that both ipykernel or xeus-python are fine. Although it seems you just opened issues and threads on all channels already
so I would just pick one of them and close the others! |
OK since I opened an issue on the debugger already, we can have the conversation over there: jupyterlab/debugger#274 |
OK thanks @saulshanabrook |
It may make sense to remove reference to the debugger in the JEP. I was a bit surprised by the wording since it seems to imply movement from ipykernel to the xeus-python kernel. If this is not the case, I think this would read more clearly by removing the following part, which does not seem critical to the JEP itself. Alternatively, I would be more explicit about what is meant by the
|
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.
I approve conditionally on clarification re: ipykernel and xeus-python in core library of debugger or removal of that wording.
@willingc I have modified the wording into
Are you fine with this? |
Pretty much @SylvainCorlay. Perhaps clarify which core library. The visual debugger core library or xeus core library. Thanks! |
17cb239
to
e7cde4c
Compare
Done. I meant the core xeus library (not xeus-python). The front-end debugger UI will work with any kernel supporting the protocol. |
Can (Could) xeus-python use IPython as an execution engine ? What needs to change for this to happen ? My guess is that users do not really care about the ipykernel features which are super-minimal but the IPython features (magics, tracebacks, etc...) Voted +1 in principle about adopting xeus. |
Probably, although it would probably make the codebase more complicated, and may not be the best approach to reach full feature parity (cf second part of the answer).
We already support rich tracebacks, autocompletion, rich mimetype rendering, widgets, but not magics yet.
|
Given that we have 11 approvals from SC members and no disagreements, I propose we merge this tomorrow. We can continue discussions about ipykernel vs. xeus-kernel and debugging on other channels. |
Let me rephrase then; I'm concern about the difficulty to maintain similar behavior in two different project. For example current work in IPython to get better stacktraces: ipython/ipython#11827 I think there is a good case to pull some of the functionalities into a But all of that is an implementation detail. |
Yes - similarly, many libraries meant to be use in Jupyter make use of IPython APIs (for example |
Belated 👍 |
We propose to make Xeus an official Jupyter subproject.
Votes for approval: