Giter Site home page Giter Site logo

golden-scenario's Introduction

Project

This repo has been populated by an initial template to help get you started. Please make sure to update the content to build a great experience for community-building.

As the maintainer of this project, please make a few updates:

  • Improving this README.MD file to provide a great experience
  • Updating SUPPORT.MD with content about this project's support experience
  • Understanding the security reporting process in SECURITY.MD
  • Remove this section from the README

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

golden-scenario's People

Contributors

burkeholland avatar microsoftopensource avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

golden-scenario's Issues

Sample Golden Scenario Status - Jupyter Notebooks

Scenario Status

Example walkthrough is in issue #2. However, feel free to come up with additional ideas or use cases. Just be sure to cover everything noted below.

Golden Scenario Legend

Status Definition
๐ŸŸข Passing
๐ŸŸก Issue, but not blocking
๐Ÿ”ด Blocking

Overall Status Logic:

  • If all items are passing, overall status is ๐ŸŸข
  • If items are passing or have non-blocking issues, overall status is ๐ŸŸก
  • If any items are blocked, overall status is ๐Ÿ”ด

Issues:

  • Create a log of issues below the table
  • Use ๐Ÿ’ฃ for blocking issues
  • Use ๐ŸŸก for non-blocking issues
  • Use ๐Ÿ’Ž for feature suggestions/improvements

Provide status for each subcategory (not required per issue)

Date Overall Status Local Setup AzML Setup Variable Explorer Data Viewer Running Diffing Language Server Export Live Share
09-05-2021 ๐Ÿ”ด ๐ŸŸก ๐ŸŸก ๐Ÿ”ด ๐Ÿ”ด ๐Ÿ”ด ๐ŸŸข ๐ŸŸข --
09-10-2021 ๐Ÿ”ด ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐Ÿ”ด
09-17-2021 ๐Ÿ”ด ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐Ÿ”ด
09-24-2021 ๐Ÿ”ด ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐Ÿ”ด ๐ŸŸข ๐Ÿ”ด --
10-03-2021 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸก --
10-12-2021 ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข --
10-17-2021 ๐ŸŸก ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸข --
10-22-2021 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸข --
10-31-2021 ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸข --
10-31-2021 ๐Ÿ”ด ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐Ÿ”ด ๐ŸŸก ๐ŸŸข ๐ŸŸข --
11-15-2021 ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸข --
12-05-2021 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข --
01-12-2022 Part 1 Part 2 ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข --
01-25-2022 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸก --
01-31-2022 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข --
02-11-2022 ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸข --
02-20-2022 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸก --
03-01-2022 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸข --
03-02-2022 ๐ŸŸก ๐ŸŸก NT NT ๐ŸŸข NT ๐ŸŸข NT NT
03-01-2022 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸข --
04-22-2022 ๐ŸŸก ๐ŸŸข NT ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข ๐ŸŸข NT
05-13-2022 (Liveshare Special Run) NA NA NA NA NA NA NA NA NA ๐Ÿ”ด
06-06-2022 ๐ŸŸก ๐ŸŸข ๐ŸŸข ๐ŸŸก ๐ŸŸข ๐ŸŸก ๐ŸŸก ๐ŸŸข --

๐Ÿ”ด 05-13-2022

@greazer - Did a special pass for testing Liveshare in notebooks and interactive window using Insiders. Overall LiveShare has problems that I was running into even outside of our features. These made it hard to know what might be specific to us.

