Overview
This is the "Golden Scenario" for a Jupyter Notebooks demo. This is what is typically covered in a 15-20 minute demo. Often while attempting to run through this demo in one go, something will stop working along the way. In total, I do not anticipate this to take over an hour (walkthrough + upload video + file issues + update scenario status).
Please record the entire walkthrough and feel free to speak over it
Free recording software: https://obsproject.com/
For a reproducible example use this repo: https://github.com/claudiaregio/data-science
Otherwise follow the generic steps below for any notebook of your liking
What to look out for
In your video and issues you file, call out things like extension startup time, notebook load time, kernel connection time, language server integration, ease-of-use, papercuts, and other UI or flow elements that may not be captured by the steps below.
1. Setup the scenario
Important: Please alternate using Setup Option A or B setup every other week.
Option A: Local execution
Option B: Azure ML execution
Enter Azure ML Extension Bugs in the AzML Extension repo or the Jupyter repo. We'll take care of moving them appropriately)
- Install the latest Azure ML Extension from the marketplace.
- Create or start an Azure ML compute. Instructions can be found on the wiki.
- Open Azure ML Studio
- Create or load a notebook of your choice (obviously this can obviate the need for step 2 below)
- Ensure that you can run at least one cell in Azure ML Studio.
- Click the "Edit in VS Code" button to launch a remote VS Code session and continue this golden scenario there.
- Goto Step 3
2. New Notebook
- In file explorer viewlet, right click and select "New File", give .ipynb extension
- In file explorer viewlet, click the "New File" icon, give .ipynb extension
- Open command palette and select "Jupyter: Create New Blank Notebook"
- โ๏ธ Make sure all versions load and in an acceptable time
3. Variable Explorer and Data Viewer
- Open Titanic Notebook
- Run all cells (make sure you're connected to golden_scenario_env)
- โ๏ธ While cells are running, click on "Go To Running Cell" and check that you're moved to the running cell in the notebook
- When the notebook is done running, open the variable explorer
- โ๏ธ All variables should be loaded. Ideally there is no 'Loading...' marker on the variables, but if there is it doesn't stay long.
- Sort the variables by name and by data type
- Open titanic_df in the data viewer from the variable explorer
- โ๏ธ Make sure variables remain defined after opening a dataframe in the data viewer
- Check the filter functionality
- Close data viewer and variable explorer
- Go back to notebook
4. General Notebook UI/UX
- Scroll around the notebook
- Use the Outline of the Notebook to go to
Data Exploration
- Interact with the ipywidget (second cell under
Data Exploration
)
- Collapse the output of the cell above and open again
- Collapse the input of the cell above and open it again
- Collapse the first cell below the title of the Notebook and then open it again
- Select *the two cells under
Test Train Split
and drag them above the "Models" header and then back to where they were
- Fold the code under
Neural Network
under the "def" function
- Use the search functionality (Ctrl / Cmd + F) to search for a word
- โ๏ธ Use various filtering options to make sure that the search works across the entire notebook (e.g. inputs, outputs, text rendering, etc.)
- โ๏ธ Make sure that search works in an acceptable time
5. Running
- Run all above/run all below
- Start run by line
- Run all the way through a cell
- Interrupt halfway through a cell
- โ๏ธ Make sure it works for cells that start with comments or start with code
- โ๏ธ Make sure variable explorer opens and variables update as you iterate through
6. Intellisense
-
First check that you do not have the following setting enabled/set to any delay: "editor.quickSuggestionsDelay":
-
Create a new cell at bottom of notebook
-
Type titanic_df.
-
Type titanic_df["Embarked"].value_counts()
-
Type titanic_df.groupby(by='Sex').Age.mean()
-
Type titanic_df.sort_values(by='Age', inplace=True)
-
โ๏ธ For each of the above, make sure the intellisense drop down options pop up
-
โ๏ธ For each of the above, pay special attention to perf
For any bugs related to intellisense, go to your terminal and look for the language server output logs.
6. Debugging (to come)
7. Live Share (Nice to Have)
- Have LiveShare installed
- Start a session with notebook
- Invite someone to a session and play around with the notebook
- โ๏ธ Make sure guest can see rendered notebook
- โ๏ธ Make sure guest can make code changes/you can see guest code changes
- โ๏ธ Make sure you can see guest cursor
- Toggle the live share setting below
- โ๏ธ Make sure guest can/can't run cells based on the setting
8. Diffing
- Make some changes in the notebook
- Open up the diff view of the notebook
- โ๏ธ Make sure it opens with the original notebook file still open
- โ๏ธ Make sure the diff changes are as expected
- Scroll throughout the entire diff view
- Open and close some metadata and output collapsed changes
- โ๏ธ Make sure none of the UI elements overlap
- Save notebook, close, reopen.
- โ๏ธ Make sure changes made are saved
9. Export to Python Script/HTML/PDF
- Convert to Python script
- Convert to HTML
- โ๏ธ Make sure all versions work
10. Upload Recording
Title of the recording should just be the date in MM-DD-YY format.
Jupyter Notebooks Golden Scenario Channel
11. File Relevant Issues
Blocking bug
Non-blocking bug
Request enhancement
Where you are able, tag timestamps in your recorded video
IMPORTANT: The above links can help, but if you don't use them, don't forget to add the label nb-golden
to any filed issues. If the issue is considered blocking, also be sure to add the important
label to ensure it is investigated asap.
12. Update the Status of the Run ๐ข ๐ก ๐ด
Jupyter Notebook Golden Scenario Status