Skip to content
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

Explore improving end-to-end experience of opening your first Jupyter notebook #128592

Closed
miguelsolorio opened this issue Jul 13, 2021 · 7 comments
Assignees
Labels
notebook ux User experience issues

Comments

@miguelsolorio
Copy link
Contributor

This issue covers the explorations to improve the end-to-end experience of opening a notebook for the first time.

Creating a new blank notebook

In this scenario, the user has not installed any extensions and attempts to create a new notebook file. Some proposed suggestions are:

  • Add Jupyter notebook support out of the box (creating and running notebooks)
  • Contribute to the "New File..." API and show a notebook entry
  • Display a "Select a kernel and language to get started", similar to our untitled file experience (refs)
  • Include a "Find More Kernels" option in the Kernel quick pick that goes to the marketplace
  • Also include a "Find more languages" option that goes to the marketplace
  • If a user selects a kernel and there is an associate language (i.e. Python) then the cell is auto-selected to that preferred language
  • If a user selects a language that has an associated kernel, then auto-select that kernel if there is one
  • If there is more than one kernel, prompt the user to select a kernel
  • Cache the user selection for the next time they create a new notebook or cell
  • Hide any actions in the toolbar that relate to the kernel when a cell hasn't ran yet
CleanShot.2021-07-13.at.16.23.42.mp4

Opening a notebook

TBD

@miguelsolorio miguelsolorio added ux User experience issues notebook labels Jul 13, 2021
@miguelsolorio miguelsolorio added this to the July 2021 milestone Jul 13, 2021
@miguelsolorio miguelsolorio self-assigned this Jul 13, 2021
@rchiodo
Copy link
Contributor

rchiodo commented Jul 13, 2021

What can we do to support async operations in the quick pick? Not sure if this would require an API change or not (as @misolori mentioned internally we could add a 'loading' notebook controller) but could we add other UI affordances when 'loading' is still going on?

@miguelsolorio
Copy link
Contributor Author

@rchiodo so currently we show the following whenever we are waiting for async operations that take a while:

CleanShot 2021-07-13 at 17 09 30@2x

CleanShot.2021-07-13.at.17.13.43.mp4

I wonder if we're able to follow the same pattern of updating the input placeholder with the "Loading kernels" text and then updating the rest when it's all complete? We use the same mechanism for Codespaces, Cloning repos, etc. so it's a common pattern.

@rchiodo
Copy link
Contributor

rchiodo commented Jul 14, 2021

That sounds great. I think the API for retrieving controllers would have to change to support that though? I don't believe there's any way for an extension to say - still loading?

/cc @jrieken @mattbierner @DonJayamanne @IanMatthewHuff

@jrieken
Copy link
Member

jrieken commented Jul 15, 2021

think the API for retrieving controllers would have to change to support that though

There is no API for retrieving controllers, extensions simply push them into VS Code. What can be done is allowing extensions to signal that they are still thinking. Tho, that doesn't allow for the picker with progress style UI.

@miguelsolorio
Copy link
Contributor Author

Opening a notebook

The flow for opening a notebook for the first time is similar to the flow above, except a bit simpler since it bypases the need to create a new notebook file. You'll see the same "Select a kernel" quick pick since we don't know what kernel the user has and then prompt them to install one from the marketplace. This kernel should get persisted to the workspace so the user doesn't have to keep re-selecting the same kernel.

CleanShot.2021-08-18.at.13.42.36.mp4

@miguelsolorio
Copy link
Contributor Author

Design explorations are complete for running & opening a notebook for the first time. If other scenarios come up we can address those.

@github-actions github-actions bot locked and limited conversation to collaborators Oct 29, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
notebook ux User experience issues
Projects
None yet
Development

No branches or pull requests

5 participants
@rebornix @jrieken @rchiodo @miguelsolorio and others