Notebooks and scripts from https://github.dev/greazer/covid-19-data

  • ๐ŸŸข Display notebook and typing in cell - Works both ways
  • ๐ŸŸก Scroll notebook and type into a different cell. Host doesn't get any notification. Is this expected? Typing in guest does appear in the host though. Adding a new cell at nb end in host shows up in guest.
  • ๐Ÿ”ด Bug found (vscode#149502): Couldn't page up or down in host past some cells. Not related to LiveShare.
  • ๐Ÿ”ด Bug found(TBD): As host scrolls notebook or py script, guest should follow while in follow mode.
  • ๐Ÿ”ด Bug found(TBD): Opened requirements.txt on host in existing LS session. No syncing. Tried opening requirements.txt on target, but file never loads
  • ๐Ÿ”ด Bug found(TBD): Opening a notebook on guest and then forcing host to follow, kinda works, but scroll position is off as the guest is scrolled compared to what the host sees.
  • ๐Ÿ”ด Bug found(TBD): Sometimes outputs sync from host to guest, sometimes not. Not sure when it works or doesn't.
  • ๐Ÿ”ด Bug found(TBD): Kernel picker on guest says "Live Share Controller" (weird to call it Controller in this scenario).
  • ๐Ÿ”ด Bug found(TBD): When host is set to working kernel, when I run a cell on the guest, nothing seems to be happening on host.
  • ๐Ÿ”ด Bug found(TBD): After the above attempt to run a cell on guest, can't stop execution.
  • ๐Ÿ”ด Bug found(TBD): Guest - No commands for showing variables view. No variables view at all, or DataViewer
  • ๐Ÿ”ด Bug found(TBD): Guest - When guest has focus, no interactive window code-lenses but blue cell markers exist. Shift+enter seems to pretend to work, but doesn't. Create Interactive window is there, but doesn't do anything

Gave up. Too many problems.

๐ŸŸก 03-02-2022

First focused run using Azure ML as the compute. While doing this was not blocked, there were several concerning issues encountered along the way. Issues being entered but here's indices into the video that reflect the trouble.

Try "Edit in VS Code" from Azure ML Studio

  • 1:20 Bug 1 - Prompted to enable Azure ML extension which I already had installed, but wouldn't enable. Presumably due to the fact that a dependency (AzML remote extension) was disabled too. microsoft/vscode#144294
  • 2:50 Bug 2 - After enabling, VS Code indicated trust issues that were resolved on reloading VS Code.
  • 5:50 Bug 3 - Unknown Error retrieving Subscriptions (AzML Extension). Also prompted to reload VS Code. Just reloaded, but didn't reinvoke the URI. Known Bugs?

Try "Edit in VS Code" again.

  • 7:00 Bug 4 - Even though we're signed into AzML in the Studio, we are prompted again to sign in after going to VS Code.
  • 7:32 Bug 5 - After signing in again, get "Cannot read property 'subscription' of undefined. (AzML Extension). See: microsoft/vscode-tools-for-ai#1473.

Try "Edit in VS Code" again.

  • 9:10 Everything seems to start as expected, finally
  • 9:30 Because AzML extension activates, user is prompted to set a default workspace in the VS Code that was used to launch the remote VS code instance.
  • 9:30-14:00 Bug 6 Discussion about whether there's something that can be done to avoid having two VS Code windows start for this scenario. Likely something to address in core codebase.
  • 16:00 Confusion as to how the kernel is managed on transition from Studio to VS Code. New kernel? Connect to existing kernel?
  • 21:00 Bug 7 Really really slow ipynb saving. Turns out to be an Azure ML Studio issue as well. Better feedback for VS Code being tracked here: microsoft/vscode#144204
  • 24:46 Bug 8 After closing first instance then doing scenario again, the new instance of VS Code that starts up to initiate the remote experience is actually a remote session. This is problematic if the remote compute was shut down.
  • 25:56 Suggestion to solve above issue. ALWAYS open a new VS Code (local) window to initiate remote connection AND/OR don't open a new window if the launched VS Code is already attached to the right compute.

๐ŸŸก Overall Status for 2/20/2022

Blocking Issues

General

Setup

New File

Variable Explorer

Data Viewer

Running

Diffing

Language Server

Export

Live Share


Template: Golden Scenario Walkthrough

Overview

What product does this Golden Scenario cover? What should people know about the walkthrough before they get started? How long should it take to to through the scenario?

Please record the entire scenario and speak over it. It's important to record your thoughts as you go through.

What to look out for

Is there anything special testers need to watch for? Anything you want them to pay particular attention to?

1. Category 1

Provide the exact steps the tester should take. Include screenshots where instructions my be ambiguous.

  • Step 1
  • Step 2
  • Step 3
  • Step 4

2. Category 2

Provide the exact steps the tester should take. Include screenshots where instructions my be ambiguous.

  • Step 1
  • Step 2
  • Step 3
  • Step 4

2. Category 3

Provide the exact steps the tester should take. Include screenshots where instructions my be ambiguous.

  • Step 1
  • Step 2
  • Step 3
  • Step 4

Update The Status ๐ŸŸข๐ŸŸก๐Ÿ”ด

Remind the tester to update the status issue. Link to that issue here.

Sample Golden Scenario Walkthrough - Jupyter Notebooks

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.

image

  • 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

image

  • 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

image

  • 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.
image

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
      image

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

Template: Sample Golden Scenario Status

Scenario Status

Example walkthrough is in issue #2. However, feel free to come up with additional ideas or use cases. Just be sure to cover everything noted below.

Golden Scenario Legend

Status Definition
๐ŸŸข Passing
๐ŸŸก Issue, but not blocking
๐Ÿ”ด Blocking

Overall Status Logic:

  • If all items are passing, overall status is ๐ŸŸข
  • If items are passing or have non-blocking issues, overall status is ๐ŸŸก
  • If any items are blocked, overall status is ๐Ÿ”ด

Issues:

  • Create a log of issues below the table
  • Use ๐Ÿ’ฃ for blocking issues

Provide status for each subcategory (not required per issue)

Date Overall Status Category 1 Category 2 Category 3 Category 4
Date with link to recording ๐Ÿ”ด ๐ŸŸก ๐Ÿ”ด ๐ŸŸข

Blocking Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.