I've slowly been working through what it'll take to get debugging going in JupyterLab. I had a face to face conversation with Brian a while ago where we outlined a broad plan on what this could look like. A quick summary is that was that we'd adapt the VS code protocol to run over Jupyter's shell + iopub channels.
As I've been digging into it I've come up with two big decision points where this starts to break down:
There's not necessary a Jupyter kernel involved here, and there's plenty of languages which already support this protocol unmodified.
ipykernel is currently structured in such a way that while code is executing the event loop isn't running.
I don't think these are strictly blockers to the approach that we've outlined, but issue #9 in particular would require some decent sized changes to ipykernel to do code execution on a different thread than the event loop.
Anyway, Fernando suggested that I bring the issues to the group for those who aren't tracking the debugger repo, and I'm extremely open to input on what people view the best solution is :)