From 4f5e7e614183537f1ab20bd23585a08081e7cef6 Mon Sep 17 00:00:00 2001 From: Filip Zitny Date: Mon, 20 Oct 2025 22:21:20 +0200 Subject: [PATCH 01/10] feat: updateding contribution guide to be cleaner --- CONTRIBUTING.md | 141 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 129 insertions(+), 12 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fca3298da1..80f5f7c1c3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,6 @@ -# Contributing to the Jupyter extension for Visual Studio Code +# Contributing to the Deepnote Extension for Visual Studio Code ---- - -| `main` branch | -| ------------- | - -## | ![Main Build](https://github.com/microsoft/vscode-jupyter/actions/workflows/build-test.yml/badge.svg?branch=main) - -[For contributing to the [Microsoft Python Language Server](https://github.com/Microsoft/python-language-server) see its own repo; for [Pylance](https://github.com/microsoft/pylance-release) see its own repo; for [debugpy](https://github.com/microsoft/debugpy) see its own repo] +Thank you for your interest in contributing to the Deepnote VS Code extension! This guide will help you set up your development environment and understand the contribution workflow. ## Contributing a pull request @@ -24,12 +17,61 @@ - [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - [Python Extension for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-python.python) +
+📦Or use these commands to install the prerequisites + +#### macOS (using Homebrew) +```bash +# Install Node.js +brew install node@22 + +# Install Python +brew install python3 + +# Install VS Code +brew install --cask visual-studio-code + +# Install VS Code extensions +code --install-extension dbaeumer.vscode-eslint +code --install-extension esbenp.prettier-vscode +code --install-extension EditorConfig.EditorConfig +code --install-extension ms-python.python +``` + +#### macOS/Linux (using nvm for Node.js) +```bash +# Install nvm (if not already installed) +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash + +# Install Node.js +nvm install 22.15.1 +nvm use 22.15.1 + +# Update npm +npm install -g npm@10.9.2 + +# Install Python (Ubuntu/Debian) +sudo apt update && sudo apt install python3 python3-pip python3-venv + +# Install Python (Fedora) +sudo dnf install python3 python3-pip + +# Install VS Code (Ubuntu/Debian) +sudo snap install code --classic + +# Install VS Code extensions +code --install-extension dbaeumer.vscode-eslint +code --install-extension esbenp.prettier-vscode +code --install-extension EditorConfig.EditorConfig +code --install-extension ms-python.python +``` +
+ ### Setup ```shell -git clone https://github.com/microsoft/vscode-jupyter -cd vscode-jupyter - +git clone https://github.com/deepnote/vscode-deepnote +cd vscode-deepnote ``` #### Install Recommended Extensions @@ -117,6 +159,81 @@ npm run watch-all Sometimes you will need to run `npm run clean` and even `rm -r out dist`. This is especially true if you have added or removed files. +### Running the Extension + +After completing the setup steps, you can run the Deepnote extension in development mode: + +#### Quick Start + +1. **Open the project in VS Code** + ```bash + code . + ``` + +2. **Start the watch task** (for automatic recompilation) + - Press `Ctrl+Shift+B` (Windows/Linux) or `⇧⌘B` (macOS) + - Select `watch` from the task list + - This will continuously compile your changes in the background + +3. **Launch the Extension Development Host** + - Press `F5` or click the Run and Debug icon in the sidebar + - Select `Extension` from the dropdown menu + - Click the green play button + - A new VS Code window will open with `[Extension Development Host]` in the title + +4. **Test your changes** + - The Extension Development Host has the Deepnote extension loaded + - Open a Deepnote project or notebook file (`.deepnote`) + - Test the functionality you're working on + - Check the Debug Console in your main VS Code window for logs + +5. **Reload after making changes** + - The watch task automatically recompiles when you save files + - In the Extension Development Host window, press `Ctrl+R` (Windows/Linux) or `Cmd+R` (macOS) to reload + - Or restart the debug session with `Ctrl+Shift+F5` / `Cmd+Shift+F5` + +#### Available Debug Configurations + +The project includes several launch configurations in `.vscode/launch.json`: + +- **Extension** - Run the extension in a new VS Code window (most common for development) +- **Extension (web)** - Test the web version of the extension +- **Extension inside container** - Test in a containerized environment +- **Unit Tests** - Run unit tests without VS Code +- **Tests (Jupyter+Python Extension installed)** - Run integration tests + +#### Debugging Tips + +
+Click to expand debugging tips + +**Enable detailed logging:** +Edit `.vscode/launch.json` and add environment variables: +```json +"env": { + "VSC_JUPYTER_FORCE_LOGGING": "1", + "VSC_JUPYTER_LOG_TELEMETRY": "1", + "VSC_JUPYTER_LOG_IPYWIDGETS": "1" +} +``` + +**Set breakpoints:** +- Click in the gutter next to line numbers in your TypeScript code +- Breakpoints will pause execution in the Extension Development Host +- Inspect variables in the Debug sidebar + +**View logs:** +- Debug Console: Shows console.log output and errors +- Output panel: Select "Deepnote" from the dropdown to see extension-specific logs +- Terminal: Shows build output from the watch task + +**Common issues:** +- If changes don't appear, try `npm run clean` and restart the watch task +- If breakpoints don't work, ensure source maps are enabled (they are by default) +- If the extension doesn't load, check the Debug Console for errors + +
+ ### Errors and Warnings TypeScript errors and warnings will be displayed in the `Problems` window of Visual Studio Code. From 2beb13ad32c5d6ab6a3d55d7d9e832c2343e0141 Mon Sep 17 00:00:00 2001 From: Filip Zitny Date: Mon, 20 Oct 2025 22:28:41 +0200 Subject: [PATCH 02/10] feat: better formating --- CONTRIBUTING.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 80f5f7c1c3..04af23eff3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,6 +21,7 @@ Thank you for your interest in contributing to the Deepnote VS Code extension! T 📦Or use these commands to install the prerequisites #### macOS (using Homebrew) + ```bash # Install Node.js brew install node@22 @@ -39,6 +40,7 @@ code --install-extension ms-python.python ``` #### macOS/Linux (using nvm for Node.js) + ```bash # Install nvm (if not already installed) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash @@ -65,6 +67,7 @@ code --install-extension esbenp.prettier-vscode code --install-extension EditorConfig.EditorConfig code --install-extension ms-python.python ``` + ### Setup @@ -166,6 +169,7 @@ After completing the setup steps, you can run the Deepnote extension in developm #### Quick Start 1. **Open the project in VS Code** + ```bash code . ``` @@ -208,7 +212,9 @@ The project includes several launch configurations in `.vscode/launch.json`: Click to expand debugging tips **Enable detailed logging:** + Edit `.vscode/launch.json` and add environment variables: + ```json "env": { "VSC_JUPYTER_FORCE_LOGGING": "1", From d3eb9d0982104c00fc8044fc4ca879de3f8417c1 Mon Sep 17 00:00:00 2001 From: Filip Zitny Date: Tue, 21 Oct 2025 15:43:12 +0200 Subject: [PATCH 03/10] docs: update installation setup --- CONTRIBUTING.md | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 04af23eff3..bc8b844d09 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,16 +20,22 @@ Thank you for your interest in contributing to the Deepnote VS Code extension! T
📦Or use these commands to install the prerequisites -#### macOS (using Homebrew) +#### macOS (with brew) ```bash -# Install Node.js -brew install node@22 +# Install nvm (if not already installed) +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash + +# Install and use Node.js from .nvmrc +nvm use $(cat .nvmrc) + +# Update npm +npm install -g $(cat .npmrc) -# Install Python +# Install Python (using Homebrew) brew install python3 -# Install VS Code +# Install VS Code (using Homebrew) brew install --cask visual-studio-code # Install VS Code extensions @@ -39,18 +45,18 @@ code --install-extension EditorConfig.EditorConfig code --install-extension ms-python.python ``` -#### macOS/Linux (using nvm for Node.js) +#### macOS/Linux ```bash # Install nvm (if not already installed) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Install Node.js -nvm install 22.15.1 -nvm use 22.15.1 +nvm install $(cat .nvmrc) +nvm use $(cat .nvmrc) # Update npm -npm install -g npm@10.9.2 +npm install -g $(cat .npmrc) # Install Python (Ubuntu/Debian) sudo apt update && sudo apt install python3 python3-pip python3-venv From 9ffa76bdb17b04776e4fda75baf66c871250fd68 Mon Sep 17 00:00:00 2001 From: Filip Zitny Date: Fri, 24 Oct 2025 13:47:46 +0200 Subject: [PATCH 04/10] fix: nvm install instructions --- CONTRIBUTING.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bc8b844d09..07fd6efae3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,7 +27,8 @@ Thank you for your interest in contributing to the Deepnote VS Code extension! T curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Install and use Node.js from .nvmrc -nvm use $(cat .nvmrc) +nvm install +nvm use # Update npm npm install -g $(cat .npmrc) @@ -52,8 +53,8 @@ code --install-extension ms-python.python curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Install Node.js -nvm install $(cat .nvmrc) -nvm use $(cat .nvmrc) +nvm install +nvm use # Update npm npm install -g $(cat .npmrc) From 3022ec50dc1908e112b250ed6331a88bdb3669db Mon Sep 17 00:00:00 2001 From: Filip Zitny Date: Fri, 24 Oct 2025 13:49:30 +0200 Subject: [PATCH 05/10] fix: update duplicate steps --- CONTRIBUTING.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 07fd6efae3..00034fd188 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,9 +30,6 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install nvm use -# Update npm -npm install -g $(cat .npmrc) - # Install Python (using Homebrew) brew install python3 @@ -56,8 +53,6 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install nvm use -# Update npm -npm install -g $(cat .npmrc) # Install Python (Ubuntu/Debian) sudo apt update && sudo apt install python3 python3-pip python3-venv From 0e62508b942f6b6147cfb9b32526e08794384633 Mon Sep 17 00:00:00 2001 From: Filip Zitny <88278380+Yggdrasill501@users.noreply.github.com> Date: Sat, 25 Oct 2025 14:02:16 +0200 Subject: [PATCH 06/10] Update CONTRIBUTING.md --- CONTRIBUTING.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 00034fd188..346f4b0994 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,7 +53,6 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install nvm use - # Install Python (Ubuntu/Debian) sudo apt update && sudo apt install python3 python3-pip python3-venv From 095120af533d0379f3af71116b85f633737a72b1 Mon Sep 17 00:00:00 2001 From: Filip Zitny Date: Thu, 30 Oct 2025 13:43:07 +0100 Subject: [PATCH 07/10] fix: heading style --- CONTRIBUTING.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 586ae178ce..601720d0d7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Contributing to the Deepnote Extension for Visual Studio Code +# Contributing to the Deepnote extension for Visual Studio Code Thank you for your interest in contributing to the Deepnote VS Code extension! This guide will help you set up your development environment and understand the contribution workflow. @@ -87,7 +87,7 @@ git clone https://github.com/deepnote/vscode-deepnote cd vscode-deepnote ``` -#### Install Recommended Extensions +#### Install recommended extensions First, install all the recommended VS Code extensions. Open the Command Palette (Ctrl+Shift+P or Cmd+Shift+P) and run: @@ -97,7 +97,7 @@ Extensions: Show Recommended Extensions Then install all the extensions listed under "Workspace Recommendations". -#### Configure Access to @deepnote/blocks Package +#### Configure access to @deepnote/blocks package The `@deepnote/blocks` package is published on GitHub Packages. To install it, you'll need to authenticate with GitHub: @@ -147,7 +147,7 @@ python -m pip install black ``` -### Incremental Build +### Incremental build Run the `watch` build Tasks from the [Run Build Task...](https://code.visualstudio.com/docs/editor/tasks) command picker (short cut `CTRL+SHIFT+B` or `⇧⌘B`). This will leave build tasks running in the background and which will re-run as files are edited and saved. You can see the output from either task in the Terminal panel (use the selector to choose which output to look at). @@ -173,11 +173,11 @@ npm run watch-all Sometimes you will need to run `npm run clean` and even `rm -r out dist`. This is especially true if you have added or removed files. -### Running the Extension +### Running the extension After completing the setup steps, you can run the Deepnote extension in development mode: -#### Quick Start +#### Quick start 1. **Open the project in VS Code** @@ -207,7 +207,7 @@ After completing the setup steps, you can run the Deepnote extension in developm - In the Extension Development Host window, press `Ctrl+R` (Windows/Linux) or `Cmd+R` (macOS) to reload - Or restart the debug session with `Ctrl+Shift+F5` / `Cmd+Shift+F5` -#### Available Debug Configurations +#### Available debug configurations The project includes several launch configurations in `.vscode/launch.json`: @@ -217,7 +217,7 @@ The project includes several launch configurations in `.vscode/launch.json`: - **Unit Tests** - Run unit tests without VS Code - **Tests (Jupyter+Python Extension installed)** - Run integration tests -#### Debugging Tips +#### Debugging tips
Click to expand debugging tips @@ -251,7 +251,7 @@ Edit `.vscode/launch.json` and add environment variables:
-### Errors and Warnings +### Errors and warnings TypeScript errors and warnings will be displayed in the `Problems` window of Visual Studio Code. @@ -262,7 +262,7 @@ Then, open the debug panel by clicking the `Run and Debug` icon on the sidebar, option from the top menu, and click start. A new window will launch with the title `[Extension Development Host]`. -### Running Unit Tests +### Running unit tests Note: Unit tests are those in files with extension `.unit.test.ts`. @@ -290,7 +290,7 @@ Alter the `launch.json` file in the `"Debug Unit Tests"` section by setting the ...this will only run the suite with the tests you care about during a test run (be sure to set the debugger to run the `Debug Unit Tests` launcher). -### Running Integration Tests (with VS Code) +### Running integration tests (with VS Code) Note: Integration tests are those in files with extension `*.vscode.test*.ts`. @@ -305,7 +305,7 @@ You can also run the tests from the command-line (after compiling): npm run testVSCode # will launch the VSC UI ``` -#### Customising the Test Run +#### Customising the test run If you want to change which tests are run or which version of Python is used, you can do this by setting environment variables. The same variables work when @@ -368,7 +368,7 @@ setting a single variable for a subprocess: VSC_JUPYTER_CI_TEST_GREP=Sorting npm run testVSCode ``` -### Testing Python Scripts +### Testing Python scripts The extension has a number of scripts in ./pythonFiles. Tests for these scripts are found in ./pythonFiles/tests. To run those tests: @@ -384,11 +384,11 @@ To run only the functional tests: `python3 -m pythonFiles.tests --functional` -### Standard Debugging +### Standard debugging Clone the repo into any directory, open that directory in VSCode, and use the `Extension` launch option within VSCode. -### Coding Standards +### Coding standards Messages displayed to the user must be localized using/created constants from/in the [localize.ts](https://github.com/Microsoft/vscode-jupyter/blob/main/src/platform/common/utils/localize.ts) file. @@ -401,7 +401,7 @@ smoothly, but it allows you to help out by noticing when a step is missed or to learn in case someday you become a project maintainer as well! -### Folder Structure +### Folder structure At a high level we have a bunch of folders. Each high level is described in this wiki [page](https://github.com/deepnote/vscode-deepnote/wiki/Source-Code-Organization) @@ -481,7 +481,7 @@ Overall steps for releasing are covered in the To create a release _build_, follow the steps outlined in the [release plan](https://github.com/Microsoft/vscode-jupyter/labels/release%20plan) (which has a [template](https://github.com/Microsoft/vscode-jupyter/blob/main/.github/release_plan.md)). -## Local Build +## Local build Steps to build the extension on your machine once you've cloned the repo: From abc7d8950dd1e53eaee6f35eabe0bc0ec79fea6b Mon Sep 17 00:00:00 2001 From: Filip Zitny Date: Thu, 30 Oct 2025 13:45:30 +0100 Subject: [PATCH 08/10] docs: removing details dropdown --- CONTRIBUTING.md | 54 ------------------------------------------------- 1 file changed, 54 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 601720d0d7..2cfb338394 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,60 +26,6 @@ Thank you for your interest in contributing to the Deepnote VS Code extension! T - [EditorConfig for VS Code](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - [Python Extension for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-python.python) -
-📦Or use these commands to install the prerequisites - -#### macOS (with brew) - -```bash -# Install nvm (if not already installed) -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash - -# Install and use Node.js from .nvmrc -nvm install -nvm use - -# Install Python (using Homebrew) -brew install python3 - -# Install VS Code (using Homebrew) -brew install --cask visual-studio-code - -# Install VS Code extensions -code --install-extension dbaeumer.vscode-eslint -code --install-extension esbenp.prettier-vscode -code --install-extension EditorConfig.EditorConfig -code --install-extension ms-python.python -``` - -#### macOS/Linux - -```bash -# Install nvm (if not already installed) -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash - -# Install Node.js -nvm install -nvm use - -# Install Python (Ubuntu/Debian) -sudo apt update && sudo apt install python3 python3-pip python3-venv - -# Install Python (Fedora) -sudo dnf install python3 python3-pip - -# Install VS Code (Ubuntu/Debian) -sudo snap install code --classic - -# Install VS Code extensions -code --install-extension dbaeumer.vscode-eslint -code --install-extension esbenp.prettier-vscode -code --install-extension EditorConfig.EditorConfig -code --install-extension ms-python.python -``` - -
- ### Setup ```shell From 73d66ce89c8d6149d7b1c55a8f45b9505f3ee1c4 Mon Sep 17 00:00:00 2001 From: James Hobbs Date: Fri, 31 Oct 2025 12:32:36 +0000 Subject: [PATCH 09/10] docs: gen CR feedback --- CONTRIBUTING.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2cfb338394..6a25aad8f6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,8 +9,6 @@ Thank you for your interest in contributing to the Deepnote VS Code extension! T ## | ![Main Build](https://github.com/deepnote/vscode-deepnote/actions/workflows/ci.yml/badge.svg?branch=main) -[For contributing to the [Microsoft Python Language Server](https://github.com/Microsoft/python-language-server) see its own repo; for [Pylance](https://github.com/microsoft/pylance-release) see its own repo; for [debugpy](https://github.com/microsoft/debugpy) see its own repo] - ## Contributing a pull request ### Prerequisites @@ -336,7 +334,7 @@ Clone the repo into any directory, open that directory in VSCode, and use the `E ### Coding standards -Messages displayed to the user must be localized using/created constants from/in the [localize.ts](https://github.com/Microsoft/vscode-jupyter/blob/main/src/platform/common/utils/localize.ts) file. +Messages displayed to the user must be localized using/created constants from/in the [localize.ts](https://github.com/Microsoft/vscode-deepnote/blob/main/src/platform/common/utils/localize.ts) file. ## Development process From 393fc252e9a06959a1b5ac9c8829b2b75c5a94e8 Mon Sep 17 00:00:00 2001 From: James Hobbs Date: Fri, 31 Oct 2025 12:38:58 +0000 Subject: [PATCH 10/10] docs: correct instructions and links --- CONTRIBUTING.md | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6a25aad8f6..6ae73af82f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,25 +41,6 @@ Extensions: Show Recommended Extensions Then install all the extensions listed under "Workspace Recommendations". -#### Configure access to @deepnote/blocks package - -The `@deepnote/blocks` package is published on GitHub Packages. To install it, you'll need to authenticate with GitHub: - -1. Create a GitHub Personal Access Token (classic) with `read:packages` scope: - - - Go to https://github.com/settings/tokens - - Click "Generate new token (classic)" - - Select the `read:packages` scope - - Generate and copy the token - -2. Add the token to your global `.npmrc` file: - ```shell - echo "//npm.pkg.github.com/:_authToken=YOUR_TOKEN_HERE" >> ~/.npmrc - ``` - Replace `YOUR_TOKEN_HERE` with your actual token. - -After completing these steps, you can install dependencies normally with `npm install`. The project's `.npmrc` file is already configured to use GitHub Packages for the `@deepnote` scope. - On Apple Silicon, you will have to use system versions of `libsodium` and `libzmq` instead of the bundled ones: ```shell @@ -345,10 +326,6 @@ smoothly, but it allows you to help out by noticing when a step is missed or to learn in case someday you become a project maintainer as well! -### Folder structure - -At a high level we have a bunch of folders. Each high level is described in this wiki [page](https://github.com/deepnote/vscode-deepnote/wiki/Source-Code-Organization) - ### Typical workflow Here's an example of a typical workflow: @@ -364,12 +341,12 @@ Here's an example of a typical workflow: 1. Test with [`Extension`](https://github.com/deepnote/vscode-deepnote/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L6) launch task 1. Repeat until works in normal extension 1. Test with [`Extension (web)`](https://github.com/deepnote/vscode-deepnote/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L34) launch task -1. Run [jupyter notebook server](https://github.com/deepnote/vscode-deepnote/wiki/Connecting-to-a-remote-Jupyter-server-from-vscode.dev) to use in web testing +1. Run [jupyter notebook server](https://github.com/microsoft/vscode-jupyter/wiki/Connecting-to-a-remote-Jupyter-server-from-vscode.dev-or-github.dev) to use in web testing 1. Repeat until works in web extension 1. Write integration tests and [run](https://github.com/deepnote/vscode-deepnote/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L216) locally. 1. Submit PR 1. Check PR output to make sure tests don't fail. -1. Debug [CI test failures](https://github.com/deepnote/vscode-deepnote/wiki/Tests) +1. Debug [CI test failures](https://github.com/microsoft/vscode-jupyter/wiki/tests) ### Helping others