-
-
Notifications
You must be signed in to change notification settings - Fork 297
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
🩺 Process status #2399
🩺 Process status #2399
Conversation
Try this Pull Request!Open Julia and type: julia> import Pkg
julia> Pkg.activate(temp=true)
julia> Pkg.add(url="https://github.com/fonsp/Pluto.jl", rev="status")
julia> using Pluto After loading Pluto, open a notebook, and then press F12 to open the web developer tools. Go to the JavaScript console, and type: PLUTO_TOGGLE_PROCESS_TAB() to enable the feature. |
After yesterday's Pluto Community Call (join us on zulip to learn more), we found that showing each cell evaluation is a bit confusing/misleading, because it does not mirror the full list of cells. So I decided to collect all numbered tasks, and display them all as a single progress bar instead. I think it looks super nice! BeforeSchermopname.2022-11-28.om.21.03.26.movAfterSchermopname.2022-11-30.om.15.45.59.mov |
Hi @fonsp First, I think this looks super nice, and trying it out on a heavy notebook, it gives a really good overview of what is going on. I imagine this will be super helpful when debugging when a notebook is stuck, as hinted at in another comment:
One suggestion I have, is to think about another scenario, which is what lead me to this issue in the first place: I open a notebook, and I want to know when everything has been loaded, before I start interacting with the notebook. This tab does not directly solve that, as I have to click on it, and open it. It feels more like actively debugging/investigation than passively waiting for the "green light". I realize that the narrow progress bar in the very top of the screen indicates this (I think), but to me there are two problems with that:
However much I try to restrain from going into "solution mode", I can't help it, so here is a suggestion: what if the status bar included the "sum status", something like this: Hope this was in some way helpful 😊 |
@vangberg Are you on the last commit? Right now, this is what the status tab looks like while the notebook is starting. Schermopname.2022-12-06.om.18.11.37.mov |
I guess I wasn't. That's perfect, though. 😊 |
Releasing this feature behind the After loading Pluto, open a notebook, and then press F12 to open the web developer tools. Go to the JavaScript console, and type: PLUTO_TOGGLE_PROCESS_TAB() to enable the feature. |
At any point (especially in the first minutes), we want to know what is currently loading/running/compiling, and show it to the user with #2376
Schermopname.2022-11-30.om.15.45.59.mov
New internal API
This PR adds new API that we can use in the backend to report a status item, e.g.:
This will:
notebook.status
, which is the "root task" of this notebook: all business is reported thereSubtasks
Tasks form a tree structure (of subtasks), e.g."
The current
notebook.status
will be included in the statefile, making it easy to build a frontend GUI!MVP TODO
Future work
This is also automatically adding lots of benchmarks to everyone's Pluto installation, cool! This is useful to us, as it can help with debugging when people send us an HTML export. Maybe there are other cool uses?
We definitely want user-friendly descriptions of these task (rather than
pkg_analyze
), and maybe we could also write a short sentence that is shown when that task is stuck. E.g. ifpkg_analyze
takes a long time, we can show info about Julia Pkg downloads and precompiling.Maybe we also want
report_business_failed!
for when a task fails.For some tasks, we could give an "expected time". If it's more than that time, don't show it (like the 1ms save). BUT: comment from panagiotis and michiel: we should show it, otherwise it's scary that it suddenly disappeared.
resolve_topology
should go in workspace setupEven more!!! report_progress! lines, to give super detailed timings. We don't show those by default, but you can turn on "dev mode"
Maybe: the Pluto notebook is always a "snapshot": it is what it currently is, past has no effect. But maybe this new tab should be the way out of this perfect world: it should actually show history, execution order, etc.
Maybe instead of a global map (that overwrites itself), it could be an append-only list.
Special-case cells that do an import or using
Add requests like: