From f6ef09de1045a6b786b88f370f1c45cd0a8b5ef2 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:44:44 +0000 Subject: [PATCH 01/10] Rename all instances of microsoft/vscode-jupyter to deepnote/vscode-deepnote --- .github/commands.json | 2 +- .github/endgame_plan.md | 6 ++--- .vscode/launch.json | 2 +- .vscode/notebooks/CITestResults.ipynb | 6 ++--- .vscode/notebooks/GithubLabels.ipynb | 4 ++-- CONTRIBUTING.md | 24 +++++++++---------- api/package.json | 2 +- build/ci/postInstall.js | 2 +- build/conda-nonconda-test-requirements.txt | 2 +- build/venv-test-ipywidgets7-requirements.txt | 2 +- build/verifyProposedApiUsage.ts | 2 +- package.nls.json | 4 ++-- pythonFiles/aggregateTestResults.py | 4 ++-- .../kernel/addRunCellHook.py | 2 +- src/kernels/errors/jupyterWaitForIdleError.ts | 2 +- src/kernels/execution/cellExecution.ts | 6 ++--- .../execution/cellExecutionMessageHandler.ts | 14 +++++------ src/kernels/execution/codeExecution.ts | 2 +- src/kernels/execution/helpers.ts | 2 +- src/kernels/jupyter/jupyterUtils.ts | 2 +- .../session/jupyterKernelSessionFactory.ts | 2 +- src/kernels/kernelDependencyService.node.ts | 4 ++-- .../contributedKerneFinder.node.unit.test.ts | 4 ++-- .../contributedLocalKernelSpecFinder.node.ts | 2 +- .../interpreterKernelSpecFinderHelper.node.ts | 2 +- .../raw/launcher/kernelEnvVarsService.node.ts | 4 ++-- .../raw/launcher/kernelProcess.node.ts | 4 ++-- .../raw/session/rawKernelConnection.node.ts | 2 +- .../controllers/controllerRegistration.ts | 2 +- .../remoteIPyWidgetScriptManager.ts | 2 +- src/notebooks/controllers/ipywidgets/types.ts | 2 +- .../preferredKernelConnectionService.ts | 2 +- .../controllers/vscodeNotebookController.ts | 2 +- .../debugger/debuggingManagerBase.ts | 2 +- src/notebooks/debugger/helper.ts | 2 +- src/platform/common/utils/localize.ts | 2 +- src/platform/errors/errorUtils.ts | 2 +- src/platform/errors/index.ts | 4 ++-- src/platform/errors/jupyterSelfCertsError.ts | 6 ++--- .../installer/condaInstaller.node.ts | 2 +- .../installer/moduleInstaller.node.ts | 4 ++-- .../interpreter/installer/pinnedPackages.ts | 2 +- .../installer/poetryInstaller.node.ts | 2 +- .../api/kernels/kernelProgressIndicator.ts | 2 +- .../intellisense/kernelCompletionProvider.ts | 2 +- .../jupyterPasswordConnect.ts | 2 +- src/test/datascience/.vscode/settings.json | 2 +- src/test/datascience/debugger.vscode.test.ts | 10 ++++---- .../interactiveDebugging.vscode.common.ts | 2 +- .../interactiveDebugging.vscode.web.test.ts | 2 +- .../interactiveWindow.vscode.common.test.ts | 2 +- .../manualTestFiles/manualTestFile.py | 2 +- .../notebook/executionService.vscode.test.ts | 2 +- .../completionProvider.vscode.common.test.ts | 4 ++-- .../notebook/kernelRankingHelper.ts | 2 +- .../notebook/nonPythonKernels.vscode.test.ts | 2 +- .../notebook/withMixedMimeTypeOutput.ipynb | 2 +- .../variableView/variableView.vscode.test.ts | 4 ++-- .../standardWidgets.vscode.common.test.ts | 6 ++--- .../thirdpartyWidgets.vscode.common.test.ts | 8 +++---- src/test/smoke/datascience.smoke.test.ts | 2 +- .../api.jupyterProvider.vscode.test.ts | 2 +- src/test/standardTest.node.ts | 2 +- .../ipywidgets/rendererComms.ts | 2 +- .../webview-side/ipywidgets/kernel/index.ts | 2 +- .../ipywidgets/kernel/scriptManager.ts | 2 +- .../webview-side/ipywidgets/renderer/index.ts | 2 +- 67 files changed, 112 insertions(+), 112 deletions(-) diff --git a/.github/commands.json b/.github/commands.json index 38da97915a..2d8c21b0da 100644 --- a/.github/commands.json +++ b/.github/commands.json @@ -261,7 +261,7 @@ "action": "close", "reason": "not_planned", "addLabel": "*caused-by-extension", - "comment": "It looks like this is caused by the Jupyter extension. Please file the issue to the [Jupyter extension repository](https://github.com/microsoft/vscode-jupyter). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting guidelines](https://aka.ms/vscodeissuereporting) for more information.\n\nHappy Coding!" + "comment": "It looks like this is caused by the Jupyter extension. Please file the issue to the [Jupyter extension repository](https://github.com/deepnote/vscode-deepnote). Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our [issue reporting guidelines](https://aka.ms/vscodeissuereporting) for more information.\n\nHappy Coding!" }, { "type": "comment", diff --git a/.github/endgame_plan.md b/.github/endgame_plan.md index 8c243d4ade..0a11ab6910 100644 --- a/.github/endgame_plan.md +++ b/.github/endgame_plan.md @@ -1,14 +1,14 @@ -* [Endgame Template](https://github.com/microsoft/vscode-jupyter/blob/main/.github/endgame_plan.md) +* [Endgame Template](https://github.com/deepnote/vscode-deepnote/blob/main/.github/endgame_plan.md) ## Thursday - [ ] Ensure that any CI test failures have issues assigned to that area's owner. - [ ] Work with the build champ to drive the build to green by fixing/disabling tests or pinging area owners to do so. ## Friday -- [ ] Review [Component Governance](https://dev.azure.com/monacotools/Monaco/_componentGovernance/191876) (Click on "microsoft/vscode-jupyter" on that page) and resolve all High/Severe issues. +- [ ] Review [Component Governance](https://dev.azure.com/monacotools/Monaco/_componentGovernance/191876) (Click on "deepnote/vscode-deepnote" on that page) and resolve all High/Severe issues. - [ ] Focus on resolving `Critical` and `High` priority issues as others will be addressed in the `debt` week. - [ ] Manually add any repository dependencies (if you can't add manually, refer [here](https://docs.opensource.microsoft.com/tools/cg/features/cgmanifest/)). Only add a cgmanifest.json if the components are not NPM or are not dev only. - Instructions on updating `npm` dependencies in `package.json` & `package-lock.json` can be found [here](https://github.com/microsoft/vscode-jupyter/wiki/Resolving-Component-Governance-and-Dependabot-issues-(updating-package-lock.json)). + Instructions on updating `npm` dependencies in `package.json` & `package-lock.json` can be found [here](https://github.com/deepnote/vscode-deepnote/wiki/Resolving-Component-Governance-and-Dependabot-issues-(updating-package-lock.json)). - [ ] Create new release branch with format `release/release-YYYY.MM`. * Note: The release branch is now ready for to be published (or hotfixed) - [ ] Back on the `main` branch, bump the version in `package.json`. diff --git a/.vscode/launch.json b/.vscode/launch.json index 7cce9db61d..9c47f90ff8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -127,7 +127,7 @@ } }, { - // Run this first: https://github.com/microsoft/vscode-jupyter/blob/main/src/test/datascience/setupTestEnvs.cmd + // Run this first: https://github.com/deepnote/vscode-deepnote/blob/main/src/test/datascience/setupTestEnvs.cmd // Then specify either a grep below or mark a test as 'test.only' to run the test that's failing. "name": "Tests (Jupyter+Python Extension installed, *.vscode.test.ts)", "type": "extensionHost", diff --git a/.vscode/notebooks/CITestResults.ipynb b/.vscode/notebooks/CITestResults.ipynb index e9642a08a3..bbbaf04538 100644 --- a/.vscode/notebooks/CITestResults.ipynb +++ b/.vscode/notebooks/CITestResults.ipynb @@ -85,7 +85,7 @@ "\n", "def getRuns():\n", " runsResponse = requests.get(\n", - " \"https://api.github.com/repos/microsoft/vscode-jupyter/actions/workflows/aggregate-test-results.yml/runs?per_page=50\",\n", + " \"https://api.github.com/repos/deepnote/vscode-deepnote/actions/workflows/aggregate-test-results.yml/runs?per_page=50\",\n", " headers={\n", " \"Accept\": \"application/vnd.github+json\",\n", " \"Authorization\": f\"Bearer {authtoken}\",\n", @@ -143,7 +143,7 @@ "\n", "def getArtifactData(id):\n", " testResultsResponse = requests.get(\n", - " f\"https://api.github.com/repos/microsoft/vscode-jupyter/actions/artifacts/{id}/zip\",\n", + " f\"https://api.github.com/repos/deepnote/vscode-deepnote/actions/artifacts/{id}/zip\",\n", " headers={\n", " \"Accept\": \"application/vnd.github+json\",\n", " \"Authorization\": f\"Bearer {authtoken}\",\n", @@ -311,7 +311,7 @@ "# post to create new github issue\n", "def createIssue(title, body):\n", " print(\"Creating issue for \" + title)\n", - " url = 'https://api.github.com/repos/microsoft/vscode-jupyter/issues'\n", + " url = 'https://api.github.com/repos/deepnote/vscode-deepnote/issues'\n", " data = {\n", " 'title': title,\n", " 'body': body,\n", diff --git a/.vscode/notebooks/GithubLabels.ipynb b/.vscode/notebooks/GithubLabels.ipynb index 8dfc0ba84a..6d58e1d4a0 100644 --- a/.vscode/notebooks/GithubLabels.ipynb +++ b/.vscode/notebooks/GithubLabels.ipynb @@ -74,7 +74,7 @@ } ], "source": [ - "repo_jupyter = g.get_repo('microsoft/vscode-jupyter')\n", + "repo_jupyter = g.get_repo('deepnote/vscode-deepnote')\n", "\n", "for l in repo_jupyter.get_labels():\n", " if (l.color == 'c5def5'):\n", @@ -114,7 +114,7 @@ } ], "source": [ - "repo_jupyter_internal = g.get_repo('microsoft/vscode-jupyter-internal')\n", + "repo_jupyter_internal = g.get_repo('deepnote/vscode-deepnote-internal')\n", "\n", "for l in repo_jupyter_internal.get_labels():\n", " if (l.color == 'c5def5'):\n", diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7804b104c3..94469181ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ | `main` branch | | ------------- | -## | ![Main Build](https://github.com/microsoft/vscode-jupyter/actions/workflows/build-test.yml/badge.svg?branch=main) +## | ![Main Build](https://github.com/deepnote/vscode-deepnote/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] @@ -27,7 +27,7 @@ ### Setup ```shell -git clone https://github.com/microsoft/vscode-jupyter +git clone https://github.com/deepnote/vscode-deepnote cd vscode-jupyter ``` @@ -201,7 +201,7 @@ be matched against suite and test "names" to be run. By default all tests are run. For example, to run only the tests in the `DataScience - Kernels Finder` suite (from -[`src/test/datascience/kernel-launcher/kernelFinder.vscode.test.ts`](https://github.com/microsoft/vscode-jupyter/blob/269e0790f9ef6f1571140f0650c6b5fb844f1940/src/test/datascience/kernel-launcher/kernelFinder.vscode.test.ts)) +[`src/test/datascience/kernel-launcher/kernelFinder.vscode.test.ts`](https://github.com/deepnote/vscode-deepnote/blob/269e0790f9ef6f1571140f0650c6b5fb844f1940/src/test/datascience/kernel-launcher/kernelFinder.vscode.test.ts)) you would set the value to `Kernels Finder`. Be sure to escape any grep-sensitive characters in your suite name. @@ -209,7 +209,7 @@ Be sure to escape any grep-sensitive characters in your suite name. In some rare cases in the "system" tests the `VSC_JUPYTER_CI_TEST_GREP` environment variable is ignored. If that happens then you will need to temporarily modify the `const defaultGrep =` line in -[`src/test/index.ts`](https://github.com/microsoft/vscode-jupyter/blob/de1bfe1cbebc0f4e570dc4ae7e1ca057abb0533e/src/test/index.ts#L62). +[`src/test/index.ts`](https://github.com/deepnote/vscode-deepnote/blob/de1bfe1cbebc0f4e570dc4ae7e1ca057abb0533e/src/test/index.ts#L62). _Launching from VSCode_ @@ -269,7 +269,7 @@ 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/microsoft/vscode-jupyter/wiki/Source-Code-Organization) +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 @@ -282,16 +282,16 @@ Here's an example of a typical workflow: 1. Start VS code Insiders root 1. CTRL+SHIFT+B (run the task `compile`) 1. Make code changes -1. Write and [run](https://github.com/microsoft/vscode-jupyter/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L252) unit tests if appropriate -1. Test with [`Extension`](https://github.com/microsoft/vscode-jupyter/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L6) launch task +1. Write and [run](https://github.com/deepnote/vscode-deepnote/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L252) unit tests if appropriate +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/microsoft/vscode-jupyter/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L34) launch task -1. Run [jupyter notebook server](https://github.com/microsoft/vscode-jupyter/wiki/Connecting-to-a-remote-Jupyter-server-from-vscode.dev) to use in web testing +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. Repeat until works in web extension -1. Write integration tests and [run](https://github.com/microsoft/vscode-jupyter/blob/29c4be79f64df1858692321b43c3079bb77bdd69/.vscode/launch.json#L216) locally. +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/microsoft/vscode-jupyter/wiki/Tests) +1. Debug [CI test failures](https://github.com/deepnote/vscode-deepnote/wiki/Tests) ### Helping others @@ -321,7 +321,7 @@ All development is actively done in the `main` branch of the repository. This allows us to have a [development build](#development-build) which is expected to be stable at all times. Once we reach a release candidate, it becomes -our [release branch](https://github.com/microsoft/vscode-jupyter/branches). +our [release branch](https://github.com/deepnote/vscode-deepnote/branches). At that point only what is in the release branch will make it into the next release. diff --git a/api/package.json b/api/package.json index d6ff233f0a..a2968a4723 100644 --- a/api/package.json +++ b/api/package.json @@ -12,7 +12,7 @@ ], "types": "api.d.ts", "license": "MIT", - "homepage": "https://github.com/microsoft/vscode-jupyter", + "homepage": "https://github.com/deepnote/vscode-deepnote", "repository": { "type": "git", "url": "https://github.com/Microsoft/vscode-jupyter" diff --git a/build/ci/postInstall.js b/build/ci/postInstall.js index b151a82b4a..12e4f3e76d 100644 --- a/build/ci/postInstall.js +++ b/build/ci/postInstall.js @@ -109,7 +109,7 @@ function fixJupyterLabRenderers() { } /** - * Ensures extension loads in safari (https://github.com/microsoft/vscode-jupyter/issues/10621) + * Ensures extension loads in safari (https://github.com/deepnote/vscode-deepnote/issues/10621) * Some of the regexes are not supported in safari and not required either. */ function fixStripComments() { diff --git a/build/conda-nonconda-test-requirements.txt b/build/conda-nonconda-test-requirements.txt index bcaf85d97a..e32b424b99 100644 --- a/build/conda-nonconda-test-requirements.txt +++ b/build/conda-nonconda-test-requirements.txt @@ -1,4 +1,4 @@ # List of requirements for conda environments that cannot be installed using conda -# Pinned per ipywidget 8 support: https://github.com/microsoft/vscode-jupyter/issues/11598 +# Pinned per ipywidget 8 support: https://github.com/deepnote/vscode-deepnote/issues/11598 matplotlib ipympl diff --git a/build/venv-test-ipywidgets7-requirements.txt b/build/venv-test-ipywidgets7-requirements.txt index 839277075b..90017b977f 100644 --- a/build/venv-test-ipywidgets7-requirements.txt +++ b/build/venv-test-ipywidgets7-requirements.txt @@ -4,7 +4,7 @@ pandas # Install jupyter itself so we end up with a kernel jupyter # List of requirements for conda environments that cannot be installed using conda -# Pinned per ipywidget 8 support: https://github.com/microsoft/vscode-jupyter/issues/11598 +# Pinned per ipywidget 8 support: https://github.com/deepnote/vscode-deepnote/issues/11598 ipywidgets==8.1.7 anywidget matplotlib diff --git a/build/verifyProposedApiUsage.ts b/build/verifyProposedApiUsage.ts index 50921b3253..ff57f33c0e 100644 --- a/build/verifyProposedApiUsage.ts +++ b/build/verifyProposedApiUsage.ts @@ -22,7 +22,7 @@ async function getPackageJsonInMainBranch( tag: string ): Promise<{ enabledApiProposals: string[]; engines: { vscode: string } }> { // If we can find the latest tag, thats even better. - const url = `https://raw.githubusercontent.com/microsoft/vscode-jupyter/${tag}/package.json`; + const url = `https://raw.githubusercontent.com/deepnote/vscode-deepnote/${tag}/package.json`; const response = await fetch(url); return await response.json(); } diff --git a/package.nls.json b/package.nls.json index f323d4cfec..8f7bf8239b 100644 --- a/package.nls.json +++ b/package.nls.json @@ -129,8 +129,8 @@ "jupyter.configuration.jupyter.logging.level.warn": "Warning and error messages are logged with this level.", "jupyter.configuration.jupyter.logging.level.error": "Only error messages are logged with this level.", "jupyter.configuration.jupyter.logging.level.description": "The logging level the extension logs at.", - "jupyter.configuration.jupyter.experiments.optInto.markdownDescription": "List of experiments to opt into. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/microsoft/vscode-jupyter/wiki/Experiments).", - "jupyter.configuration.jupyter.experiments.optOutFrom.markdownDescription": "List of experiments to opt out of. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/microsoft/vscode-jupyter/wiki/Experiments).", + "jupyter.configuration.jupyter.experiments.optInto.markdownDescription": "List of experiments to opt into. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/deepnote/vscode-deepnote/wiki/Experiments).", + "jupyter.configuration.jupyter.experiments.optOutFrom.markdownDescription": "List of experiments to opt out of. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/deepnote/vscode-deepnote/wiki/Experiments).", "jupyter.configuration.jupyter.widgetScriptSources.items.enumDescriptions.0": "Loads widget (javascript) scripts from https://www.jsdelivr.com/", "jupyter.configuration.jupyter.widgetScriptSources.items.enumDescriptions.1": "Loads widget (javascript) scripts from https://unpkg.com/", "jupyter.configuration.jupyter.widgetScriptSources.items.custom": "Loads widget (javascript) scripts from a custom CDN, following the provided URL template. ", diff --git a/pythonFiles/aggregateTestResults.py b/pythonFiles/aggregateTestResults.py index 728aac4aa8..3dd2feedd8 100644 --- a/pythonFiles/aggregateTestResults.py +++ b/pythonFiles/aggregateTestResults.py @@ -14,7 +14,7 @@ # %% def getRuns(createdDate): runsResponse = requests.get( - "https://api.github.com/repos/microsoft/vscode-jupyter/actions/workflows/build-test.yml/runs", + "https://api.github.com/repos/deepnote/vscode-deepnote/actions/workflows/build-test.yml/runs", params={"created": createdDate, "branch": "main"}, headers={ "Accept": "application/vnd.github+json", @@ -36,7 +36,7 @@ def getRuns(createdDate): def getArtifactData(id): testResultsResponse = requests.get( - f"https://api.github.com/repos/microsoft/vscode-jupyter/actions/artifacts/{id}/zip", + f"https://api.github.com/repos/deepnote/vscode-deepnote/actions/artifacts/{id}/zip", headers={ "Accept": "application/vnd.github+json", "Authorization": f"Bearer {authtoken}", diff --git a/pythonFiles/vscode_datascience_helpers/kernel/addRunCellHook.py b/pythonFiles/vscode_datascience_helpers/kernel/addRunCellHook.py index c7237da305..0a1393f057 100644 --- a/pythonFiles/vscode_datascience_helpers/kernel/addRunCellHook.py +++ b/pythonFiles/vscode_datascience_helpers/kernel/addRunCellHook.py @@ -8,7 +8,7 @@ # This function computes the hash for the code. It must follow the same algorithm as in use here: -# https://github.com/microsoft/vscode-jupyter/blob/312511f3cbd8b2bb5bc70fa9b771429e22d0c258/src/client/datascience/editor-integration/cellhashprovider.ts#L181 +# https://github.com/deepnote/vscode-deepnote/blob/312511f3cbd8b2bb5bc70fa9b771429e22d0c258/src/client/datascience/editor-integration/cellhashprovider.ts#L181 def __VSCODE_compute_hash(code, number=0): hash_digest = _VSCODE_hashlib.sha1(code.encode("utf-8")).hexdigest() return "".format(number, hash_digest[:12]) diff --git a/src/kernels/errors/jupyterWaitForIdleError.ts b/src/kernels/errors/jupyterWaitForIdleError.ts index fd1fbe7546..a65af85aa5 100644 --- a/src/kernels/errors/jupyterWaitForIdleError.ts +++ b/src/kernels/errors/jupyterWaitForIdleError.ts @@ -10,7 +10,7 @@ import { BaseKernelError } from './types'; * * Cause: * Jupyter [session](https://jupyterlab.readthedocs.io/en/stable/api/modules/services.session.html) never returns an 'idle' status message on startup. - * This might happen if the kernel hangs. One such example was this issue: https://github.com/microsoft/vscode-jupyter/issues/10940 + * This might happen if the kernel hangs. One such example was this issue: https://github.com/deepnote/vscode-deepnote/issues/10940 * * Handled by: * Should show up in the executing cell (if there is one), otherwise a notification will pop up. diff --git a/src/kernels/execution/cellExecution.ts b/src/kernels/execution/cellExecution.ts index 5bedc16970..bb12a15b10 100644 --- a/src/kernels/execution/cellExecution.ts +++ b/src/kernels/execution/cellExecution.ts @@ -61,7 +61,7 @@ export class CellExecutionFactory { * * WARNING: Do not dispose `request: Kernel.IShellFuture` object. * Even after request.done & execute_reply is sent we could have more messages coming from iopub. - * Further details here https://github.com/microsoft/vscode-jupyter/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 + * Further details here https://github.com/deepnote/vscode-deepnote/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 * */ export class CellExecution implements ICellExecution, IDisposable { @@ -471,7 +471,7 @@ export class CellExecution implements ICellExecution, IDisposable { // WARNING: Do not dispose `request`. // Even after request.done & execute_reply is sent we could have more messages coming from iopub. - // We have tests for this & check https://github.com/microsoft/vscode-jupyter/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 + // We have tests for this & check https://github.com/deepnote/vscode-deepnote/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 try { // When the request finishes we are done @@ -484,7 +484,7 @@ export class CellExecution implements ICellExecution, IDisposable { // try { // // The time from the kernel is more accurate, as that will ignore the network latency. // // Note: There could be an offset between the time on the kernel and the time on the client. - // // https://github.com/microsoft/vscode-jupyter/issues/14072 + // // https://github.com/deepnote/vscode-deepnote/issues/14072 // completedTime = new Date(reply.header.date).getTime(); // } catch { // // diff --git a/src/kernels/execution/cellExecutionMessageHandler.ts b/src/kernels/execution/cellExecutionMessageHandler.ts index cce4cadedf..67c2fe5233 100644 --- a/src/kernels/execution/cellExecutionMessageHandler.ts +++ b/src/kernels/execution/cellExecutionMessageHandler.ts @@ -225,7 +225,7 @@ export class CellExecutionMessageHandler implements IDisposable { this.execution = cellExecution; // We're in all messages. // When using the `interact` function in Python, we can get outputs from comm messages even before execution has completed. - // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information on why we need to monitor anyMessage and iopubMessage signals. + // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information on why we need to monitor anyMessage and iopubMessage signals. this.kernel.anyMessage.connect(this.onKernelAnyMessage, this); this.kernel.iopubMessage.connect(this.onKernelIOPubMessage, this); @@ -395,13 +395,13 @@ export class CellExecutionMessageHandler implements IDisposable { } } // We're only interested in messages after execution has completed. - // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. + // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. if (direction !== 'send' || !this.completedExecution) { return; } if (jupyterLab.KernelMessage.isCommMsgMsg(msg) && this.ownedCommIds.has(msg.content.comm_id)) { // Looks like we have a comm msg request sent by some output or the like. - // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. + // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. this.ownedRequestMsgIds.add(msg.header.msg_id); } } @@ -411,11 +411,11 @@ export class CellExecutionMessageHandler implements IDisposable { } // We're only interested in messages after execution has completed. - // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. + // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. // Handle iopub messages that are sent from Jupyter in response to some // comm message (requests) sent by an output widget. - // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. + // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. if ( !msg.parent_header || !('msg_id' in msg.parent_header) || @@ -497,7 +497,7 @@ export class CellExecutionMessageHandler implements IDisposable { // try { // // The time from the kernel is more accurate, as that will ignore the network latency. // // Note: There could be an offset between the time on the kernel and the time on the client. - // // https://github.com/microsoft/vscode-jupyter/issues/14072 + // // https://github.com/deepnote/vscode-deepnote/issues/14072 // // this.startTime = new Date(msg.header.date).getTime(); // } catch { // // @@ -980,7 +980,7 @@ export class CellExecutionMessageHandler implements IDisposable { } if (msg.parent_header.msg_type === 'comm_msg' && msg.header.msg_type === 'stream') { - // Fix for https://github.com/microsoft/vscode-jupyter/issues/15996 + // Fix for https://github.com/deepnote/vscode-deepnote/issues/15996 // We're not interested in stream messages that are part of comm messages. return; } diff --git a/src/kernels/execution/codeExecution.ts b/src/kernels/execution/codeExecution.ts index 033f1d1103..7fcb80b799 100644 --- a/src/kernels/execution/codeExecution.ts +++ b/src/kernels/execution/codeExecution.ts @@ -32,7 +32,7 @@ const extensionIdsPerExtension = new Map(); * WARNING: Do not dispose `request: Kernel.IShellFuture` object. * Even after request.done & execute_reply is sent we could have more messages coming from iopub. * E.g. we could have messages from a bg thread. - * Further details here https://github.com/microsoft/vscode-jupyter/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 + * Further details here https://github.com/deepnote/vscode-deepnote/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 */ export class CodeExecution implements ICodeExecution, IDisposable { public readonly type = 'code'; diff --git a/src/kernels/execution/helpers.ts b/src/kernels/execution/helpers.ts index 78ab6f08ee..7b93e18e35 100644 --- a/src/kernels/execution/helpers.ts +++ b/src/kernels/execution/helpers.ts @@ -71,7 +71,7 @@ function sortOutputItemsBasedOnDisplayOrder(outputItems: NotebookCellOutputItem[ let indexOfMimeTypeB = orderOfMimeTypes.findIndex((mime) => isMimeTypeMatch(mime, outputItemB.mime)); // Sometimes we can have mime types with empty data, e.g. when using holoview we can have `application/vnd.holoviews_load.v0+json` with empty value. // & in these cases we have HTML/JS and those take precedence. - // https://github.com/microsoft/vscode-jupyter/issues/6109 + // https://github.com/deepnote/vscode-deepnote/issues/6109 if (isEmptyVendoredMimeType(outputItemA)) { indexOfMimeTypeA = -1; } diff --git a/src/kernels/jupyter/jupyterUtils.ts b/src/kernels/jupyter/jupyterUtils.ts index 3576e4be92..8953fe1a40 100644 --- a/src/kernels/jupyter/jupyterUtils.ts +++ b/src/kernels/jupyter/jupyterUtils.ts @@ -99,7 +99,7 @@ export function createJupyterConnectionInfo( // When using built in Jupyter Server providers, & we have a token // Then we need to ensure the same token information is setup as a header for websockets as well. - // This same change had to be made for JuptyerHub extension, see https://github.com/microsoft/vscode-jupyter-hub/pull/65 + // This same change had to be made for JuptyerHub extension, see https://github.com/deepnote/vscode-deepnote-hub/pull/65 if ( token && jupyterHandle.extensionId === JVSC_EXTENSION_ID && diff --git a/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts b/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts index ec488b88a4..3d7c0921e7 100644 --- a/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts +++ b/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts @@ -310,7 +310,7 @@ export class JupyterKernelSessionFactory implements IKernelSessionFactory { // If kernelName is empty this can cause problems for servers that don't // understand that empty kernel name means the default kernel. - // See https://github.com/microsoft/vscode-jupyter/issues/5290 + // See https://github.com/deepnote/vscode-deepnote/issues/5290 const kernelName = getNameOfKernelConnection(options.kernelConnection) ?? options.kernelSpecManager?.specs?.default ?? ''; diff --git a/src/kernels/kernelDependencyService.node.ts b/src/kernels/kernelDependencyService.node.ts index 2f5c6d31f5..a2b4ce9eee 100644 --- a/src/kernels/kernelDependencyService.node.ts +++ b/src/kernels/kernelDependencyService.node.ts @@ -268,7 +268,7 @@ export class KernelDependencyService implements IKernelDependencyService { const options = [installOption]; if (resource && !cannotChangeKernels) { // Due to a bug in our code, if we don't have a resource, don't display the option to change kernels. - // https://github.com/microsoft/vscode-jupyter/issues/6135 + // https://github.com/deepnote/vscode-deepnote/issues/6135 options.push(selectKernelOption); } options.push(moreInfoOption); @@ -303,7 +303,7 @@ export class KernelDependencyService implements IKernelDependencyService { }); // Link to our wiki page on jupyter kernels + ipykernel - // https://github.com/microsoft/vscode-jupyter/wiki/Jupyter-Kernels-and-the-Jupyter-Extension#python-extension-and-ipykernel + // https://github.com/deepnote/vscode-deepnote/wiki/Jupyter-Kernels-and-the-Jupyter-Extension#python-extension-and-ipykernel void env.openExternal(Uri.parse('https://aka.ms/AAhi594')); } // "More Info" isn't a full valid response here, so reprompt after showing it diff --git a/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts b/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts index 3108a35723..4b20d6a4f2 100644 --- a/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts +++ b/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts @@ -835,7 +835,7 @@ import { setPythonApi } from '../../../platform/interpreter/helpers'; ].forEach((activePythonEnv) => { suite(activePythonEnv ? `With active Python (${activePythonEnv.id})` : 'without active Python', () => { setup(function () { - // Flaky windows unit tests. https://github.com/microsoft/vscode-jupyter/issues/13462 + // Flaky windows unit tests. https://github.com/deepnote/vscode-deepnote/issues/13462 return this.skip(); }); /** @@ -914,7 +914,7 @@ import { setPythonApi } from '../../../platform/interpreter/helpers'; }); }); test('If two kernelspecs share the same interpreter, but have different env variables, then both should be listed', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/13236 + // https://github.com/deepnote/vscode-deepnote/issues/13236 if (os.platform() === 'win32') { return this.skip(); } diff --git a/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts b/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts index eb4b452233..ff099df191 100644 --- a/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts +++ b/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts @@ -144,7 +144,7 @@ export class ContributedLocalKernelSpecFinder // Exclude python kernel specs (we'll get that from the pythonKernelFinder) const kernelSpecs = this.nonPythonKernelFinder.kernels.filter((item) => { // Remove this condition. - // https://github.com/microsoft/vscode-jupyter/issues/12278 + // https://github.com/deepnote/vscode-deepnote/issues/12278 if (this.extensionChecker.isPythonExtensionInstalled) { return item.kernelSpec.language !== PYTHON_LANGUAGE; } diff --git a/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts b/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts index 23f2eb0645..9c75065314 100644 --- a/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts +++ b/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts @@ -765,7 +765,7 @@ export class GlobalPythonKernelSpecFinder implements IDisposable { // // Telemetry to see, and fix this invalid code paths, clearly code is complicated // // NOTE: Defaulting to the active interpreter (of any random workspace folder, even if user has multiple folders open) is hacky, but this is the only fall back we have. - // // See here https://github.com/microsoft/vscode-jupyter/issues/12278 + // // See here https://github.com/deepnote/vscode-deepnote/issues/12278 // const activeInterpreterOfAWorkspaceFolder = activeInterpreters.find((i) => !!i); // let kernelInterpreter = activeInterpreterOfAWorkspaceFolder; // // If the interpreter information is stored in kernel spec.json then use that to determine the interpreter. diff --git a/src/kernels/raw/launcher/kernelEnvVarsService.node.ts b/src/kernels/raw/launcher/kernelEnvVarsService.node.ts index 51e88d9483..28471bea4b 100644 --- a/src/kernels/raw/launcher/kernelEnvVarsService.node.ts +++ b/src/kernels/raw/launcher/kernelEnvVarsService.node.ts @@ -126,7 +126,7 @@ export class KernelEnvironmentVariablesService { let mergedVars = { ...process.env }; - // On windows (see https://github.com/microsoft/vscode-jupyter/issues/10940) + // On windows (see https://github.com/deepnote/vscode-deepnote/issues/10940) // upper case all of the keys if (process.platform === 'win32') { mergedVars = {}; @@ -164,7 +164,7 @@ export class KernelEnvironmentVariablesService { } // If user asks us to, set PYTHONNOUSERSITE - // For more details see here https://github.com/microsoft/vscode-jupyter/issues/8553#issuecomment-997144591 + // For more details see here https://github.com/deepnote/vscode-deepnote/issues/8553#issuecomment-997144591 // https://docs.python.org/3/library/site.html#site.ENABLE_USER_SITE if (this.configService.getSettings(undefined).excludeUserSitePackages) { logger.info(`Adding env Variable PYTHONNOUSERSITE to ${getDisplayPath(interpreter?.uri)}`); diff --git a/src/kernels/raw/launcher/kernelProcess.node.ts b/src/kernels/raw/launcher/kernelProcess.node.ts index 76e6304506..7e6084ebe1 100644 --- a/src/kernels/raw/launcher/kernelProcess.node.ts +++ b/src/kernels/raw/launcher/kernelProcess.node.ts @@ -285,7 +285,7 @@ export class KernelProcess extends ObservableDisposable implements IKernelProces // Zmq does not use a client server architecture, even if // a peer is not up and running the messages are queued till the peer is ready to recieve. // No point waiting for ports to get used, see - // https://github.com/microsoft/vscode-jupyter/issues/14835 + // https://github.com/deepnote/vscode-deepnote/issues/14835 const portsUsed = doNotWaitForZmqPortsToGetUsed ? Promise.resolve() : Promise.all([ @@ -504,7 +504,7 @@ export class KernelProcess extends ObservableDisposable implements IKernelProces // Replace the connection file argument with this file // Remember, non-python kernels can have argv as `--connection-file={connection_file}`, // hence we should not replace the entire entry, but just replace the text `{connection_file}` - // See https://github.com/microsoft/vscode-jupyter/issues/7203 + // See https://github.com/deepnote/vscode-deepnote/issues/7203 const quotedConnectionFile = this.connectionFile.fsPath.includes(' ') ? `"${this.connectionFile.fsPath}"` // Quoted for spaces in file paths. : this.connectionFile.fsPath; diff --git a/src/kernels/raw/session/rawKernelConnection.node.ts b/src/kernels/raw/session/rawKernelConnection.node.ts index 386523f763..53dc94dc7d 100644 --- a/src/kernels/raw/session/rawKernelConnection.node.ts +++ b/src/kernels/raw/session/rawKernelConnection.node.ts @@ -520,7 +520,7 @@ async function postStartKernel( // Note: jupyter (python code) tries this a couple f times). // Note: We don't yet want to do what Jupyter does today, it could slow the startup of kernels. // Lets try this and see (hence the telemetry to see the cost of this check). - // We know 10s is way too slow, see https://github.com/microsoft/vscode-jupyter/issues/8917 + // We know 10s is way too slow, see https://github.com/deepnote/vscode-deepnote/issues/8917 const gotIoPubMessage = createDeferred(); const kernelInfoRequestHandled = createDeferred(); const iopubHandler = () => gotIoPubMessage.resolve(true); diff --git a/src/notebooks/controllers/controllerRegistration.ts b/src/notebooks/controllers/controllerRegistration.ts index 977292a845..0e97753169 100644 --- a/src/notebooks/controllers/controllerRegistration.ts +++ b/src/notebooks/controllers/controllerRegistration.ts @@ -111,7 +111,7 @@ export class ControllerRegistration implements IControllerRegistration, IExtensi return connection.id === controller.connection.id; }) || // On CI (tests), do not dispose of the active interpreter controller. - // See https://github.com/microsoft/vscode-jupyter/issues/13335 + // See https://github.com/deepnote/vscode-deepnote/issues/13335 (isCI && this._activeInterpreterControllerIds.has(controller.id)); // Never remove remote kernels that don't exist. diff --git a/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts b/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts index f504a8fa54..36279c697f 100644 --- a/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts +++ b/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts @@ -91,7 +91,7 @@ export class RemoteIPyWidgetScriptManager extends BaseIPyWidgetScriptManager imp // we sent another request, that will get queued. // On CI & dev, lets wait, but in production, lets not break user code, worst case widget might not work. // Thats fine as up until this fix widget would never have worked without CDN. - // See here for issue details https://github.com/microsoft/vscode-jupyter/issues/10510 + // See here for issue details https://github.com/deepnote/vscode-deepnote/issues/10510 if (!isCI && this.context.extensionMode === ExtensionMode.Production) { // If we're on CI or in dev mode/testing, we'll block indefinitely so that we see these deadlocks // 10s is enough as this shouldn't take more than 10 seconds in the real world. diff --git a/src/notebooks/controllers/ipywidgets/types.ts b/src/notebooks/controllers/ipywidgets/types.ts index 6843464a79..208207280f 100644 --- a/src/notebooks/controllers/ipywidgets/types.ts +++ b/src/notebooks/controllers/ipywidgets/types.ts @@ -134,7 +134,7 @@ export interface IIPyWidgetScriptManager { * Note: * - We cannot always assume the entry point is index.js * - We cannot always assume the name of the widget is the same as the name of the folder in nbextensions - * Because of these assumptions a hello world widget did not work in the past, see https://github.com/microsoft/vscode-jupyter/issues/10319. + * Because of these assumptions a hello world widget did not work in the past, see https://github.com/deepnote/vscode-deepnote/issues/10319. */ getWidgetModuleMappings(): Promise | undefined>; } diff --git a/src/notebooks/controllers/preferredKernelConnectionService.ts b/src/notebooks/controllers/preferredKernelConnectionService.ts index c2361f989a..e232cb27c5 100644 --- a/src/notebooks/controllers/preferredKernelConnectionService.ts +++ b/src/notebooks/controllers/preferredKernelConnectionService.ts @@ -28,7 +28,7 @@ import { getRemoteSessionOptions } from '../../kernels/jupyter/session/jupyterSe import { getCachedEnvironment, getEnvironmentType, getPythonEnvironmentName } from '../../platform/interpreter/helpers'; /** - * Attempt to clean up https://github.com/microsoft/vscode-jupyter/issues/11914 + * Attempt to clean up https://github.com/deepnote/vscode-deepnote/issues/11914 * Provides the ability to look for exact or preferred kernel connections. * Note: This class has zero side effects unlike `ControllerPreferredService`, and is meant to be a replacement for it */ diff --git a/src/notebooks/controllers/vscodeNotebookController.ts b/src/notebooks/controllers/vscodeNotebookController.ts index 4bae4114f2..44f9676f15 100644 --- a/src/notebooks/controllers/vscodeNotebookController.ts +++ b/src/notebooks/controllers/vscodeNotebookController.ts @@ -367,7 +367,7 @@ export class VSCodeNotebookController implements Disposable, IVSCodeNotebookCont } // Found on CI that sometimes VS Code calls this with old deleted cells. - // See here https://github.com/microsoft/vscode-jupyter/runs/5581627878?check_suite_focus=true + // See here https://github.com/deepnote/vscode-deepnote/runs/5581627878?check_suite_focus=true cells = cells.filter((cell) => { if (cell.index < 0) { logger.warn( diff --git a/src/notebooks/debugger/debuggingManagerBase.ts b/src/notebooks/debugger/debuggingManagerBase.ts index e337a77fb3..b07d0d1f6f 100644 --- a/src/notebooks/debugger/debuggingManagerBase.ts +++ b/src/notebooks/debugger/debuggingManagerBase.ts @@ -237,7 +237,7 @@ export abstract class DebuggingManagerBase implements IDisposable, IDebuggingMan sendTelemetryEvent(DebuggingTelemetry.clickedOnSetup); void env.openExternal( Uri.parse( - 'https://github.com/microsoft/vscode-jupyter/wiki/Setting-Up-Run-by-Line-and-Debugging-for-Notebooks' + 'https://github.com/deepnote/vscode-deepnote/wiki/Setting-Up-Run-by-Line-and-Debugging-for-Notebooks' ) ); } else { diff --git a/src/notebooks/debugger/helper.ts b/src/notebooks/debugger/helper.ts index f2892746d5..49b6e8aaf3 100644 --- a/src/notebooks/debugger/helper.ts +++ b/src/notebooks/debugger/helper.ts @@ -177,7 +177,7 @@ export async function cellDebugSetup( debugAdapter: IKernelDebugAdapter ): Promise { // remove this if when https://github.com/microsoft/debugpy/issues/706 is fixed and ipykernel ships it - // executing this code restarts debugpy and fixes https://github.com/microsoft/vscode-jupyter/issues/7251 + // executing this code restarts debugpy and fixes https://github.com/deepnote/vscode-deepnote/issues/7251 const code = 'import debugpy\ndebugpy.debug_this_thread()'; await execution.executeHidden(code); diff --git a/src/platform/common/utils/localize.ts b/src/platform/common/utils/localize.ts index 3d34f5f221..82d3aa0f78 100644 --- a/src/platform/common/utils/localize.ts +++ b/src/platform/common/utils/localize.ts @@ -519,7 +519,7 @@ export namespace DataScience { ); export const jupyterDebuggerOutputParseError = (output: string) => l10n.t( - 'Unable to parse {0} output, please log an issue with https://github.com/microsoft/vscode-jupyter', + 'Unable to parse {0} output, please log an issue with https://github.com/deepnote/vscode-deepnote', output ); export const cellStopOnErrorMessage = l10n.t('Cell was canceled due to an error in a previous cell.'); diff --git a/src/platform/errors/errorUtils.ts b/src/platform/errors/errorUtils.ts index 8facbea5ac..559cd2b5ed 100644 --- a/src/platform/errors/errorUtils.ts +++ b/src/platform/errors/errorUtils.ts @@ -561,7 +561,7 @@ export function analyzeKernelErrors( .map((line) => line.trim()) .reverse() .find((line) => line.toLowerCase().includes('error: ')); - // https://github.com/microsoft/vscode-jupyter/issues/8295 + // https://github.com/deepnote/vscode-deepnote/issues/8295 const errorMessageDueToOutdatedTraitlets = "AttributeError: 'Namespace' object has no attribute '_flags'"; const telemetrySafeTags = ['jupyter.startup.failure']; let link: string | undefined; diff --git a/src/platform/errors/index.ts b/src/platform/errors/index.ts index db1b743376..a6cb6d7e64 100644 --- a/src/platform/errors/index.ts +++ b/src/platform/errors/index.ts @@ -52,10 +52,10 @@ export function parseStack(ex: Error) { // Work around bug in stackTrace when ex has an array already if (ex.stack && Array.isArray(ex.stack)) { const concatenated = { ...ex, stack: ex.stack.join('\n') }; - // Work around for https://github.com/microsoft/vscode-jupyter/issues/12550 + // Work around for https://github.com/deepnote/vscode-deepnote/issues/12550 return stackTrace.parse.call(stackTrace, concatenated); } - // Work around for https://github.com/microsoft/vscode-jupyter/issues/12550 + // Work around for https://github.com/deepnote/vscode-deepnote/issues/12550 return stackTrace.parse.call(stackTrace, ex); } diff --git a/src/platform/errors/jupyterSelfCertsError.ts b/src/platform/errors/jupyterSelfCertsError.ts index f30ade6977..e57fdb98c9 100644 --- a/src/platform/errors/jupyterSelfCertsError.ts +++ b/src/platform/errors/jupyterSelfCertsError.ts @@ -20,11 +20,11 @@ export class JupyterSelfCertsError extends BaseError { const message = (err as undefined | { message: string })?.message ?? ''; return ( message.indexOf('reason: self signed certificate') >= 0 || - // https://github.com/microsoft/vscode-jupyter-hub/issues/36#issuecomment-1854097594 + // https://github.com/deepnote/vscode-deepnote-hub/issues/36#issuecomment-1854097594 message.indexOf('reason: unable to verify the first certificate') >= 0 || - // https://github.com/microsoft/vscode-jupyter-hub/issues/36#issuecomment-1761234981 + // https://github.com/deepnote/vscode-deepnote-hub/issues/36#issuecomment-1761234981 message.indexOf('reason: unable to get issuer certificate') >= 0 || - // https://github.com/microsoft/vscode-jupyter/issues/7558#issuecomment-993054968 + // https://github.com/deepnote/vscode-deepnote/issues/7558#issuecomment-993054968 message.indexOf("is not in the cert's list") >= 0 ); } diff --git a/src/platform/interpreter/installer/condaInstaller.node.ts b/src/platform/interpreter/installer/condaInstaller.node.ts index 9514bc246b..53005b7343 100644 --- a/src/platform/interpreter/installer/condaInstaller.node.ts +++ b/src/platform/interpreter/installer/condaInstaller.node.ts @@ -107,7 +107,7 @@ export class CondaInstaller extends ModuleInstaller { const args = [flags & ModuleInstallFlags.upgrade ? 'update' : 'install']; // Found that using conda-forge is best at packages like tensorboard & ipykernel which seem to get updated first on conda-forge - // https://github.com/microsoft/vscode-jupyter/issues/7787 & https://github.com/microsoft/vscode-python/issues/17628 + // https://github.com/deepnote/vscode-deepnote/issues/7787 & https://github.com/microsoft/vscode-python/issues/17628 // Do this just for the datascience packages. if ( [Product.ipykernel, Product.pandas, Product.nbconvert, Product.jupyter, Product.notebook] diff --git a/src/platform/interpreter/installer/moduleInstaller.node.ts b/src/platform/interpreter/installer/moduleInstaller.node.ts index 1e05e4bac6..63fbcdf5b2 100644 --- a/src/platform/interpreter/installer/moduleInstaller.node.ts +++ b/src/platform/interpreter/installer/moduleInstaller.node.ts @@ -144,7 +144,7 @@ export abstract class ModuleInstaller implements IModuleInstaller { progress?.report({ message }); logger.debug(output.out); if (output.source === 'stderr') { - // https://github.com/microsoft/vscode-jupyter/issues/12703 + // https://github.com/deepnote/vscode-deepnote/issues/12703 // Sometimes on windows we get an error that says "ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory:" // Look for such errors so we can provide a better error message to the user. if (couldNotInstallErr) { @@ -168,7 +168,7 @@ export abstract class ModuleInstaller implements IModuleInstaller { .then( () => { if (observable?.proc?.exitCode !== 0) { - // https://github.com/microsoft/vscode-jupyter/issues/12703 + // https://github.com/deepnote/vscode-deepnote/issues/12703 // `ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'C:\\Users\\donjayamanne\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\jedi\\third_party\\typeshed\\third_party\\2and3\\requests\\packages\\urllib3\\packages\\ssl_match_hostname\\_implementation.pyi' // HINT: This error might have occurred since this system does not have Windows Long Path support enabled. You can find information on how to enable this at https://pip.pypa.io/warnings/enable-long-paths`; // Remove the `[notice]` lines from the error messages diff --git a/src/platform/interpreter/installer/pinnedPackages.ts b/src/platform/interpreter/installer/pinnedPackages.ts index 675eb46e5e..1a373ea3e5 100644 --- a/src/platform/interpreter/installer/pinnedPackages.ts +++ b/src/platform/interpreter/installer/pinnedPackages.ts @@ -12,7 +12,7 @@ export function getPinnedPackages(installer: 'conda' | 'pip', moduleName: string if (!jupyterNotebookModuleNames.includes(moduleName)) { return []; } - // https://github.com/microsoft/vscode-jupyter/issues/12775 + // https://github.com/deepnote/vscode-deepnote/issues/12775 // https://github.com/jupyter/jupyter_client/issues/926 // Pin dependencies for jupyter-client and pyzmq as a work around. if (installer === 'pip') { diff --git a/src/platform/interpreter/installer/poetryInstaller.node.ts b/src/platform/interpreter/installer/poetryInstaller.node.ts index d3ceb33033..57c6cba6ac 100644 --- a/src/platform/interpreter/installer/poetryInstaller.node.ts +++ b/src/platform/interpreter/installer/poetryInstaller.node.ts @@ -80,7 +80,7 @@ export class PoetryInstaller extends ModuleInstaller { // TODO: We have to shell exec this because child_process.spawn will die // for poetry. // See issue: - // https://github.com/microsoft/vscode-jupyter/issues/9265 + // https://github.com/deepnote/vscode-deepnote/issues/9265 return { useShellExec: true, args, diff --git a/src/standalone/api/kernels/kernelProgressIndicator.ts b/src/standalone/api/kernels/kernelProgressIndicator.ts index aa6b5bbd2e..583cde9478 100644 --- a/src/standalone/api/kernels/kernelProgressIndicator.ts +++ b/src/standalone/api/kernels/kernelProgressIndicator.ts @@ -109,7 +109,7 @@ export class KernelExecutionProgressIndicator { } private async showProgress() { // Give a grace period of 1000ms to avoid displaying progress indicators too aggressively. - // Clearly some extensions can take a while, see here https://github.com/microsoft/vscode-jupyter/issues/15613 + // Clearly some extensions can take a while, see here https://github.com/deepnote/vscode-deepnote/issues/15613 // More than 1s is too long, await sleep(1_000); if (!this.deferred || this.deferred.completed || this.displayInProgress) { diff --git a/src/standalone/intellisense/kernelCompletionProvider.ts b/src/standalone/intellisense/kernelCompletionProvider.ts index 74de39e807..b824c6e9b7 100644 --- a/src/standalone/intellisense/kernelCompletionProvider.ts +++ b/src/standalone/intellisense/kernelCompletionProvider.ts @@ -506,7 +506,7 @@ export class KernelCompletionProvider extends DisposableBase implements IExtensi * Do not wait for completions, * If the completions request crashes then we don't get a response for this request, * Hence we end up waiting indefinitely. - * https://github.com/microsoft/vscode-jupyter/issues/9014 + * https://github.com/deepnote/vscode-deepnote/issues/9014 * * We send this request to ensure the completion provider in the kernel has bee pre-warmed. * This way things are faster when the user actually triggers a completion. diff --git a/src/standalone/userJupyterServer/jupyterPasswordConnect.ts b/src/standalone/userJupyterServer/jupyterPasswordConnect.ts index b78b42c677..6164753fab 100644 --- a/src/standalone/userJupyterServer/jupyterPasswordConnect.ts +++ b/src/standalone/userJupyterServer/jupyterPasswordConnect.ts @@ -152,7 +152,7 @@ export class JupyterPasswordConnect { sessionCookieName = sessionResult.sessionCookieName; sessionCookieValue = sessionResult.sessionCookieValue; } else { - // Special case for Kubeflow, see https://github.com/microsoft/vscode-jupyter/issues/8441 + // Special case for Kubeflow, see https://github.com/deepnote/vscode-deepnote/issues/8441 // get xsrf cookie with session cookie sessionCookieName = 'authservice_session'; sessionCookieValue = userPassword; diff --git a/src/test/datascience/.vscode/settings.json b/src/test/datascience/.vscode/settings.json index eb53a69e66..3e22d34af5 100644 --- a/src/test/datascience/.vscode/settings.json +++ b/src/test/datascience/.vscode/settings.json @@ -28,7 +28,7 @@ "webview.experimental.useIframes": true, // Python experiments have to be on for insiders to work "python.experiments.enabled": true, - // See https://github.com/microsoft/vscode-jupyter/issues/10258 + // See https://github.com/deepnote/vscode-deepnote/issues/10258 "jupyter.forceIPyKernelDebugger": false, "python.defaultInterpreterPath": "", "task.problemMatchers.neverPrompt": { diff --git a/src/test/datascience/debugger.vscode.test.ts b/src/test/datascience/debugger.vscode.test.ts index 4dc200792a..4d9e1f6734 100644 --- a/src/test/datascience/debugger.vscode.test.ts +++ b/src/test/datascience/debugger.vscode.test.ts @@ -201,7 +201,7 @@ suite('Run By Line @debugger', function () { assert.isTrue(getCellOutputs(cell).includes('1')); }); - // https://github.com/microsoft/vscode-jupyter/issues/16860 + // https://github.com/deepnote/vscode-deepnote/issues/16860 test.skip('Interrupt during debugging', async function () { const cell = await insertCodeCell('a=1\na', { index: 0 }); const doc = window.activeNotebookEditor?.notebook!; @@ -220,7 +220,7 @@ suite('Run By Line @debugger', function () { ); }); - // https://github.com/microsoft/vscode-jupyter/issues/16860 + // https://github.com/deepnote/vscode-deepnote/issues/16860 test.skip('Stops in same-cell function called from last line', async function () { const cell = await insertCodeCell('def foo():\n print(1)\n\nfoo()', { index: 0 }); const doc = window.activeNotebookEditor?.notebook!; @@ -251,7 +251,7 @@ suite('Run By Line @debugger', function () { }); test.skip('Restart while debugging', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/12188 + // https://github.com/deepnote/vscode-deepnote/issues/12188 const cell = await insertCodeCell('def foo():\n print(1)\n\nfoo()', { index: 0 }); const doc = window.activeNotebookEditor?.notebook!; @@ -274,7 +274,7 @@ suite('Run By Line @debugger', function () { }); test.skip('Does not stop in other cell', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/8757 + // https://github.com/deepnote/vscode-deepnote/issues/8757 const cell0 = await insertCodeCell('def foo():\n print(1)'); const cell1 = await insertCodeCell('foo()'); const doc = window.activeNotebookEditor?.notebook!; @@ -297,7 +297,7 @@ suite('Run By Line @debugger', function () { }); test.skip('Run a second time after interrupt', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/11245 + // https://github.com/deepnote/vscode-deepnote/issues/11245 await insertCodeCell( 'import time\nfor i in range(0,50):\n time.sleep(.1)\n print("sleepy")\nprint("final " + "output")', { diff --git a/src/test/datascience/interactiveDebugging.vscode.common.ts b/src/test/datascience/interactiveDebugging.vscode.common.ts index 33276bdab2..e85ed4f4d2 100644 --- a/src/test/datascience/interactiveDebugging.vscode.common.ts +++ b/src/test/datascience/interactiveDebugging.vscode.common.ts @@ -51,7 +51,7 @@ export function sharedIWDebuggerTests( } }; suiteSetup(async function () { - // https://github.com/microsoft/vscode-jupyter/issues/16860 + // https://github.com/deepnote/vscode-deepnote/issues/16860 if (debuggerType === 'JupyterProtocolDebugger') { return this.skip(); } diff --git a/src/test/datascience/interactiveDebugging.vscode.web.test.ts b/src/test/datascience/interactiveDebugging.vscode.web.test.ts index 1e326f66d0..1d14d0f5ed 100644 --- a/src/test/datascience/interactiveDebugging.vscode.web.test.ts +++ b/src/test/datascience/interactiveDebugging.vscode.web.test.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -// https://github.com/microsoft/vscode-jupyter/issues/16780 +// https://github.com/deepnote/vscode-deepnote/issues/16780 // import { sharedIWDebuggerTests } from './interactiveDebugging.vscode.common'; // /* eslint-disable @typescript-eslint/no-explicit-any, no-invalid-this */ diff --git a/src/test/datascience/interactiveWindow.vscode.common.test.ts b/src/test/datascience/interactiveWindow.vscode.common.test.ts index 2b4af7905c..fa3b22b050 100644 --- a/src/test/datascience/interactiveWindow.vscode.common.test.ts +++ b/src/test/datascience/interactiveWindow.vscode.common.test.ts @@ -83,7 +83,7 @@ suite(`Interactive window execution @iw`, async function () { logger.info(`Ended Test (completed) ${this.currentTest?.title}`); }); test('__file__ exists even after restarting a kernel', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/12251 + // https://github.com/deepnote/vscode-deepnote/issues/12251 // Ensure we click `Yes` when prompted to restart the kernel. disposables.push(await clickOKForRestartPrompt()); diff --git a/src/test/datascience/manualTestFiles/manualTestFile.py b/src/test/datascience/manualTestFiles/manualTestFile.py index bd110c7559..b14880139f 100644 --- a/src/test/datascience/manualTestFiles/manualTestFile.py +++ b/src/test/datascience/manualTestFiles/manualTestFile.py @@ -86,5 +86,5 @@ def raiser(): fig.show() #%% [markdown] -# ## Test split cell (code below should run -- see issue https://github.com/microsoft/vscode-jupyter/issues/8543) +# ## Test split cell (code below should run -- see issue https://github.com/deepnote/vscode-deepnote/issues/8543) print("hi") diff --git a/src/test/datascience/notebook/executionService.vscode.test.ts b/src/test/datascience/notebook/executionService.vscode.test.ts index 12a08b57c6..6fb1d2010d 100644 --- a/src/test/datascience/notebook/executionService.vscode.test.ts +++ b/src/test/datascience/notebook/executionService.vscode.test.ts @@ -998,7 +998,7 @@ suite('Kernel Execution @kernelCore', function () { }); test('Streamed output is added into the right cell (#16381)', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/16381#issuecomment-2603496123 + // https://github.com/deepnote/vscode-deepnote/issues/16381#issuecomment-2603496123 const onDidChangeNbEventHandler = new EventEmitter(); const stub = sinon.stub(workspace, 'onDidChangeNotebookDocument'); stub.get(() => onDidChangeNbEventHandler.event); diff --git a/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts b/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts index fc79bf92a7..f24de574a0 100644 --- a/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts +++ b/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts @@ -151,7 +151,7 @@ import { IKernelProvider } from '../../../../kernels/types'; ); } // Make sure it is skipping items that are already provided by pylance (no dupes) - // Pylance isn't returning them right now: https://github.com/microsoft/vscode-jupyter/issues/8842 + // Pylance isn't returning them right now: https://github.com/deepnote/vscode-deepnote/issues/8842 // assert.notOk( // items.find((item) => (typeof item === 'string' ? item.includes('Name') : item.label.includes('Name'))) // ); @@ -188,7 +188,7 @@ import { IKernelProvider } from '../../../../kernels/types'; await testCompletions('df.', '.', fileName, 'Age', 'S', 'Sex'); }); test.skip('Dataframe column completions', async () => { - // https://github.com/microsoft/vscode-jupyter/issues/14012 + // https://github.com/deepnote/vscode-deepnote/issues/14012 const fileName = path.basename(window.activeNotebookEditor!.notebook.uri.fsPath); await testCompletions('df.Name.', '.', fileName, 'add_prefix', 'add_s', 'add_suffix'); }); diff --git a/src/test/datascience/notebook/kernelRankingHelper.ts b/src/test/datascience/notebook/kernelRankingHelper.ts index 341d7c6114..2d7f378a85 100644 --- a/src/test/datascience/notebook/kernelRankingHelper.ts +++ b/src/test/datascience/notebook/kernelRankingHelper.ts @@ -772,7 +772,7 @@ function compareKernelSpecOrEnvNames( * Given that hash, compare the two kernels and find the better of the two. * * If the user has kernelspec in metadata & the interpreter hash is stored in metadata, then its a great match. - * This is the preferred approach https://github.com/microsoft/vscode-jupyter/issues/5612 + * This is the preferred approach https://github.com/deepnote/vscode-deepnote/issues/5612 */ function compareAgainstInterpreterInNotebookMetadata( { diff --git a/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts b/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts index 2809bcc428..fb029fdd1b 100644 --- a/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts +++ b/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts @@ -71,7 +71,7 @@ suite('Non-Python Kernel @nonPython ', async function () { verifyPromptWasNotDisplayed(); await closeNotebooksAndCleanUpAfterTests(disposables); }); - // https://github.com/microsoft/vscode-jupyter/issues/10900 + // https://github.com/deepnote/vscode-deepnote/issues/10900 test('Automatically pick Deno kernel when opening a Deno Notebook', async () => { const notebook = await TestNotebookDocument.openFile(testDenoNb); await waitForCondition( diff --git a/src/test/datascience/notebook/withMixedMimeTypeOutput.ipynb b/src/test/datascience/notebook/withMixedMimeTypeOutput.ipynb index 6c7dbfb948..05fc9ccd07 100644 --- a/src/test/datascience/notebook/withMixedMimeTypeOutput.ipynb +++ b/src/test/datascience/notebook/withMixedMimeTypeOutput.ipynb @@ -179,7 +179,7 @@ ], "source": [ "from IPython.core.display import Image, display\n", - "display(Image('https://raw.githubusercontent.com/microsoft/vscode-jupyter/main/icon.png'))" + "display(Image('https://raw.githubusercontent.com/deepnote/vscode-deepnote/main/icon.png'))" ] }, { diff --git a/src/test/datascience/variableView/variableView.vscode.test.ts b/src/test/datascience/variableView/variableView.vscode.test.ts index ab5cfa240a..690e182268 100644 --- a/src/test/datascience/variableView/variableView.vscode.test.ts +++ b/src/test/datascience/variableView/variableView.vscode.test.ts @@ -104,7 +104,7 @@ suite('VariableView @variableViewer', function () { const kernel = kernelProvider.get(cell.notebook.uri)!; const execution = kernelProvider.getKernelExecution(kernel); const outputs = await execution.executeHidden('%who_ls'); - // https://github.com/microsoft/vscode-jupyter/issues/10559 + // https://github.com/deepnote/vscode-deepnote/issues/10559 const varsToIgnore = ['matplotlib_inline', 'matplotlib']; // Sample output is `["test", "test2", "os", "sys"]` // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -192,7 +192,7 @@ suite('VariableView @variableViewer', function () { test('VariableView basic types A (webview-test)', async function () { const version = await getVersion(activeInterpreter); if (version?.major === 3 && (version.minor || 0) >= 10) { - // https://github.com/microsoft/vscode-jupyter/issues/8523 + // https://github.com/deepnote/vscode-deepnote/issues/8523 return this.skip(); } // Send the command to open the view diff --git a/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts b/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts index 6ce283168b..55c589de12 100644 --- a/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts +++ b/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts @@ -259,7 +259,7 @@ suite('Standard IPyWidget Tests @widgets', function () { await assertOutputContainsHtml(cell2, comms, ['Button clicked.']); }); test.skip('Widget renders after executing a notebook which was saved after previous execution', async () => { - // // https://github.com/microsoft/vscode-jupyter/issues/8748 + // // https://github.com/deepnote/vscode-deepnote/issues/8748 // await initializeNotebookForWidgetTest(disposables, { templateFile: 'standard_widgets.ipynb' }, editor); // const cell = window.activeNotebookEditor?.notebook.cellAt(0)!; // await executeCellAndWaitForOutput(cell, comms); @@ -295,7 +295,7 @@ suite('Standard IPyWidget Tests @widgets', function () { // await assertOutputContainsHtml(cell, comms, ['66'], '.widget-readout'); }); test.skip('Widget renders after interrupting kernel', async () => { - // // https://github.com/microsoft/vscode-jupyter/issues/8749 + // // https://github.com/deepnote/vscode-deepnote/issues/8749 // const comms = await initializeNotebookForWidgetTest(disposables, { // templateFile: 'standard_widgets.ipynb' // }); @@ -315,7 +315,7 @@ suite('Standard IPyWidget Tests @widgets', function () { // await assertOutputContainsHtml(cell, comms, ['66'], '.widget-readout'); }); test('Nested Output Widgets', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/16861 + // https://github.com/deepnote/vscode-deepnote/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } diff --git a/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts b/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts index 567cdf7937..a7c42723ed 100644 --- a/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts +++ b/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts @@ -102,7 +102,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; }); test('Button Widget with custom comm message rendering a matplotlib widget', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/16861 + // https://github.com/deepnote/vscode-deepnote/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } @@ -124,7 +124,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; await assertOutputContainsHtml(cell0, comms, ['>Figure 1<', 'kernel comms with binary data)', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/16861 + // https://github.com/deepnote/vscode-deepnote/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } @@ -186,7 +186,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; ); }); test('Render matplotlib, widget', async function () { - // https://github.com/microsoft/vscode-jupyter/issues/16861 + // https://github.com/deepnote/vscode-deepnote/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } @@ -203,7 +203,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; await assertOutputContainsHtml(cell, comms, ['>Figure 1<', '('jupyter.createnewinteractive'); diff --git a/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts b/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts index febaf2afa6..32f24d5624 100644 --- a/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts +++ b/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts @@ -44,7 +44,7 @@ suite('Jupyter Provider Tests', function () { return this.skip(); } if (IS_CONDA_TEST()) { - // Due to upstream issue documented here https://github.com/microsoft/vscode-jupyter/issues/14338 + // Due to upstream issue documented here https://github.com/deepnote/vscode-deepnote/issues/14338 return this.skip(); } this.timeout(120_000); diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index 9435831d7b..74c23b683c 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -205,7 +205,7 @@ async function start() { .concat(['--enable-proposed-api']) .concat(['--timeout', '5000']) .concat(['--disable-extension', 'ms-python.isort']) // We don't need this, also has a lot of errors on CI and floods CI logs unnecessarily. - .concat(IS_SMOKE_TEST() ? ['--disable-extension', 'ms-python.vscode-pylance'] : []) // For some reason pylance crashes and takes down the entire test run. See https://github.com/microsoft/vscode-jupyter/issues/13200 + .concat(IS_SMOKE_TEST() ? ['--disable-extension', 'ms-python.vscode-pylance'] : []) // For some reason pylance crashes and takes down the entire test run. See https://github.com/deepnote/vscode-deepnote/issues/13200 .concat(['--extensions-dir', extensionsDir]) .concat(['--user-data-dir', userDataDirectory]), // .concat(['--verbose']), // Too much logging from VS Code, enable this to see what's going on in VSC. diff --git a/src/webviews/extension-side/ipywidgets/rendererComms.ts b/src/webviews/extension-side/ipywidgets/rendererComms.ts index e72f635e4f..626e8db0e2 100644 --- a/src/webviews/extension-side/ipywidgets/rendererComms.ts +++ b/src/webviews/extension-side/ipywidgets/rendererComms.ts @@ -145,7 +145,7 @@ export class IPyWidgetRendererComms implements IExtensionSyncActivationService { } private sendWidgetVersionAndState(comms: NotebookRendererMessaging, editor: NotebookEditor) { // Support for loading Widget state from ipynb files. - // Temporarily disabled. See https://github.com/microsoft/vscode-jupyter/issues/11117 + // Temporarily disabled. See https://github.com/deepnote/vscode-deepnote/issues/11117 // const metadata = getNotebookMetadata(editor.notebook); // const widgetState = metadata?.widgets; diff --git a/src/webviews/webview-side/ipywidgets/kernel/index.ts b/src/webviews/webview-side/ipywidgets/kernel/index.ts index aa889ec9ee..6d05f9a0d4 100644 --- a/src/webviews/webview-side/ipywidgets/kernel/index.ts +++ b/src/webviews/webview-side/ipywidgets/kernel/index.ts @@ -111,7 +111,7 @@ export async function renderOutput( export function disposeOutput(outputId?: string) { if (outputId) { // We can't delete the widgets because they may be rerendered when we scroll them into view. - // See issue: https://github.com/microsoft/vscode-jupyter/issues/10485 + // See issue: https://github.com/deepnote/vscode-deepnote/issues/10485 // However we can mark them as not being currently rendered. stackOfWidgetsRenderStatusByOutputId = stackOfWidgetsRenderStatusByOutputId.filter( (item) => !(outputId in item) diff --git a/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts b/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts index 45053ca274..2144fc1b20 100644 --- a/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts +++ b/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts @@ -234,7 +234,7 @@ export class ScriptManager extends EventEmitter { } catch (ex) { // eslint-disable-next-line no-console console.error(`Failed to load Widget Script from Extension for ${moduleName}, ${moduleVersion}`, ex); - // TODO: https://github.com/microsoft/vscode-jupyter/issues/12786 + // TODO: https://github.com/deepnote/vscode-deepnote/issues/12786 // throw ex; } } diff --git a/src/webviews/webview-side/ipywidgets/renderer/index.ts b/src/webviews/webview-side/ipywidgets/renderer/index.ts index 3d488ed304..3e8c59837d 100644 --- a/src/webviews/webview-side/ipywidgets/renderer/index.ts +++ b/src/webviews/webview-side/ipywidgets/renderer/index.ts @@ -177,7 +177,7 @@ export const activate: ActivationFunction = (context) => { * Now the previous output gets cleared and new output is added to the cell. * Since both operations happen at the same time, we do not clear the output, * instead the renderOutputItem is called with the new data for the same output element and same output item Id. - * See https://github.com/microsoft/vscode-jupyter/issues/14161 + * See https://github.com/deepnote/vscode-deepnote/issues/14161 */ async renderOutputItem(outputItem: OutputItem, element: HTMLElement, _signal: AbortController) { logger(`Got item for Rendering ${outputItem.id}}`); From dd8230f9820466b37dc334380c42dfb11a9e41fb Mon Sep 17 00:00:00 2001 From: James Hobbs Date: Mon, 27 Oct 2025 17:07:37 +0000 Subject: [PATCH 02/10] chore: undo issue relinking devin did --- build/ci/postInstall.js | 2 +- build/conda-nonconda-test-requirements.txt | 2 +- build/venv-test-ipywidgets7-requirements.txt | 2 +- src/kernels/errors/jupyterWaitForIdleError.ts | 2 +- src/kernels/execution/cellExecution.ts | 6 +++--- .../execution/cellExecutionMessageHandler.ts | 14 +++++++------- src/kernels/execution/codeExecution.ts | 2 +- src/kernels/execution/helpers.ts | 2 +- .../jupyter/session/jupyterKernelSessionFactory.ts | 2 +- src/kernels/kernelDependencyService.node.ts | 2 +- .../contributedKerneFinder.node.unit.test.ts | 4 ++-- .../contributedLocalKernelSpecFinder.node.ts | 2 +- .../interpreterKernelSpecFinderHelper.node.ts | 2 +- .../raw/launcher/kernelEnvVarsService.node.ts | 4 ++-- src/kernels/raw/launcher/kernelProcess.node.ts | 4 ++-- .../raw/session/rawKernelConnection.node.ts | 2 +- .../controllers/controllerRegistration.ts | 2 +- .../remoteIPyWidgetScriptManager.ts | 2 +- src/notebooks/controllers/ipywidgets/types.ts | 2 +- .../preferredKernelConnectionService.ts | 2 +- src/notebooks/debugger/helper.ts | 2 +- src/platform/errors/errorUtils.ts | 2 +- src/platform/errors/index.ts | 4 ++-- src/platform/errors/jupyterSelfCertsError.ts | 2 +- .../interpreter/installer/condaInstaller.node.ts | 2 +- .../interpreter/installer/moduleInstaller.node.ts | 4 ++-- .../interpreter/installer/pinnedPackages.ts | 2 +- .../interpreter/installer/poetryInstaller.node.ts | 2 +- .../api/kernels/kernelProgressIndicator.ts | 2 +- .../intellisense/kernelCompletionProvider.ts | 2 +- .../userJupyterServer/jupyterPasswordConnect.ts | 2 +- src/test/datascience/.vscode/settings.json | 2 +- src/test/datascience/debugger.vscode.test.ts | 10 +++++----- .../interactiveDebugging.vscode.common.ts | 2 +- .../interactiveDebugging.vscode.web.test.ts | 2 +- .../interactiveWindow.vscode.common.test.ts | 2 +- .../datascience/manualTestFiles/manualTestFile.py | 2 +- .../notebook/executionService.vscode.test.ts | 2 +- .../completionProvider.vscode.common.test.ts | 4 ++-- .../datascience/notebook/kernelRankingHelper.ts | 2 +- .../notebook/nonPythonKernels.vscode.test.ts | 2 +- .../variableView/variableView.vscode.test.ts | 4 ++-- .../widgets/standardWidgets.vscode.common.test.ts | 6 +++--- .../thirdpartyWidgets.vscode.common.test.ts | 8 ++++---- src/test/smoke/datascience.smoke.test.ts | 2 +- .../unstable/api.jupyterProvider.vscode.test.ts | 2 +- src/test/standardTest.node.ts | 2 +- .../extension-side/ipywidgets/rendererComms.ts | 2 +- .../webview-side/ipywidgets/kernel/index.ts | 2 +- .../ipywidgets/kernel/scriptManager.ts | 2 +- .../webview-side/ipywidgets/renderer/index.ts | 2 +- 51 files changed, 75 insertions(+), 75 deletions(-) diff --git a/build/ci/postInstall.js b/build/ci/postInstall.js index 12e4f3e76d..b151a82b4a 100644 --- a/build/ci/postInstall.js +++ b/build/ci/postInstall.js @@ -109,7 +109,7 @@ function fixJupyterLabRenderers() { } /** - * Ensures extension loads in safari (https://github.com/deepnote/vscode-deepnote/issues/10621) + * Ensures extension loads in safari (https://github.com/microsoft/vscode-jupyter/issues/10621) * Some of the regexes are not supported in safari and not required either. */ function fixStripComments() { diff --git a/build/conda-nonconda-test-requirements.txt b/build/conda-nonconda-test-requirements.txt index e32b424b99..bcaf85d97a 100644 --- a/build/conda-nonconda-test-requirements.txt +++ b/build/conda-nonconda-test-requirements.txt @@ -1,4 +1,4 @@ # List of requirements for conda environments that cannot be installed using conda -# Pinned per ipywidget 8 support: https://github.com/deepnote/vscode-deepnote/issues/11598 +# Pinned per ipywidget 8 support: https://github.com/microsoft/vscode-jupyter/issues/11598 matplotlib ipympl diff --git a/build/venv-test-ipywidgets7-requirements.txt b/build/venv-test-ipywidgets7-requirements.txt index 90017b977f..839277075b 100644 --- a/build/venv-test-ipywidgets7-requirements.txt +++ b/build/venv-test-ipywidgets7-requirements.txt @@ -4,7 +4,7 @@ pandas # Install jupyter itself so we end up with a kernel jupyter # List of requirements for conda environments that cannot be installed using conda -# Pinned per ipywidget 8 support: https://github.com/deepnote/vscode-deepnote/issues/11598 +# Pinned per ipywidget 8 support: https://github.com/microsoft/vscode-jupyter/issues/11598 ipywidgets==8.1.7 anywidget matplotlib diff --git a/src/kernels/errors/jupyterWaitForIdleError.ts b/src/kernels/errors/jupyterWaitForIdleError.ts index a65af85aa5..fd1fbe7546 100644 --- a/src/kernels/errors/jupyterWaitForIdleError.ts +++ b/src/kernels/errors/jupyterWaitForIdleError.ts @@ -10,7 +10,7 @@ import { BaseKernelError } from './types'; * * Cause: * Jupyter [session](https://jupyterlab.readthedocs.io/en/stable/api/modules/services.session.html) never returns an 'idle' status message on startup. - * This might happen if the kernel hangs. One such example was this issue: https://github.com/deepnote/vscode-deepnote/issues/10940 + * This might happen if the kernel hangs. One such example was this issue: https://github.com/microsoft/vscode-jupyter/issues/10940 * * Handled by: * Should show up in the executing cell (if there is one), otherwise a notification will pop up. diff --git a/src/kernels/execution/cellExecution.ts b/src/kernels/execution/cellExecution.ts index bb12a15b10..5bedc16970 100644 --- a/src/kernels/execution/cellExecution.ts +++ b/src/kernels/execution/cellExecution.ts @@ -61,7 +61,7 @@ export class CellExecutionFactory { * * WARNING: Do not dispose `request: Kernel.IShellFuture` object. * Even after request.done & execute_reply is sent we could have more messages coming from iopub. - * Further details here https://github.com/deepnote/vscode-deepnote/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 + * Further details here https://github.com/microsoft/vscode-jupyter/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 * */ export class CellExecution implements ICellExecution, IDisposable { @@ -471,7 +471,7 @@ export class CellExecution implements ICellExecution, IDisposable { // WARNING: Do not dispose `request`. // Even after request.done & execute_reply is sent we could have more messages coming from iopub. - // We have tests for this & check https://github.com/deepnote/vscode-deepnote/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 + // We have tests for this & check https://github.com/microsoft/vscode-jupyter/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 try { // When the request finishes we are done @@ -484,7 +484,7 @@ export class CellExecution implements ICellExecution, IDisposable { // try { // // The time from the kernel is more accurate, as that will ignore the network latency. // // Note: There could be an offset between the time on the kernel and the time on the client. - // // https://github.com/deepnote/vscode-deepnote/issues/14072 + // // https://github.com/microsoft/vscode-jupyter/issues/14072 // completedTime = new Date(reply.header.date).getTime(); // } catch { // // diff --git a/src/kernels/execution/cellExecutionMessageHandler.ts b/src/kernels/execution/cellExecutionMessageHandler.ts index 67c2fe5233..cce4cadedf 100644 --- a/src/kernels/execution/cellExecutionMessageHandler.ts +++ b/src/kernels/execution/cellExecutionMessageHandler.ts @@ -225,7 +225,7 @@ export class CellExecutionMessageHandler implements IDisposable { this.execution = cellExecution; // We're in all messages. // When using the `interact` function in Python, we can get outputs from comm messages even before execution has completed. - // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information on why we need to monitor anyMessage and iopubMessage signals. + // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information on why we need to monitor anyMessage and iopubMessage signals. this.kernel.anyMessage.connect(this.onKernelAnyMessage, this); this.kernel.iopubMessage.connect(this.onKernelIOPubMessage, this); @@ -395,13 +395,13 @@ export class CellExecutionMessageHandler implements IDisposable { } } // We're only interested in messages after execution has completed. - // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. + // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. if (direction !== 'send' || !this.completedExecution) { return; } if (jupyterLab.KernelMessage.isCommMsgMsg(msg) && this.ownedCommIds.has(msg.content.comm_id)) { // Looks like we have a comm msg request sent by some output or the like. - // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. + // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. this.ownedRequestMsgIds.add(msg.header.msg_id); } } @@ -411,11 +411,11 @@ export class CellExecutionMessageHandler implements IDisposable { } // We're only interested in messages after execution has completed. - // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. + // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. // Handle iopub messages that are sent from Jupyter in response to some // comm message (requests) sent by an output widget. - // See https://github.com/deepnote/vscode-deepnote/issues/9503 for more information. + // See https://github.com/microsoft/vscode-jupyter/issues/9503 for more information. if ( !msg.parent_header || !('msg_id' in msg.parent_header) || @@ -497,7 +497,7 @@ export class CellExecutionMessageHandler implements IDisposable { // try { // // The time from the kernel is more accurate, as that will ignore the network latency. // // Note: There could be an offset between the time on the kernel and the time on the client. - // // https://github.com/deepnote/vscode-deepnote/issues/14072 + // // https://github.com/microsoft/vscode-jupyter/issues/14072 // // this.startTime = new Date(msg.header.date).getTime(); // } catch { // // @@ -980,7 +980,7 @@ export class CellExecutionMessageHandler implements IDisposable { } if (msg.parent_header.msg_type === 'comm_msg' && msg.header.msg_type === 'stream') { - // Fix for https://github.com/deepnote/vscode-deepnote/issues/15996 + // Fix for https://github.com/microsoft/vscode-jupyter/issues/15996 // We're not interested in stream messages that are part of comm messages. return; } diff --git a/src/kernels/execution/codeExecution.ts b/src/kernels/execution/codeExecution.ts index 7fcb80b799..033f1d1103 100644 --- a/src/kernels/execution/codeExecution.ts +++ b/src/kernels/execution/codeExecution.ts @@ -32,7 +32,7 @@ const extensionIdsPerExtension = new Map(); * WARNING: Do not dispose `request: Kernel.IShellFuture` object. * Even after request.done & execute_reply is sent we could have more messages coming from iopub. * E.g. we could have messages from a bg thread. - * Further details here https://github.com/deepnote/vscode-deepnote/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 + * Further details here https://github.com/microsoft/vscode-jupyter/issues/232 & https://github.com/jupyter/jupyter_client/issues/297 */ export class CodeExecution implements ICodeExecution, IDisposable { public readonly type = 'code'; diff --git a/src/kernels/execution/helpers.ts b/src/kernels/execution/helpers.ts index 7b93e18e35..78ab6f08ee 100644 --- a/src/kernels/execution/helpers.ts +++ b/src/kernels/execution/helpers.ts @@ -71,7 +71,7 @@ function sortOutputItemsBasedOnDisplayOrder(outputItems: NotebookCellOutputItem[ let indexOfMimeTypeB = orderOfMimeTypes.findIndex((mime) => isMimeTypeMatch(mime, outputItemB.mime)); // Sometimes we can have mime types with empty data, e.g. when using holoview we can have `application/vnd.holoviews_load.v0+json` with empty value. // & in these cases we have HTML/JS and those take precedence. - // https://github.com/deepnote/vscode-deepnote/issues/6109 + // https://github.com/microsoft/vscode-jupyter/issues/6109 if (isEmptyVendoredMimeType(outputItemA)) { indexOfMimeTypeA = -1; } diff --git a/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts b/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts index 3d7c0921e7..ec488b88a4 100644 --- a/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts +++ b/src/kernels/jupyter/session/jupyterKernelSessionFactory.ts @@ -310,7 +310,7 @@ export class JupyterKernelSessionFactory implements IKernelSessionFactory { // If kernelName is empty this can cause problems for servers that don't // understand that empty kernel name means the default kernel. - // See https://github.com/deepnote/vscode-deepnote/issues/5290 + // See https://github.com/microsoft/vscode-jupyter/issues/5290 const kernelName = getNameOfKernelConnection(options.kernelConnection) ?? options.kernelSpecManager?.specs?.default ?? ''; diff --git a/src/kernels/kernelDependencyService.node.ts b/src/kernels/kernelDependencyService.node.ts index a2b4ce9eee..0b77d7b3aa 100644 --- a/src/kernels/kernelDependencyService.node.ts +++ b/src/kernels/kernelDependencyService.node.ts @@ -268,7 +268,7 @@ export class KernelDependencyService implements IKernelDependencyService { const options = [installOption]; if (resource && !cannotChangeKernels) { // Due to a bug in our code, if we don't have a resource, don't display the option to change kernels. - // https://github.com/deepnote/vscode-deepnote/issues/6135 + // https://github.com/microsoft/vscode-jupyter/issues/6135 options.push(selectKernelOption); } options.push(moreInfoOption); diff --git a/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts b/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts index 4b20d6a4f2..3108a35723 100644 --- a/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts +++ b/src/kernels/raw/finder/contributedKerneFinder.node.unit.test.ts @@ -835,7 +835,7 @@ import { setPythonApi } from '../../../platform/interpreter/helpers'; ].forEach((activePythonEnv) => { suite(activePythonEnv ? `With active Python (${activePythonEnv.id})` : 'without active Python', () => { setup(function () { - // Flaky windows unit tests. https://github.com/deepnote/vscode-deepnote/issues/13462 + // Flaky windows unit tests. https://github.com/microsoft/vscode-jupyter/issues/13462 return this.skip(); }); /** @@ -914,7 +914,7 @@ import { setPythonApi } from '../../../platform/interpreter/helpers'; }); }); test('If two kernelspecs share the same interpreter, but have different env variables, then both should be listed', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/13236 + // https://github.com/microsoft/vscode-jupyter/issues/13236 if (os.platform() === 'win32') { return this.skip(); } diff --git a/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts b/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts index ff099df191..eb4b452233 100644 --- a/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts +++ b/src/kernels/raw/finder/contributedLocalKernelSpecFinder.node.ts @@ -144,7 +144,7 @@ export class ContributedLocalKernelSpecFinder // Exclude python kernel specs (we'll get that from the pythonKernelFinder) const kernelSpecs = this.nonPythonKernelFinder.kernels.filter((item) => { // Remove this condition. - // https://github.com/deepnote/vscode-deepnote/issues/12278 + // https://github.com/microsoft/vscode-jupyter/issues/12278 if (this.extensionChecker.isPythonExtensionInstalled) { return item.kernelSpec.language !== PYTHON_LANGUAGE; } diff --git a/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts b/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts index 9c75065314..23f2eb0645 100644 --- a/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts +++ b/src/kernels/raw/finder/interpreterKernelSpecFinderHelper.node.ts @@ -765,7 +765,7 @@ export class GlobalPythonKernelSpecFinder implements IDisposable { // // Telemetry to see, and fix this invalid code paths, clearly code is complicated // // NOTE: Defaulting to the active interpreter (of any random workspace folder, even if user has multiple folders open) is hacky, but this is the only fall back we have. - // // See here https://github.com/deepnote/vscode-deepnote/issues/12278 + // // See here https://github.com/microsoft/vscode-jupyter/issues/12278 // const activeInterpreterOfAWorkspaceFolder = activeInterpreters.find((i) => !!i); // let kernelInterpreter = activeInterpreterOfAWorkspaceFolder; // // If the interpreter information is stored in kernel spec.json then use that to determine the interpreter. diff --git a/src/kernels/raw/launcher/kernelEnvVarsService.node.ts b/src/kernels/raw/launcher/kernelEnvVarsService.node.ts index 28471bea4b..51e88d9483 100644 --- a/src/kernels/raw/launcher/kernelEnvVarsService.node.ts +++ b/src/kernels/raw/launcher/kernelEnvVarsService.node.ts @@ -126,7 +126,7 @@ export class KernelEnvironmentVariablesService { let mergedVars = { ...process.env }; - // On windows (see https://github.com/deepnote/vscode-deepnote/issues/10940) + // On windows (see https://github.com/microsoft/vscode-jupyter/issues/10940) // upper case all of the keys if (process.platform === 'win32') { mergedVars = {}; @@ -164,7 +164,7 @@ export class KernelEnvironmentVariablesService { } // If user asks us to, set PYTHONNOUSERSITE - // For more details see here https://github.com/deepnote/vscode-deepnote/issues/8553#issuecomment-997144591 + // For more details see here https://github.com/microsoft/vscode-jupyter/issues/8553#issuecomment-997144591 // https://docs.python.org/3/library/site.html#site.ENABLE_USER_SITE if (this.configService.getSettings(undefined).excludeUserSitePackages) { logger.info(`Adding env Variable PYTHONNOUSERSITE to ${getDisplayPath(interpreter?.uri)}`); diff --git a/src/kernels/raw/launcher/kernelProcess.node.ts b/src/kernels/raw/launcher/kernelProcess.node.ts index 7e6084ebe1..76e6304506 100644 --- a/src/kernels/raw/launcher/kernelProcess.node.ts +++ b/src/kernels/raw/launcher/kernelProcess.node.ts @@ -285,7 +285,7 @@ export class KernelProcess extends ObservableDisposable implements IKernelProces // Zmq does not use a client server architecture, even if // a peer is not up and running the messages are queued till the peer is ready to recieve. // No point waiting for ports to get used, see - // https://github.com/deepnote/vscode-deepnote/issues/14835 + // https://github.com/microsoft/vscode-jupyter/issues/14835 const portsUsed = doNotWaitForZmqPortsToGetUsed ? Promise.resolve() : Promise.all([ @@ -504,7 +504,7 @@ export class KernelProcess extends ObservableDisposable implements IKernelProces // Replace the connection file argument with this file // Remember, non-python kernels can have argv as `--connection-file={connection_file}`, // hence we should not replace the entire entry, but just replace the text `{connection_file}` - // See https://github.com/deepnote/vscode-deepnote/issues/7203 + // See https://github.com/microsoft/vscode-jupyter/issues/7203 const quotedConnectionFile = this.connectionFile.fsPath.includes(' ') ? `"${this.connectionFile.fsPath}"` // Quoted for spaces in file paths. : this.connectionFile.fsPath; diff --git a/src/kernels/raw/session/rawKernelConnection.node.ts b/src/kernels/raw/session/rawKernelConnection.node.ts index 53dc94dc7d..386523f763 100644 --- a/src/kernels/raw/session/rawKernelConnection.node.ts +++ b/src/kernels/raw/session/rawKernelConnection.node.ts @@ -520,7 +520,7 @@ async function postStartKernel( // Note: jupyter (python code) tries this a couple f times). // Note: We don't yet want to do what Jupyter does today, it could slow the startup of kernels. // Lets try this and see (hence the telemetry to see the cost of this check). - // We know 10s is way too slow, see https://github.com/deepnote/vscode-deepnote/issues/8917 + // We know 10s is way too slow, see https://github.com/microsoft/vscode-jupyter/issues/8917 const gotIoPubMessage = createDeferred(); const kernelInfoRequestHandled = createDeferred(); const iopubHandler = () => gotIoPubMessage.resolve(true); diff --git a/src/notebooks/controllers/controllerRegistration.ts b/src/notebooks/controllers/controllerRegistration.ts index 0e97753169..977292a845 100644 --- a/src/notebooks/controllers/controllerRegistration.ts +++ b/src/notebooks/controllers/controllerRegistration.ts @@ -111,7 +111,7 @@ export class ControllerRegistration implements IControllerRegistration, IExtensi return connection.id === controller.connection.id; }) || // On CI (tests), do not dispose of the active interpreter controller. - // See https://github.com/deepnote/vscode-deepnote/issues/13335 + // See https://github.com/microsoft/vscode-jupyter/issues/13335 (isCI && this._activeInterpreterControllerIds.has(controller.id)); // Never remove remote kernels that don't exist. diff --git a/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts b/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts index 36279c697f..f504a8fa54 100644 --- a/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts +++ b/src/notebooks/controllers/ipywidgets/scriptSourceProvider/remoteIPyWidgetScriptManager.ts @@ -91,7 +91,7 @@ export class RemoteIPyWidgetScriptManager extends BaseIPyWidgetScriptManager imp // we sent another request, that will get queued. // On CI & dev, lets wait, but in production, lets not break user code, worst case widget might not work. // Thats fine as up until this fix widget would never have worked without CDN. - // See here for issue details https://github.com/deepnote/vscode-deepnote/issues/10510 + // See here for issue details https://github.com/microsoft/vscode-jupyter/issues/10510 if (!isCI && this.context.extensionMode === ExtensionMode.Production) { // If we're on CI or in dev mode/testing, we'll block indefinitely so that we see these deadlocks // 10s is enough as this shouldn't take more than 10 seconds in the real world. diff --git a/src/notebooks/controllers/ipywidgets/types.ts b/src/notebooks/controllers/ipywidgets/types.ts index 208207280f..6843464a79 100644 --- a/src/notebooks/controllers/ipywidgets/types.ts +++ b/src/notebooks/controllers/ipywidgets/types.ts @@ -134,7 +134,7 @@ export interface IIPyWidgetScriptManager { * Note: * - We cannot always assume the entry point is index.js * - We cannot always assume the name of the widget is the same as the name of the folder in nbextensions - * Because of these assumptions a hello world widget did not work in the past, see https://github.com/deepnote/vscode-deepnote/issues/10319. + * Because of these assumptions a hello world widget did not work in the past, see https://github.com/microsoft/vscode-jupyter/issues/10319. */ getWidgetModuleMappings(): Promise | undefined>; } diff --git a/src/notebooks/controllers/preferredKernelConnectionService.ts b/src/notebooks/controllers/preferredKernelConnectionService.ts index e232cb27c5..c2361f989a 100644 --- a/src/notebooks/controllers/preferredKernelConnectionService.ts +++ b/src/notebooks/controllers/preferredKernelConnectionService.ts @@ -28,7 +28,7 @@ import { getRemoteSessionOptions } from '../../kernels/jupyter/session/jupyterSe import { getCachedEnvironment, getEnvironmentType, getPythonEnvironmentName } from '../../platform/interpreter/helpers'; /** - * Attempt to clean up https://github.com/deepnote/vscode-deepnote/issues/11914 + * Attempt to clean up https://github.com/microsoft/vscode-jupyter/issues/11914 * Provides the ability to look for exact or preferred kernel connections. * Note: This class has zero side effects unlike `ControllerPreferredService`, and is meant to be a replacement for it */ diff --git a/src/notebooks/debugger/helper.ts b/src/notebooks/debugger/helper.ts index 49b6e8aaf3..f2892746d5 100644 --- a/src/notebooks/debugger/helper.ts +++ b/src/notebooks/debugger/helper.ts @@ -177,7 +177,7 @@ export async function cellDebugSetup( debugAdapter: IKernelDebugAdapter ): Promise { // remove this if when https://github.com/microsoft/debugpy/issues/706 is fixed and ipykernel ships it - // executing this code restarts debugpy and fixes https://github.com/deepnote/vscode-deepnote/issues/7251 + // executing this code restarts debugpy and fixes https://github.com/microsoft/vscode-jupyter/issues/7251 const code = 'import debugpy\ndebugpy.debug_this_thread()'; await execution.executeHidden(code); diff --git a/src/platform/errors/errorUtils.ts b/src/platform/errors/errorUtils.ts index 559cd2b5ed..8facbea5ac 100644 --- a/src/platform/errors/errorUtils.ts +++ b/src/platform/errors/errorUtils.ts @@ -561,7 +561,7 @@ export function analyzeKernelErrors( .map((line) => line.trim()) .reverse() .find((line) => line.toLowerCase().includes('error: ')); - // https://github.com/deepnote/vscode-deepnote/issues/8295 + // https://github.com/microsoft/vscode-jupyter/issues/8295 const errorMessageDueToOutdatedTraitlets = "AttributeError: 'Namespace' object has no attribute '_flags'"; const telemetrySafeTags = ['jupyter.startup.failure']; let link: string | undefined; diff --git a/src/platform/errors/index.ts b/src/platform/errors/index.ts index a6cb6d7e64..db1b743376 100644 --- a/src/platform/errors/index.ts +++ b/src/platform/errors/index.ts @@ -52,10 +52,10 @@ export function parseStack(ex: Error) { // Work around bug in stackTrace when ex has an array already if (ex.stack && Array.isArray(ex.stack)) { const concatenated = { ...ex, stack: ex.stack.join('\n') }; - // Work around for https://github.com/deepnote/vscode-deepnote/issues/12550 + // Work around for https://github.com/microsoft/vscode-jupyter/issues/12550 return stackTrace.parse.call(stackTrace, concatenated); } - // Work around for https://github.com/deepnote/vscode-deepnote/issues/12550 + // Work around for https://github.com/microsoft/vscode-jupyter/issues/12550 return stackTrace.parse.call(stackTrace, ex); } diff --git a/src/platform/errors/jupyterSelfCertsError.ts b/src/platform/errors/jupyterSelfCertsError.ts index e57fdb98c9..87801734d5 100644 --- a/src/platform/errors/jupyterSelfCertsError.ts +++ b/src/platform/errors/jupyterSelfCertsError.ts @@ -24,7 +24,7 @@ export class JupyterSelfCertsError extends BaseError { message.indexOf('reason: unable to verify the first certificate') >= 0 || // https://github.com/deepnote/vscode-deepnote-hub/issues/36#issuecomment-1761234981 message.indexOf('reason: unable to get issuer certificate') >= 0 || - // https://github.com/deepnote/vscode-deepnote/issues/7558#issuecomment-993054968 + // https://github.com/microsoft/vscode-jupyter/issues/7558#issuecomment-993054968 message.indexOf("is not in the cert's list") >= 0 ); } diff --git a/src/platform/interpreter/installer/condaInstaller.node.ts b/src/platform/interpreter/installer/condaInstaller.node.ts index 53005b7343..9514bc246b 100644 --- a/src/platform/interpreter/installer/condaInstaller.node.ts +++ b/src/platform/interpreter/installer/condaInstaller.node.ts @@ -107,7 +107,7 @@ export class CondaInstaller extends ModuleInstaller { const args = [flags & ModuleInstallFlags.upgrade ? 'update' : 'install']; // Found that using conda-forge is best at packages like tensorboard & ipykernel which seem to get updated first on conda-forge - // https://github.com/deepnote/vscode-deepnote/issues/7787 & https://github.com/microsoft/vscode-python/issues/17628 + // https://github.com/microsoft/vscode-jupyter/issues/7787 & https://github.com/microsoft/vscode-python/issues/17628 // Do this just for the datascience packages. if ( [Product.ipykernel, Product.pandas, Product.nbconvert, Product.jupyter, Product.notebook] diff --git a/src/platform/interpreter/installer/moduleInstaller.node.ts b/src/platform/interpreter/installer/moduleInstaller.node.ts index 63fbcdf5b2..1e05e4bac6 100644 --- a/src/platform/interpreter/installer/moduleInstaller.node.ts +++ b/src/platform/interpreter/installer/moduleInstaller.node.ts @@ -144,7 +144,7 @@ export abstract class ModuleInstaller implements IModuleInstaller { progress?.report({ message }); logger.debug(output.out); if (output.source === 'stderr') { - // https://github.com/deepnote/vscode-deepnote/issues/12703 + // https://github.com/microsoft/vscode-jupyter/issues/12703 // Sometimes on windows we get an error that says "ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory:" // Look for such errors so we can provide a better error message to the user. if (couldNotInstallErr) { @@ -168,7 +168,7 @@ export abstract class ModuleInstaller implements IModuleInstaller { .then( () => { if (observable?.proc?.exitCode !== 0) { - // https://github.com/deepnote/vscode-deepnote/issues/12703 + // https://github.com/microsoft/vscode-jupyter/issues/12703 // `ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'C:\\Users\\donjayamanne\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\jedi\\third_party\\typeshed\\third_party\\2and3\\requests\\packages\\urllib3\\packages\\ssl_match_hostname\\_implementation.pyi' // HINT: This error might have occurred since this system does not have Windows Long Path support enabled. You can find information on how to enable this at https://pip.pypa.io/warnings/enable-long-paths`; // Remove the `[notice]` lines from the error messages diff --git a/src/platform/interpreter/installer/pinnedPackages.ts b/src/platform/interpreter/installer/pinnedPackages.ts index 1a373ea3e5..675eb46e5e 100644 --- a/src/platform/interpreter/installer/pinnedPackages.ts +++ b/src/platform/interpreter/installer/pinnedPackages.ts @@ -12,7 +12,7 @@ export function getPinnedPackages(installer: 'conda' | 'pip', moduleName: string if (!jupyterNotebookModuleNames.includes(moduleName)) { return []; } - // https://github.com/deepnote/vscode-deepnote/issues/12775 + // https://github.com/microsoft/vscode-jupyter/issues/12775 // https://github.com/jupyter/jupyter_client/issues/926 // Pin dependencies for jupyter-client and pyzmq as a work around. if (installer === 'pip') { diff --git a/src/platform/interpreter/installer/poetryInstaller.node.ts b/src/platform/interpreter/installer/poetryInstaller.node.ts index 57c6cba6ac..d3ceb33033 100644 --- a/src/platform/interpreter/installer/poetryInstaller.node.ts +++ b/src/platform/interpreter/installer/poetryInstaller.node.ts @@ -80,7 +80,7 @@ export class PoetryInstaller extends ModuleInstaller { // TODO: We have to shell exec this because child_process.spawn will die // for poetry. // See issue: - // https://github.com/deepnote/vscode-deepnote/issues/9265 + // https://github.com/microsoft/vscode-jupyter/issues/9265 return { useShellExec: true, args, diff --git a/src/standalone/api/kernels/kernelProgressIndicator.ts b/src/standalone/api/kernels/kernelProgressIndicator.ts index 583cde9478..aa6b5bbd2e 100644 --- a/src/standalone/api/kernels/kernelProgressIndicator.ts +++ b/src/standalone/api/kernels/kernelProgressIndicator.ts @@ -109,7 +109,7 @@ export class KernelExecutionProgressIndicator { } private async showProgress() { // Give a grace period of 1000ms to avoid displaying progress indicators too aggressively. - // Clearly some extensions can take a while, see here https://github.com/deepnote/vscode-deepnote/issues/15613 + // Clearly some extensions can take a while, see here https://github.com/microsoft/vscode-jupyter/issues/15613 // More than 1s is too long, await sleep(1_000); if (!this.deferred || this.deferred.completed || this.displayInProgress) { diff --git a/src/standalone/intellisense/kernelCompletionProvider.ts b/src/standalone/intellisense/kernelCompletionProvider.ts index b824c6e9b7..74de39e807 100644 --- a/src/standalone/intellisense/kernelCompletionProvider.ts +++ b/src/standalone/intellisense/kernelCompletionProvider.ts @@ -506,7 +506,7 @@ export class KernelCompletionProvider extends DisposableBase implements IExtensi * Do not wait for completions, * If the completions request crashes then we don't get a response for this request, * Hence we end up waiting indefinitely. - * https://github.com/deepnote/vscode-deepnote/issues/9014 + * https://github.com/microsoft/vscode-jupyter/issues/9014 * * We send this request to ensure the completion provider in the kernel has bee pre-warmed. * This way things are faster when the user actually triggers a completion. diff --git a/src/standalone/userJupyterServer/jupyterPasswordConnect.ts b/src/standalone/userJupyterServer/jupyterPasswordConnect.ts index 6164753fab..b78b42c677 100644 --- a/src/standalone/userJupyterServer/jupyterPasswordConnect.ts +++ b/src/standalone/userJupyterServer/jupyterPasswordConnect.ts @@ -152,7 +152,7 @@ export class JupyterPasswordConnect { sessionCookieName = sessionResult.sessionCookieName; sessionCookieValue = sessionResult.sessionCookieValue; } else { - // Special case for Kubeflow, see https://github.com/deepnote/vscode-deepnote/issues/8441 + // Special case for Kubeflow, see https://github.com/microsoft/vscode-jupyter/issues/8441 // get xsrf cookie with session cookie sessionCookieName = 'authservice_session'; sessionCookieValue = userPassword; diff --git a/src/test/datascience/.vscode/settings.json b/src/test/datascience/.vscode/settings.json index 3e22d34af5..eb53a69e66 100644 --- a/src/test/datascience/.vscode/settings.json +++ b/src/test/datascience/.vscode/settings.json @@ -28,7 +28,7 @@ "webview.experimental.useIframes": true, // Python experiments have to be on for insiders to work "python.experiments.enabled": true, - // See https://github.com/deepnote/vscode-deepnote/issues/10258 + // See https://github.com/microsoft/vscode-jupyter/issues/10258 "jupyter.forceIPyKernelDebugger": false, "python.defaultInterpreterPath": "", "task.problemMatchers.neverPrompt": { diff --git a/src/test/datascience/debugger.vscode.test.ts b/src/test/datascience/debugger.vscode.test.ts index 4d9e1f6734..4dc200792a 100644 --- a/src/test/datascience/debugger.vscode.test.ts +++ b/src/test/datascience/debugger.vscode.test.ts @@ -201,7 +201,7 @@ suite('Run By Line @debugger', function () { assert.isTrue(getCellOutputs(cell).includes('1')); }); - // https://github.com/deepnote/vscode-deepnote/issues/16860 + // https://github.com/microsoft/vscode-jupyter/issues/16860 test.skip('Interrupt during debugging', async function () { const cell = await insertCodeCell('a=1\na', { index: 0 }); const doc = window.activeNotebookEditor?.notebook!; @@ -220,7 +220,7 @@ suite('Run By Line @debugger', function () { ); }); - // https://github.com/deepnote/vscode-deepnote/issues/16860 + // https://github.com/microsoft/vscode-jupyter/issues/16860 test.skip('Stops in same-cell function called from last line', async function () { const cell = await insertCodeCell('def foo():\n print(1)\n\nfoo()', { index: 0 }); const doc = window.activeNotebookEditor?.notebook!; @@ -251,7 +251,7 @@ suite('Run By Line @debugger', function () { }); test.skip('Restart while debugging', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/12188 + // https://github.com/microsoft/vscode-jupyter/issues/12188 const cell = await insertCodeCell('def foo():\n print(1)\n\nfoo()', { index: 0 }); const doc = window.activeNotebookEditor?.notebook!; @@ -274,7 +274,7 @@ suite('Run By Line @debugger', function () { }); test.skip('Does not stop in other cell', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/8757 + // https://github.com/microsoft/vscode-jupyter/issues/8757 const cell0 = await insertCodeCell('def foo():\n print(1)'); const cell1 = await insertCodeCell('foo()'); const doc = window.activeNotebookEditor?.notebook!; @@ -297,7 +297,7 @@ suite('Run By Line @debugger', function () { }); test.skip('Run a second time after interrupt', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/11245 + // https://github.com/microsoft/vscode-jupyter/issues/11245 await insertCodeCell( 'import time\nfor i in range(0,50):\n time.sleep(.1)\n print("sleepy")\nprint("final " + "output")', { diff --git a/src/test/datascience/interactiveDebugging.vscode.common.ts b/src/test/datascience/interactiveDebugging.vscode.common.ts index e85ed4f4d2..33276bdab2 100644 --- a/src/test/datascience/interactiveDebugging.vscode.common.ts +++ b/src/test/datascience/interactiveDebugging.vscode.common.ts @@ -51,7 +51,7 @@ export function sharedIWDebuggerTests( } }; suiteSetup(async function () { - // https://github.com/deepnote/vscode-deepnote/issues/16860 + // https://github.com/microsoft/vscode-jupyter/issues/16860 if (debuggerType === 'JupyterProtocolDebugger') { return this.skip(); } diff --git a/src/test/datascience/interactiveDebugging.vscode.web.test.ts b/src/test/datascience/interactiveDebugging.vscode.web.test.ts index 1d14d0f5ed..1e326f66d0 100644 --- a/src/test/datascience/interactiveDebugging.vscode.web.test.ts +++ b/src/test/datascience/interactiveDebugging.vscode.web.test.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -// https://github.com/deepnote/vscode-deepnote/issues/16780 +// https://github.com/microsoft/vscode-jupyter/issues/16780 // import { sharedIWDebuggerTests } from './interactiveDebugging.vscode.common'; // /* eslint-disable @typescript-eslint/no-explicit-any, no-invalid-this */ diff --git a/src/test/datascience/interactiveWindow.vscode.common.test.ts b/src/test/datascience/interactiveWindow.vscode.common.test.ts index fa3b22b050..2b4af7905c 100644 --- a/src/test/datascience/interactiveWindow.vscode.common.test.ts +++ b/src/test/datascience/interactiveWindow.vscode.common.test.ts @@ -83,7 +83,7 @@ suite(`Interactive window execution @iw`, async function () { logger.info(`Ended Test (completed) ${this.currentTest?.title}`); }); test('__file__ exists even after restarting a kernel', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/12251 + // https://github.com/microsoft/vscode-jupyter/issues/12251 // Ensure we click `Yes` when prompted to restart the kernel. disposables.push(await clickOKForRestartPrompt()); diff --git a/src/test/datascience/manualTestFiles/manualTestFile.py b/src/test/datascience/manualTestFiles/manualTestFile.py index b14880139f..bd110c7559 100644 --- a/src/test/datascience/manualTestFiles/manualTestFile.py +++ b/src/test/datascience/manualTestFiles/manualTestFile.py @@ -86,5 +86,5 @@ def raiser(): fig.show() #%% [markdown] -# ## Test split cell (code below should run -- see issue https://github.com/deepnote/vscode-deepnote/issues/8543) +# ## Test split cell (code below should run -- see issue https://github.com/microsoft/vscode-jupyter/issues/8543) print("hi") diff --git a/src/test/datascience/notebook/executionService.vscode.test.ts b/src/test/datascience/notebook/executionService.vscode.test.ts index 6fb1d2010d..12a08b57c6 100644 --- a/src/test/datascience/notebook/executionService.vscode.test.ts +++ b/src/test/datascience/notebook/executionService.vscode.test.ts @@ -998,7 +998,7 @@ suite('Kernel Execution @kernelCore', function () { }); test('Streamed output is added into the right cell (#16381)', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/16381#issuecomment-2603496123 + // https://github.com/microsoft/vscode-jupyter/issues/16381#issuecomment-2603496123 const onDidChangeNbEventHandler = new EventEmitter(); const stub = sinon.stub(workspace, 'onDidChangeNotebookDocument'); stub.get(() => onDidChangeNbEventHandler.event); diff --git a/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts b/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts index f24de574a0..fc79bf92a7 100644 --- a/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts +++ b/src/test/datascience/notebook/intellisense/completionProvider.vscode.common.test.ts @@ -151,7 +151,7 @@ import { IKernelProvider } from '../../../../kernels/types'; ); } // Make sure it is skipping items that are already provided by pylance (no dupes) - // Pylance isn't returning them right now: https://github.com/deepnote/vscode-deepnote/issues/8842 + // Pylance isn't returning them right now: https://github.com/microsoft/vscode-jupyter/issues/8842 // assert.notOk( // items.find((item) => (typeof item === 'string' ? item.includes('Name') : item.label.includes('Name'))) // ); @@ -188,7 +188,7 @@ import { IKernelProvider } from '../../../../kernels/types'; await testCompletions('df.', '.', fileName, 'Age', 'S', 'Sex'); }); test.skip('Dataframe column completions', async () => { - // https://github.com/deepnote/vscode-deepnote/issues/14012 + // https://github.com/microsoft/vscode-jupyter/issues/14012 const fileName = path.basename(window.activeNotebookEditor!.notebook.uri.fsPath); await testCompletions('df.Name.', '.', fileName, 'add_prefix', 'add_s', 'add_suffix'); }); diff --git a/src/test/datascience/notebook/kernelRankingHelper.ts b/src/test/datascience/notebook/kernelRankingHelper.ts index 2d7f378a85..341d7c6114 100644 --- a/src/test/datascience/notebook/kernelRankingHelper.ts +++ b/src/test/datascience/notebook/kernelRankingHelper.ts @@ -772,7 +772,7 @@ function compareKernelSpecOrEnvNames( * Given that hash, compare the two kernels and find the better of the two. * * If the user has kernelspec in metadata & the interpreter hash is stored in metadata, then its a great match. - * This is the preferred approach https://github.com/deepnote/vscode-deepnote/issues/5612 + * This is the preferred approach https://github.com/microsoft/vscode-jupyter/issues/5612 */ function compareAgainstInterpreterInNotebookMetadata( { diff --git a/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts b/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts index fb029fdd1b..2809bcc428 100644 --- a/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts +++ b/src/test/datascience/notebook/nonPythonKernels.vscode.test.ts @@ -71,7 +71,7 @@ suite('Non-Python Kernel @nonPython ', async function () { verifyPromptWasNotDisplayed(); await closeNotebooksAndCleanUpAfterTests(disposables); }); - // https://github.com/deepnote/vscode-deepnote/issues/10900 + // https://github.com/microsoft/vscode-jupyter/issues/10900 test('Automatically pick Deno kernel when opening a Deno Notebook', async () => { const notebook = await TestNotebookDocument.openFile(testDenoNb); await waitForCondition( diff --git a/src/test/datascience/variableView/variableView.vscode.test.ts b/src/test/datascience/variableView/variableView.vscode.test.ts index 690e182268..ab5cfa240a 100644 --- a/src/test/datascience/variableView/variableView.vscode.test.ts +++ b/src/test/datascience/variableView/variableView.vscode.test.ts @@ -104,7 +104,7 @@ suite('VariableView @variableViewer', function () { const kernel = kernelProvider.get(cell.notebook.uri)!; const execution = kernelProvider.getKernelExecution(kernel); const outputs = await execution.executeHidden('%who_ls'); - // https://github.com/deepnote/vscode-deepnote/issues/10559 + // https://github.com/microsoft/vscode-jupyter/issues/10559 const varsToIgnore = ['matplotlib_inline', 'matplotlib']; // Sample output is `["test", "test2", "os", "sys"]` // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -192,7 +192,7 @@ suite('VariableView @variableViewer', function () { test('VariableView basic types A (webview-test)', async function () { const version = await getVersion(activeInterpreter); if (version?.major === 3 && (version.minor || 0) >= 10) { - // https://github.com/deepnote/vscode-deepnote/issues/8523 + // https://github.com/microsoft/vscode-jupyter/issues/8523 return this.skip(); } // Send the command to open the view diff --git a/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts b/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts index 55c589de12..6ce283168b 100644 --- a/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts +++ b/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts @@ -259,7 +259,7 @@ suite('Standard IPyWidget Tests @widgets', function () { await assertOutputContainsHtml(cell2, comms, ['Button clicked.']); }); test.skip('Widget renders after executing a notebook which was saved after previous execution', async () => { - // // https://github.com/deepnote/vscode-deepnote/issues/8748 + // // https://github.com/microsoft/vscode-jupyter/issues/8748 // await initializeNotebookForWidgetTest(disposables, { templateFile: 'standard_widgets.ipynb' }, editor); // const cell = window.activeNotebookEditor?.notebook.cellAt(0)!; // await executeCellAndWaitForOutput(cell, comms); @@ -295,7 +295,7 @@ suite('Standard IPyWidget Tests @widgets', function () { // await assertOutputContainsHtml(cell, comms, ['66'], '.widget-readout'); }); test.skip('Widget renders after interrupting kernel', async () => { - // // https://github.com/deepnote/vscode-deepnote/issues/8749 + // // https://github.com/microsoft/vscode-jupyter/issues/8749 // const comms = await initializeNotebookForWidgetTest(disposables, { // templateFile: 'standard_widgets.ipynb' // }); @@ -315,7 +315,7 @@ suite('Standard IPyWidget Tests @widgets', function () { // await assertOutputContainsHtml(cell, comms, ['66'], '.widget-readout'); }); test('Nested Output Widgets', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/16861 + // https://github.com/microsoft/vscode-jupyter/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } diff --git a/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts b/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts index a7c42723ed..567cdf7937 100644 --- a/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts +++ b/src/test/datascience/widgets/thirdpartyWidgets.vscode.common.test.ts @@ -102,7 +102,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; }); test('Button Widget with custom comm message rendering a matplotlib widget', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/16861 + // https://github.com/microsoft/vscode-jupyter/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } @@ -124,7 +124,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; await assertOutputContainsHtml(cell0, comms, ['>Figure 1<', 'kernel comms with binary data)', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/16861 + // https://github.com/microsoft/vscode-jupyter/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } @@ -186,7 +186,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; ); }); test('Render matplotlib, widget', async function () { - // https://github.com/deepnote/vscode-deepnote/issues/16861 + // https://github.com/microsoft/vscode-jupyter/issues/16861 if (IS_REMOTE_NATIVE_TEST()) { return this.skip(); } @@ -203,7 +203,7 @@ import { IS_REMOTE_NATIVE_TEST } from '../../constants'; await assertOutputContainsHtml(cell, comms, ['>Figure 1<', '('jupyter.createnewinteractive'); diff --git a/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts b/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts index 32f24d5624..febaf2afa6 100644 --- a/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts +++ b/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts @@ -44,7 +44,7 @@ suite('Jupyter Provider Tests', function () { return this.skip(); } if (IS_CONDA_TEST()) { - // Due to upstream issue documented here https://github.com/deepnote/vscode-deepnote/issues/14338 + // Due to upstream issue documented here https://github.com/microsoft/vscode-jupyter/issues/14338 return this.skip(); } this.timeout(120_000); diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index 74c23b683c..9435831d7b 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -205,7 +205,7 @@ async function start() { .concat(['--enable-proposed-api']) .concat(['--timeout', '5000']) .concat(['--disable-extension', 'ms-python.isort']) // We don't need this, also has a lot of errors on CI and floods CI logs unnecessarily. - .concat(IS_SMOKE_TEST() ? ['--disable-extension', 'ms-python.vscode-pylance'] : []) // For some reason pylance crashes and takes down the entire test run. See https://github.com/deepnote/vscode-deepnote/issues/13200 + .concat(IS_SMOKE_TEST() ? ['--disable-extension', 'ms-python.vscode-pylance'] : []) // For some reason pylance crashes and takes down the entire test run. See https://github.com/microsoft/vscode-jupyter/issues/13200 .concat(['--extensions-dir', extensionsDir]) .concat(['--user-data-dir', userDataDirectory]), // .concat(['--verbose']), // Too much logging from VS Code, enable this to see what's going on in VSC. diff --git a/src/webviews/extension-side/ipywidgets/rendererComms.ts b/src/webviews/extension-side/ipywidgets/rendererComms.ts index 626e8db0e2..e72f635e4f 100644 --- a/src/webviews/extension-side/ipywidgets/rendererComms.ts +++ b/src/webviews/extension-side/ipywidgets/rendererComms.ts @@ -145,7 +145,7 @@ export class IPyWidgetRendererComms implements IExtensionSyncActivationService { } private sendWidgetVersionAndState(comms: NotebookRendererMessaging, editor: NotebookEditor) { // Support for loading Widget state from ipynb files. - // Temporarily disabled. See https://github.com/deepnote/vscode-deepnote/issues/11117 + // Temporarily disabled. See https://github.com/microsoft/vscode-jupyter/issues/11117 // const metadata = getNotebookMetadata(editor.notebook); // const widgetState = metadata?.widgets; diff --git a/src/webviews/webview-side/ipywidgets/kernel/index.ts b/src/webviews/webview-side/ipywidgets/kernel/index.ts index 6d05f9a0d4..aa889ec9ee 100644 --- a/src/webviews/webview-side/ipywidgets/kernel/index.ts +++ b/src/webviews/webview-side/ipywidgets/kernel/index.ts @@ -111,7 +111,7 @@ export async function renderOutput( export function disposeOutput(outputId?: string) { if (outputId) { // We can't delete the widgets because they may be rerendered when we scroll them into view. - // See issue: https://github.com/deepnote/vscode-deepnote/issues/10485 + // See issue: https://github.com/microsoft/vscode-jupyter/issues/10485 // However we can mark them as not being currently rendered. stackOfWidgetsRenderStatusByOutputId = stackOfWidgetsRenderStatusByOutputId.filter( (item) => !(outputId in item) diff --git a/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts b/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts index 2144fc1b20..45053ca274 100644 --- a/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts +++ b/src/webviews/webview-side/ipywidgets/kernel/scriptManager.ts @@ -234,7 +234,7 @@ export class ScriptManager extends EventEmitter { } catch (ex) { // eslint-disable-next-line no-console console.error(`Failed to load Widget Script from Extension for ${moduleName}, ${moduleVersion}`, ex); - // TODO: https://github.com/deepnote/vscode-deepnote/issues/12786 + // TODO: https://github.com/microsoft/vscode-jupyter/issues/12786 // throw ex; } } diff --git a/src/webviews/webview-side/ipywidgets/renderer/index.ts b/src/webviews/webview-side/ipywidgets/renderer/index.ts index 3e8c59837d..3d488ed304 100644 --- a/src/webviews/webview-side/ipywidgets/renderer/index.ts +++ b/src/webviews/webview-side/ipywidgets/renderer/index.ts @@ -177,7 +177,7 @@ export const activate: ActivationFunction = (context) => { * Now the previous output gets cleared and new output is added to the cell. * Since both operations happen at the same time, we do not clear the output, * instead the renderOutputItem is called with the new data for the same output element and same output item Id. - * See https://github.com/deepnote/vscode-deepnote/issues/14161 + * See https://github.com/microsoft/vscode-jupyter/issues/14161 */ async renderOutputItem(outputItem: OutputItem, element: HTMLElement, _signal: AbortController) { logger(`Got item for Rendering ${outputItem.id}}`); From f7f5fab1c78d5dd129202bee4990a63b96be18d1 Mon Sep 17 00:00:00 2001 From: James Hobbs Date: Mon, 27 Oct 2025 17:08:39 +0000 Subject: [PATCH 03/10] docs: rm weird docs from original fork --- .github/endgame_plan.md | 115 ---------------------------------------- 1 file changed, 115 deletions(-) delete mode 100644 .github/endgame_plan.md diff --git a/.github/endgame_plan.md b/.github/endgame_plan.md deleted file mode 100644 index 0a11ab6910..0000000000 --- a/.github/endgame_plan.md +++ /dev/null @@ -1,115 +0,0 @@ -* [Endgame Template](https://github.com/deepnote/vscode-deepnote/blob/main/.github/endgame_plan.md) - -## Thursday -- [ ] Ensure that any CI test failures have issues assigned to that area's owner. -- [ ] Work with the build champ to drive the build to green by fixing/disabling tests or pinging area owners to do so. - -## Friday -- [ ] Review [Component Governance](https://dev.azure.com/monacotools/Monaco/_componentGovernance/191876) (Click on "deepnote/vscode-deepnote" on that page) and resolve all High/Severe issues. - - [ ] Focus on resolving `Critical` and `High` priority issues as others will be addressed in the `debt` week. - - [ ] Manually add any repository dependencies (if you can't add manually, refer [here](https://docs.opensource.microsoft.com/tools/cg/features/cgmanifest/)). Only add a cgmanifest.json if the components are not NPM or are not dev only. - Instructions on updating `npm` dependencies in `package.json` & `package-lock.json` can be found [here](https://github.com/deepnote/vscode-deepnote/wiki/Resolving-Component-Governance-and-Dependabot-issues-(updating-package-lock.json)). -- [ ] Create new release branch with format `release/release-YYYY.MM`. - * Note: The release branch is now ready for to be published (or hotfixed) -- [ ] Back on the `main` branch, bump the version in `package.json`. - - [ ] The version number will be the next monthly ("YYYY.M.0") version number (e.g. if the latest is `2022.2.0`, bump it to `2022.3.0`). - - [ ] `npm install` to update `package-lock.json` as well - -## Monday (Debt/Release week) -- [ ] Obtain VS Code [stable RC](https://builds.code.visualstudio.com/builds/stable) for sanity testing -- [ ] Manually run the [Stable pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=284) against the `release/release-YYYY.MM` branch - - Enable `Publish Extension`, you do not need an approval to build the VSIX. - - DO NOT ask for approval for the extension publish step, this step should only be done after sanity testing is done and ready to release. -- [ ] Sanity test release candidate VSIX against VS Code RC - Tip: You can use the dev containers in the this repo for testing against linux (just open the repo and use thd command `Dev Containers: Reopen in Container`) - - [ ] Windows - - [ ] win32-x64 - - [ ] win32-arm64 - - [ ] macOS - - [ ] darwin-x64 - - [ ] darwin-arm64 - - [ ] Linux - - [ ] linux-arm64 - - [ ] linux-armhf - - [ ] linux-x64 - - [ ] alpine-arm64 - - [ ] alpine-x64 -- [ ] Test web by going to insiders.vscode.dev and test the latest pre-release of jupyter -- [ ] Candidate bug fixes found from sanity test should be checked into `main` and cherry-picked to `release` branch - - After a candidate fix is merged, a pre-release build can be released by manually running [the pre-release devops pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=283) against the release branch. - -### Satelite extensions/npm packages -- [ ] Reach out to the owners of each of these to coordinate the releases (if any). - - If there are no releases for each of the following, then mark them as done. - - Else the ownsers of each to mark as done when they are done. -- [ ] JupyterHub (@DonJayamanne) - - No need to pin VS Code engine - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=521&_a=summary)) - - PreRelease directly from main branch manually ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=520)) -- [ ] Jupyter (Notebook) Renderers (@DonJayamanne) - - No need to pin VS Code engine (unless you want to test something against VS Code insiders and not ship to stable users) - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=285)) -- [ ] Jupyter Powertoys (@DonJayamanne) - - No need to pin VS Code engine (unless you want to test something against VS Code insiders and not ship to stable users, e.g. depends on some new Jupyter Extension API) - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=305)) -- [ ] Jupyter Cell Tags (@rebornix) - - No need to pin VS Code engine - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=388)) -- [ ] Jupyter Slideshow (@rebornix) - - No need to pin VS Code engine - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=387)) -- [ ] Jupyter KeyMap (@rebornix) - - No need to pin VS Code engine - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=260)) -- [ ] Tensorboard (@DonJayamanne) - - No need to pin VS Code engine - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=531)) - - PreRelease directly from main branch manually ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=530)) -- [ ] zeromq-prebuilt (@DonJayamanne) - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=466)) - - Release by adding a git tag and pushing it upstream (e.g. 6.0.0-beta.16.8) - - Can test bundles by manually running and publishing releases to github releases (download and test the bundles manually from github releases) -- [ ] @vscode/zeromq (@DonJayamanne) - - To be done after relesing `zeromq-prebuilt` - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=469)) -- [ ] @vscode/jupyter-extension (@DonJayamanne) - - Release directly from main/relese branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=519&_a=summary)) -- [ ] Gather (@DonJayamanne) - - No need to pin VS Code engine - - Release directly from main branch ([pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=290)) - -## Tuesday -- [ ] Make sure [Component Governance](https://dev.azure.com/monacotools/Monaco/_componentGovernance/191876) is happy -- [ ] Release - - [ ] Verify the PR Pipeline on Github actions is green against the release branch. - - [ ] Approve the `Publish` stage of the last [Stable pipeline](https://dev.azure.com/monacotools/Monaco/_build?definitionId=284) that's successfully sanity tested. - - [ ] Ensure a tag with the released version number on the commit that was released was created. - * This step occurs in the `Publish` Stage of the stable pipeline linked above. - - [ ] If any steps were unclear or changed in this endgame plan please update the `endgame_plan.md` file to make it clear for the next release - -## Wednesday/Thursday (Day of VS Code releasing the next insider version) -- [ ] Bump the engines.vscode version on the `main` branch to point to the next version. For example, from `1.58.0` to `1.59.0` - -## As needed -- [ ] Determine if a hotfix is needed - - Use the same `release/release-YYYY.MM` branch -- [ ] Ensure the version in package.json is updated as follows: - * If released version is `YYYY.MM.0`, then hot fix will be `YYYY.MM.1` - * If released version is `YYYY.MM.1`, then hot fix will be `YYYY.MM.2` -- [ ] Verify all candidate issues -- [ ] Sanity test release candidate VSIX against VS Code RC - Tip: You can use the dev containers in the this repo for testing against linux (just open the repo and use thd command `Dev Containers: Reopen in Container`) - - [ ] Windows - - [ ] win32-x64 - - [ ] win32-arm64 - - [ ] macOS - - [ ] darwin-x64 - - [ ] darwin-arm64 - - [ ] Linux - - [ ] linux-arm64 - - [ ] linux-armhf - - [ ] linux-x64 - - [ ] alpine-arm64 - - [ ] alpine-x64 -- [ ] Ensure that another tag was created for the new version's commit. - * If a tag was not pushed, investigate in the `Publish` Stage of the stable pipeline linked above, and manually add one using: `git tag -a YYYY.MM -m YYYY.MM -s -f` From 795de38498234400d042f9dad787c3a6e788f622 Mon Sep 17 00:00:00 2001 From: James Hobbs Date: Mon, 27 Oct 2025 17:13:56 +0000 Subject: [PATCH 04/10] chore: undo more changes --- package.nls.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.nls.json b/package.nls.json index 8f7bf8239b..f323d4cfec 100644 --- a/package.nls.json +++ b/package.nls.json @@ -129,8 +129,8 @@ "jupyter.configuration.jupyter.logging.level.warn": "Warning and error messages are logged with this level.", "jupyter.configuration.jupyter.logging.level.error": "Only error messages are logged with this level.", "jupyter.configuration.jupyter.logging.level.description": "The logging level the extension logs at.", - "jupyter.configuration.jupyter.experiments.optInto.markdownDescription": "List of experiments to opt into. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/deepnote/vscode-deepnote/wiki/Experiments).", - "jupyter.configuration.jupyter.experiments.optOutFrom.markdownDescription": "List of experiments to opt out of. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/deepnote/vscode-deepnote/wiki/Experiments).", + "jupyter.configuration.jupyter.experiments.optInto.markdownDescription": "List of experiments to opt into. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/microsoft/vscode-jupyter/wiki/Experiments).", + "jupyter.configuration.jupyter.experiments.optOutFrom.markdownDescription": "List of experiments to opt out of. If empty, the user is assigned the default experiment groups. [Learn more](https://github.com/microsoft/vscode-jupyter/wiki/Experiments).", "jupyter.configuration.jupyter.widgetScriptSources.items.enumDescriptions.0": "Loads widget (javascript) scripts from https://www.jsdelivr.com/", "jupyter.configuration.jupyter.widgetScriptSources.items.enumDescriptions.1": "Loads widget (javascript) scripts from https://unpkg.com/", "jupyter.configuration.jupyter.widgetScriptSources.items.custom": "Loads widget (javascript) scripts from a custom CDN, following the provided URL template. ", From cc0e7a3002238b15de913f9c73de1f2a8d99f0df Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Tue, 28 Oct 2025 10:23:31 +0100 Subject: [PATCH 05/10] fix: update package metadata and remove obsolete notebook MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Addresses CodeRabbit review feedback: 1. Fixed api/package.json to have consistent repository references - Updated repository.url to deepnote/vscode-deepnote - Updated bugs.url to deepnote/vscode-deepnote - Now matches homepage URL 2. Removed .vscode/notebooks/CITestResults.ipynb - This notebook referenced a non-existent workflow (aggregate-test-results.yml) - The workflow does not exist in this repository 3. Included package-lock.json dependency updates - npm peer dependency changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .vscode/notebooks/CITestResults.ipynb | 385 -------------------------- api/package.json | 4 +- package-lock.json | 376 +++++++------------------ 3 files changed, 99 insertions(+), 666 deletions(-) delete mode 100644 .vscode/notebooks/CITestResults.ipynb diff --git a/.vscode/notebooks/CITestResults.ipynb b/.vscode/notebooks/CITestResults.ipynb deleted file mode 100644 index bbbaf04538..0000000000 --- a/.vscode/notebooks/CITestResults.ipynb +++ /dev/null @@ -1,385 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Python dependencies" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%pip install requests\n", - "%pip install pandas\n", - "%pip install datetime" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Configuration\n", - "\n", - "Settings to be configured per individual. \n", - "\n", - "TODO: configure these settings outside of the notebook so they don't mess with source control. (environment variables?)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "try:\n", - " with open('.github_token', 'r') as f:\n", - " authtoken = f.read()\n", - "except FileNotFoundError:\n", - " # get an auth token using the steps here: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token\n", - " authtoken = input('Please enter your GitHub token: ')\n", - " with open('.github_token', 'w') as f:\n", - " f.write(authtoken)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "resultsDownloadLocation = 'c:\\\\temp\\\\testResults'\n", - "if (not os.path.exists(resultsDownloadLocation)):\n", - " os.makedirs(resultsDownloadLocation)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Retrieving Data\n", - "\n", - "The github action \"Aggregate Test Results\" runs daily and collects all the results for the previous day into a single json file.\n", - "\n", - "These steps will:\n", - "\n", - "- Find the last 50 runs (you can increase this if you want to look back further\n", - "- Download the artifacts from those runs into memory\n", - "- Write the .json file from within the artifact to disk (only if there isn't already an up to date file on disk)\n", - "- Load all results into a pandas DataFrame" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import requests\n", - "\n", - "\n", - "def getRuns():\n", - " runsResponse = requests.get(\n", - " \"https://api.github.com/repos/deepnote/vscode-deepnote/actions/workflows/aggregate-test-results.yml/runs?per_page=50\",\n", - " headers={\n", - " \"Accept\": \"application/vnd.github+json\",\n", - " \"Authorization\": f\"Bearer {authtoken}\",\n", - " }, \n", - " )\n", - " \n", - " if runsResponse.status_code != 200:\n", - " print(f\"Error {runsResponse.status_code}\")\n", - " raise Exception(\"Error getting runs\")\n", - "\n", - " print(f\"Found {len(runsResponse.json()['workflow_runs'])} runs\")\n", - "\n", - " return runsResponse.json()[\"workflow_runs\"]\n", - "\n", - "runs = getRuns()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datetime import datetime\n", - "\n", - "alreadyDownloaded = {}\n", - "for file in os.listdir(resultsDownloadLocation):\n", - " path = os.path.join(resultsDownloadLocation, file)\n", - " lastModified = datetime.fromtimestamp(os.path.getmtime(path))\n", - " alreadyDownloaded[file] = lastModified\n", - "\n", - "print(f\"Already downloaded {len(alreadyDownloaded)} result files, they will be skipped unless there is a newer version\")\n", - "\n", - "def shouldDownload(name, timestamp):\n", - " fileDate = datetime.strptime(timestamp, \"%Y-%m-%dT%H:%M:%SZ\")\n", - " if name in alreadyDownloaded:\n", - " if alreadyDownloaded[name] >= fileDate:\n", - " return False\n", - " \n", - " alreadyDownloaded[name] = fileDate\n", - " return True\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import io\n", - "import json\n", - "import zipfile\n", - "\n", - "\n", - "def getArtifactData(id):\n", - " testResultsResponse = requests.get(\n", - " f\"https://api.github.com/repos/deepnote/vscode-deepnote/actions/artifacts/{id}/zip\",\n", - " headers={\n", - " \"Accept\": \"application/vnd.github+json\",\n", - " \"Authorization\": f\"Bearer {authtoken}\",\n", - " },\n", - " )\n", - "\n", - " if testResultsResponse.status_code != 200:\n", - " print(f\"Error {testResultsResponse.status_code} getting artifact {id}\")\n", - "\n", - " return testResultsResponse.content\n", - "\n", - "def saveResultsFile(zipData, timeStamp):\n", - " with zipfile.ZipFile(io.BytesIO(zipData)) as artifact:\n", - " for name in artifact.namelist():\n", - " print(f'checking {name} at {timeStamp}')\n", - " if shouldDownload(name, timeStamp):\n", - " content = artifact.read(name)\n", - " print(f\" saving {name}\")\n", - " with open(f'{resultsDownloadLocation}\\\\{name}', 'wb') as f:\n", - " f.write(content) \n", - "\n", - "print(f\"Getting artifacts from {len(runs)} runs\")\n", - "for run in runs:\n", - " artifactUrl = run[\"artifacts_url\"]\n", - " print(f\"Getting artifacts from {artifactUrl} from {run['created_at']}\")\n", - " artifactsResponse = requests.get(\n", - " artifactUrl, headers={\n", - " \"Accept\": \"application/vnd.github+json\",\n", - " \"Authorization\": f\"Bearer {authtoken}\",\n", - " }\n", - " )\n", - "\n", - " if artifactsResponse.status_code != 200:\n", - " print(f\"Error {artifactsResponse.status_code} getting artifact {id}\")\n", - " else:\n", - " artifacts = artifactsResponse.json()[\"artifacts\"]\n", - " for artifact in artifacts:\n", - " rawData = getArtifactData(artifact[\"id\"])\n", - " testRunResults = saveResultsFile(rawData, run[\"created_at\"])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datetime import datetime, timedelta\n", - "\n", - "import pandas as pd\n", - "\n", - "testResults = []\n", - "for file in os.listdir(resultsDownloadLocation):\n", - " path = f'{resultsDownloadLocation}\\\\{file}'\n", - " if datetime.fromtimestamp(os.path.getmtime(path)) < datetime.now() - timedelta(days=50):\n", - " # limit the amount of results we load\n", - " continue\n", - "\n", - " with open(path, 'r') as f:\n", - " try:\n", - " df = pd.read_json(f)\n", - " testResults.append(df)\n", - " except Exception as e:\n", - " print(f'Error reading {file}: {e}')\n", - "\n", - "df = pd.concat(testResults)\n", - "# strip off the time to help grouping, but keep as datetime type\n", - "df[\"datetime\"] = pd.to_datetime(df[\"date\"])\n", - "df[\"date\"] = pd.to_datetime(df[\"date\"]).dt.date\n", - "\n", - "print(f\"{len(df)} test results collected between {df['date'].min()} and {df['date'].max()}\")\n", - "\n", - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Reporting" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from datetime import date, timedelta\n", - "\n", - "recentFailures = df[df['date'] > date.today() - timedelta(days=7)]\n", - "recentFailures = recentFailures[recentFailures['status'] == 'failed'].dropna()\n", - "# recentFailures = recentFailures[recentFailures['scenario'] != 'TestLogs-raw-nonConda-3.10---windows-latest']\n", - "recentFailures = recentFailures.groupby(['testName', 'suite']).agg(failureCount=('testName', 'count'))\n", - "\n", - "recentFailures.sort_values(by=['failureCount', 'suite'], ascending=False).head(20)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Failure of a specific test" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "testName= 'Cells from python files and the input box are executed in correct order'\n", - "\n", - "testData = df.where(df['testName'] == testName).dropna()\n", - "passes = testData.where(testData['status'] == 'passed').dropna()\n", - "fails = testData.where(testData['status'] == 'failed').dropna()\n", - "successRate = len(passes) / (len(passes) + len(fails))\n", - "print(f\"'{testName}' failed {len(fails)} times between {testData['date'].min()} and {testData['date'].max()}\")\n", - "print(f\"Success rate: {successRate}\")\n", - "\n", - "testData['fail'] = testData['status'] == 'failed'\n", - "testData['pass'] = testData['status'] == 'passed'\n", - "\n", - "passfailcounts = testData.groupby(['date']).sum()\n", - "\n", - "passfailcounts.sort_values(by=['date'], ascending=False).head(15)\n", - "\n", - "# line chart not working\n", - "# import matplotlib.pyplot as plt\n", - "# ax=testData.plot(kind='line', x='date', y='pass', color='Green')\n", - "\n", - "# ax2=testData.plot(kind='line', x='date', y='fail', secondary_y=True,color='Red', ax=ax)\n", - "\n", - "# ax.set_ylabel('Passes')\n", - "# ax2.set_ylabel('Failures')\n", - "# plt.tight_layout()\n", - "# plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "failures = testData.where(testData['status'] == 'failed').dropna()\n", - "failures = failures[['date', 'status', 'scenario', 'runUrl']].sort_values(by=['date'], ascending=False).head(10)\n", - "\n", - "failureMessage = ''\n", - "for index, row in failures.iterrows():\n", - " print(f\"{row['date']} - {row['scenario']}\\n{row['runUrl']}\")\n", - " failureMessage += f\"{row['date']} - {row['scenario']}\\n{row['runUrl']}\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import io\n", - "from urllib import request\n", - "\n", - "\n", - "# post to create new github issue\n", - "def createIssue(title, body):\n", - " print(\"Creating issue for \" + title)\n", - " url = 'https://api.github.com/repos/deepnote/vscode-deepnote/issues'\n", - " data = {\n", - " 'title': title,\n", - " 'body': body,\n", - " 'labels': ['flaky test']\n", - " }\n", - " headers = {\n", - " \"Accept\": \"application/vnd.github+json\",\n", - " \"Authorization\": f\"Bearer {authtoken}\",\n", - " }\n", - " data = json.dumps(data).encode('utf-8')\n", - " req = request.Request(url, data=data, headers=headers, method='POST')\n", - " response = request.urlopen(req)\n", - " print(response.read().decode('utf-8'))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import ipywidgets as widgets\n", - "\n", - "chk = widgets.Checkbox(\n", - " value=False,\n", - " description='Create issue on github?',\n", - " disabled=False,\n", - " indent=False\n", - ")\n", - "display(chk)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if (chk.value):\n", - " createIssue(f\"Test failure: {testName}\", failureMessage)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.13" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "05cadb55cbb23d0d156eeac1bfe39405b391b4fa73e06b1a6140e7007eb56649" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/api/package.json b/api/package.json index a2968a4723..2441717673 100644 --- a/api/package.json +++ b/api/package.json @@ -15,10 +15,10 @@ "homepage": "https://github.com/deepnote/vscode-deepnote", "repository": { "type": "git", - "url": "https://github.com/Microsoft/vscode-jupyter" + "url": "https://github.com/deepnote/vscode-deepnote" }, "bugs": { - "url": "https://github.com/Microsoft/vscode-jupyter/issues" + "url": "https://github.com/deepnote/vscode-deepnote/issues" }, "scripts": { "buildStable": "npm run clean && node ./stable.js", diff --git a/package-lock.json b/package-lock.json index ce70e55104..1b81fd2fed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -457,6 +457,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.5", @@ -965,7 +966,8 @@ "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.18.tgz", "integrity": "sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@cspell/dict-dart": { "version": "2.3.1", @@ -1105,14 +1107,16 @@ "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.12.tgz", "integrity": "sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@cspell/dict-html-symbol-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.4.tgz", "integrity": "sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@cspell/dict-java": { "version": "5.0.12", @@ -1310,7 +1314,8 @@ "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz", "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@cspell/dict-vue": { "version": "3.0.5", @@ -2376,11 +2381,6 @@ "url-parse": "~1.5.4" } }, - "node_modules/@jupyterlab/coreutils/node_modules/@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, "node_modules/@jupyterlab/coreutils/node_modules/@lumino/coreutils": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", @@ -2424,28 +2424,6 @@ "ws": "^8.11.0" } }, - "node_modules/@jupyterlab/services/node_modules/@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "node_modules/@jupyterlab/services/node_modules/@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "dependencies": { - "@lumino/algorithm": "^2.0.2" - } - }, - "node_modules/@jupyterlab/services/node_modules/@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "dependencies": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - }, "node_modules/@jupyterlab/services/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -2485,28 +2463,6 @@ "react": ">=16" } }, - "node_modules/@jupyterlab/settingregistry/node_modules/@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "node_modules/@jupyterlab/settingregistry/node_modules/@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "dependencies": { - "@lumino/algorithm": "^2.0.2" - } - }, - "node_modules/@jupyterlab/settingregistry/node_modules/@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "dependencies": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - }, "node_modules/@jupyterlab/settingregistry/node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -2544,28 +2500,6 @@ "@lumino/signaling": "^2.1.2" } }, - "node_modules/@jupyterlab/statedb/node_modules/@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "node_modules/@jupyterlab/statedb/node_modules/@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "dependencies": { - "@lumino/algorithm": "^2.0.2" - } - }, - "node_modules/@jupyterlab/statedb/node_modules/@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "dependencies": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - }, "node_modules/@koa/cors": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@koa/cors/-/cors-5.0.0.tgz", @@ -2676,28 +2610,6 @@ "@lumino/signaling": "^2.1.3" } }, - "node_modules/@lumino/polling/node_modules/@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "node_modules/@lumino/polling/node_modules/@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "dependencies": { - "@lumino/algorithm": "^2.0.2" - } - }, - "node_modules/@lumino/polling/node_modules/@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "dependencies": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - }, "node_modules/@lumino/properties": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@lumino/properties/-/properties-2.0.3.tgz", @@ -2975,6 +2887,7 @@ "integrity": "sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -3135,6 +3048,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -4204,6 +4118,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz", "integrity": "sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "6.9.0", "@typescript-eslint/types": "6.9.0", @@ -4918,6 +4833,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5058,7 +4974,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -5730,22 +5645,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/bare-events": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.0.tgz", - "integrity": "sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, "node_modules/bare-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.6.tgz", @@ -6144,6 +6043,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -6207,6 +6107,7 @@ "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", "devOptional": true, "hasInstallScript": true, + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -6438,6 +6339,7 @@ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, + "peer": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -6489,7 +6391,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -6875,7 +6776,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -6884,8 +6784,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "peer": true + "dev": true }, "node_modules/colorette": { "version": "2.0.20", @@ -8380,6 +8279,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.0.tgz", "integrity": "sha512-fwujyMe1gj6rk6dYi9hMZm0c8Mz8NDMVl2LB4iaYh3+LIAThZC8RKFGXWG0IML2OxAit/ZFRgZhMkhQ3d/bobQ==", + "peer": true, "dependencies": { "semver": "^5.3.0" } @@ -8681,6 +8581,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "peer": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -8985,6 +8886,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -9077,7 +8979,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, - "peer": true, "engines": { "node": ">=0.8.0" } @@ -9172,6 +9073,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -9360,6 +9262,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, + "peer": true, "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -9483,6 +9386,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.20.7", "aria-query": "^5.1.3", @@ -9585,6 +9489,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, + "peer": true, "dependencies": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", @@ -9615,6 +9520,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, + "peer": true, "engines": { "node": ">=10" }, @@ -14230,6 +14136,7 @@ "integrity": "sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-colors": "^4.1.3", "browser-stdout": "^1.3.1", @@ -14963,6 +14870,7 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, + "peer": true, "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -16177,6 +16085,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -16255,6 +16164,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", "dev": true, + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -16320,6 +16230,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -16490,6 +16401,7 @@ "version": "16.14.0", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -16517,6 +16429,7 @@ "version": "16.14.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -18228,6 +18141,7 @@ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", "hasInstallScript": true, + "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -18333,12 +18247,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/synckit/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, "node_modules/tailwind-merge": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", @@ -18644,6 +18552,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -18832,7 +18741,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/tslint": { "version": "6.1.3", @@ -18840,7 +18750,6 @@ "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -18872,7 +18781,6 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -18882,7 +18790,6 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -18892,7 +18799,6 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "peer": true, "engines": { "node": ">=0.3.1" } @@ -18903,7 +18809,6 @@ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -18916,8 +18821,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/tsscmp": { "version": "1.0.6", @@ -18934,7 +18838,6 @@ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, - "peer": true, "dependencies": { "tslib": "^1.8.1" }, @@ -18946,8 +18849,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/tsx": { "version": "4.19.4", @@ -19168,6 +19070,7 @@ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19405,6 +19308,7 @@ "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", "devOptional": true, "hasInstallScript": true, + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -19524,6 +19428,7 @@ "resolved": "https://registry.npmjs.org/vega/-/vega-5.33.0.tgz", "integrity": "sha512-jNAGa7TxLojOpMMMrKMXXBos4K6AaLJbCgGDOw1YEkLRjUkh12pcf65J2lMSdEHjcEK47XXjKiOUVZ8L+MniBA==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "vega-crossfilter": "~4.1.3", "vega-dataflow": "~5.7.7", @@ -19751,6 +19656,7 @@ "resolved": "https://registry.npmjs.org/vega-lite/-/vega-lite-5.23.0.tgz", "integrity": "sha512-l4J6+AWE3DIjvovEoHl2LdtCUkfm4zs8Xxx7INwZEAv+XVb6kR6vIN1gt3t2gN2gs/y4DYTs/RPoTeYAuEg6mA==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "json-stringify-pretty-compact": "~4.0.0", "tslib": "~2.8.1", @@ -20408,6 +20314,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "peer": true, "dependencies": { "async-limiter": "~1.0.0" } @@ -20564,6 +20471,7 @@ "version": "13.6.18", "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.18.tgz", "integrity": "sha512-GBTjO4QCmv2HFKFkYIJl7U77hIB1o22vSCSQD1Ge8ZxWbIbn8AltI4gyXbtL+g5/GJep67HCMq3Y5AmNwDSyEg==", + "peer": true, "dependencies": { "lib0": "^0.2.86" }, @@ -20806,6 +20714,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", "dev": true, + "peer": true, "requires": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.5", @@ -21203,7 +21112,8 @@ "version": "4.0.18", "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.18.tgz", "integrity": "sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==", - "dev": true + "dev": true, + "peer": true }, "@cspell/dict-dart": { "version": "2.3.1", @@ -21323,13 +21233,15 @@ "version": "4.0.12", "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.12.tgz", "integrity": "sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==", - "dev": true + "dev": true, + "peer": true }, "@cspell/dict-html-symbol-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.4.tgz", "integrity": "sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==", - "dev": true + "dev": true, + "peer": true }, "@cspell/dict-java": { "version": "5.0.12", @@ -21495,7 +21407,8 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz", "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==", - "dev": true + "dev": true, + "peer": true }, "@cspell/dict-vue": { "version": "3.0.5", @@ -22148,11 +22061,6 @@ "url-parse": "^1.5.10" }, "dependencies": { - "@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, "@lumino/coreutils": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", @@ -22198,28 +22106,6 @@ "ws": "7.5.10" }, "dependencies": { - "@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "requires": { - "@lumino/algorithm": "^2.0.2" - } - }, - "@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "requires": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - }, "ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -22244,28 +22130,6 @@ "json5": "2.2.3" }, "dependencies": { - "@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "requires": { - "@lumino/algorithm": "^2.0.2" - } - }, - "@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "requires": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - }, "ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -22299,30 +22163,6 @@ "@lumino/disposable": "^2.1.2", "@lumino/properties": "^2.0.1", "@lumino/signaling": "^2.1.2" - }, - "dependencies": { - "@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "requires": { - "@lumino/algorithm": "^2.0.2" - } - }, - "@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "requires": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - } } }, "@koa/cors": { @@ -22425,30 +22265,6 @@ "@lumino/coreutils": "^2.2.0", "@lumino/disposable": "^2.1.3", "@lumino/signaling": "^2.1.3" - }, - "dependencies": { - "@lumino/algorithm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-2.0.2.tgz", - "integrity": "sha512-cI8yJ2+QK1yM5ZRU3Kuaw9fJ/64JEDZEwWWp7+U0cd/mvcZ44BGdJJ29w+tIet1QXxPAvnsUleWyQ5qm4qUouA==" - }, - "@lumino/coreutils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-2.2.0.tgz", - "integrity": "sha512-x5wnQ/GjWBayJ6vXVaUi6+Q6ETDdcUiH9eSfpRZFbgMQyyM6pi6baKqJBK2CHkCc/YbAEl6ipApTgm3KOJ/I3g==", - "requires": { - "@lumino/algorithm": "^2.0.2" - } - }, - "@lumino/signaling": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-2.1.3.tgz", - "integrity": "sha512-9Wd4iMk8F1i6pYjy65bqKuPlzQMicyL9xy1/ccS20kovPcfD074waneL/7BVe+3M8i+fGa3x2qjbWrBzOdTdNw==", - "requires": { - "@lumino/algorithm": "^2.0.2", - "@lumino/coreutils": "^2.2.0" - } - } } }, "@lumino/properties": { @@ -22696,6 +22512,7 @@ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.1.tgz", "integrity": "sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==", "dev": true, + "peer": true, "requires": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -22820,7 +22637,8 @@ "@opentelemetry/api": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz", - "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==" + "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==", + "peer": true }, "@opentelemetry/core": { "version": "1.10.1", @@ -23652,6 +23470,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz", "integrity": "sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==", "dev": true, + "peer": true, "requires": { "@typescript-eslint/scope-manager": "6.9.0", "@typescript-eslint/types": "6.9.0", @@ -24138,7 +23957,8 @@ "version": "8.9.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", - "dev": true + "dev": true, + "peer": true }, "acorn-jsx": { "version": "5.3.2", @@ -24239,7 +24059,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "peer": true, "requires": { "color-convert": "^1.9.0" } @@ -24739,14 +24558,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "bare-events": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.0.tgz", - "integrity": "sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==", - "dev": true, - "optional": true, - "requires": {} - }, "bare-fs": { "version": "4.1.6", "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.6.tgz", @@ -25053,6 +24864,7 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", "dev": true, + "peer": true, "requires": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -25092,6 +24904,7 @@ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", "devOptional": true, + "peer": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -25243,6 +25056,7 @@ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, + "peer": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -25282,7 +25096,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "peer": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -25543,7 +25356,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "peer": true, "requires": { "color-name": "1.1.3" } @@ -25552,8 +25364,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true, - "peer": true + "dev": true }, "colorette": { "version": "2.0.20", @@ -26656,6 +26467,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.0.tgz", "integrity": "sha512-fwujyMe1gj6rk6dYi9hMZm0c8Mz8NDMVl2LB4iaYh3+LIAThZC8RKFGXWG0IML2OxAit/ZFRgZhMkhQ3d/bobQ==", + "peer": true, "requires": { "semver": "^5.3.0" } @@ -26913,6 +26725,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "peer": true, "requires": { "iconv-lite": "^0.6.2" } @@ -27162,6 +26975,7 @@ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", "dev": true, + "peer": true, "requires": { "@esbuild/aix-ppc64": "0.25.1", "@esbuild/android-arm": "0.25.1", @@ -27233,8 +27047,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "peer": true + "dev": true }, "escodegen": { "version": "1.14.3", @@ -27301,6 +27114,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", "dev": true, + "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -27539,6 +27353,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, + "peer": true, "requires": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -27633,6 +27448,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, + "peer": true, "requires": { "@babel/runtime": "^7.20.7", "aria-query": "^5.1.3", @@ -27698,6 +27514,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", "dev": true, + "peer": true, "requires": { "array-includes": "^3.1.6", "array.prototype.flatmap": "^1.3.1", @@ -27750,6 +27567,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, + "peer": true, "requires": {} }, "eslint-visitor-keys": { @@ -30896,6 +30714,7 @@ "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.0.1.tgz", "integrity": "sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==", "dev": true, + "peer": true, "requires": { "ansi-colors": "^4.1.3", "browser-stdout": "^1.3.1", @@ -31435,6 +31254,7 @@ "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, + "peer": true, "requires": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -32311,6 +32131,7 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, + "peer": true, "requires": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -32356,7 +32177,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", - "dev": true + "dev": true, + "peer": true }, "prettier-linter-helpers": { "version": "1.0.0", @@ -32401,6 +32223,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "peer": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -32543,6 +32366,7 @@ "version": "16.14.0", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "peer": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -32563,6 +32387,7 @@ "version": "16.14.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "peer": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -33445,7 +33270,7 @@ "integrity": "sha512-DF7ePE5bwitJrRdJSNrV+qAnQsfds0GbRA02ywy6TQrQewkm9DSHGDUxJaoJk2WUMlyQ7Odrf2o1PCZM50BcSg==", "requires": { "jquery": ">=1.8.0", - "jquery-ui": ">=1.8.0" + "jquery-ui": "1.13.2" } }, "smol-toml": { @@ -33862,6 +33687,7 @@ "version": "5.3.5", "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", + "peer": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", @@ -33936,14 +33762,6 @@ "requires": { "@pkgr/utils": "^2.3.1", "tslib": "^2.5.0" - }, - "dependencies": { - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } } }, "tailwind-merge": { @@ -34195,7 +34013,8 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true + "dev": true, + "peer": true } } }, @@ -34332,14 +34151,14 @@ "tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "peer": true }, "tslint": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", "dev": true, - "peer": true, "requires": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -34361,7 +34180,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "peer": true, "requires": { "sprintf-js": "~1.0.2" } @@ -34370,22 +34188,19 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", - "dev": true, - "peer": true + "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true + "dev": true }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "peer": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -34395,8 +34210,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "peer": true + "dev": true } } }, @@ -34411,7 +34225,6 @@ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, - "peer": true, "requires": { "tslib": "^1.8.1" }, @@ -34420,8 +34233,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "peer": true + "dev": true } } }, @@ -34583,7 +34395,8 @@ "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true + "dev": true, + "peer": true }, "unbox-primitive": { "version": "1.0.2", @@ -34770,6 +34583,7 @@ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", "devOptional": true, + "peer": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -34869,6 +34683,7 @@ "version": "5.33.0", "resolved": "https://registry.npmjs.org/vega/-/vega-5.33.0.tgz", "integrity": "sha512-jNAGa7TxLojOpMMMrKMXXBos4K6AaLJbCgGDOw1YEkLRjUkh12pcf65J2lMSdEHjcEK47XXjKiOUVZ8L+MniBA==", + "peer": true, "requires": { "vega-crossfilter": "~4.1.3", "vega-dataflow": "~5.7.7", @@ -35070,6 +34885,7 @@ "version": "5.23.0", "resolved": "https://registry.npmjs.org/vega-lite/-/vega-lite-5.23.0.tgz", "integrity": "sha512-l4J6+AWE3DIjvovEoHl2LdtCUkfm4zs8Xxx7INwZEAv+XVb6kR6vIN1gt3t2gN2gs/y4DYTs/RPoTeYAuEg6mA==", + "peer": true, "requires": { "json-stringify-pretty-compact": "~4.0.0", "tslib": "~2.8.1", @@ -35604,6 +35420,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "peer": true, "requires": { "async-limiter": "~1.0.0" } @@ -35709,6 +35526,7 @@ "version": "13.6.18", "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.18.tgz", "integrity": "sha512-GBTjO4QCmv2HFKFkYIJl7U77hIB1o22vSCSQD1Ge8ZxWbIbn8AltI4gyXbtL+g5/GJep67HCMq3Y5AmNwDSyEg==", + "peer": true, "requires": { "lib0": "^0.2.86" } From eba3bd19a027e83071e964ca4d04ca036b32b07e Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Tue, 28 Oct 2025 15:10:59 +0100 Subject: [PATCH 06/10] fix: correct upstream repository references to microsoft/vscode-jupyter-hub MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes incorrect references that were changed during the blanket find-and-replace operation: - Changed deepnote/vscode-deepnote-hub back to microsoft/vscode-jupyter-hub in jupyterUtils.ts and jupyterSelfCertsError.ts - These references point to upstream Microsoft repositories, not Deepnote repos - Preserves important context for debugging and understanding the codebase Addresses CodeRabbit review feedback. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/kernels/jupyter/jupyterUtils.ts | 2 +- src/platform/errors/jupyterSelfCertsError.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kernels/jupyter/jupyterUtils.ts b/src/kernels/jupyter/jupyterUtils.ts index 8953fe1a40..3576e4be92 100644 --- a/src/kernels/jupyter/jupyterUtils.ts +++ b/src/kernels/jupyter/jupyterUtils.ts @@ -99,7 +99,7 @@ export function createJupyterConnectionInfo( // When using built in Jupyter Server providers, & we have a token // Then we need to ensure the same token information is setup as a header for websockets as well. - // This same change had to be made for JuptyerHub extension, see https://github.com/deepnote/vscode-deepnote-hub/pull/65 + // This same change had to be made for JuptyerHub extension, see https://github.com/microsoft/vscode-jupyter-hub/pull/65 if ( token && jupyterHandle.extensionId === JVSC_EXTENSION_ID && diff --git a/src/platform/errors/jupyterSelfCertsError.ts b/src/platform/errors/jupyterSelfCertsError.ts index 87801734d5..f30ade6977 100644 --- a/src/platform/errors/jupyterSelfCertsError.ts +++ b/src/platform/errors/jupyterSelfCertsError.ts @@ -20,9 +20,9 @@ export class JupyterSelfCertsError extends BaseError { const message = (err as undefined | { message: string })?.message ?? ''; return ( message.indexOf('reason: self signed certificate') >= 0 || - // https://github.com/deepnote/vscode-deepnote-hub/issues/36#issuecomment-1854097594 + // https://github.com/microsoft/vscode-jupyter-hub/issues/36#issuecomment-1854097594 message.indexOf('reason: unable to verify the first certificate') >= 0 || - // https://github.com/deepnote/vscode-deepnote-hub/issues/36#issuecomment-1761234981 + // https://github.com/microsoft/vscode-jupyter-hub/issues/36#issuecomment-1761234981 message.indexOf('reason: unable to get issuer certificate') >= 0 || // https://github.com/microsoft/vscode-jupyter/issues/7558#issuecomment-993054968 message.indexOf("is not in the cert's list") >= 0 From b11afac95ce9d1a5ea0468150252b72b7b696803 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Tue, 28 Oct 2025 17:51:28 +0100 Subject: [PATCH 07/10] fix: update wiki URL comment to match canonical Microsoft target MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updates the inline comment in kernelDependencyService.node.ts (line 306) to point to the correct Microsoft vscode-jupyter wiki page instead of deepnote/vscode-deepnote. This ensures the comment matches the aka.ms shortlink (https://aka.ms/AAhi594) which resolves to the Microsoft wiki. The aka.ms link correctly opens the Microsoft documentation, so the comment should reference the same canonical source. Addresses CodeRabbit review feedback. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/kernels/kernelDependencyService.node.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kernels/kernelDependencyService.node.ts b/src/kernels/kernelDependencyService.node.ts index 0b77d7b3aa..2f5c6d31f5 100644 --- a/src/kernels/kernelDependencyService.node.ts +++ b/src/kernels/kernelDependencyService.node.ts @@ -303,7 +303,7 @@ export class KernelDependencyService implements IKernelDependencyService { }); // Link to our wiki page on jupyter kernels + ipykernel - // https://github.com/deepnote/vscode-deepnote/wiki/Jupyter-Kernels-and-the-Jupyter-Extension#python-extension-and-ipykernel + // https://github.com/microsoft/vscode-jupyter/wiki/Jupyter-Kernels-and-the-Jupyter-Extension#python-extension-and-ipykernel void env.openExternal(Uri.parse('https://aka.ms/AAhi594')); } // "More Info" isn't a full valid response here, so reprompt after showing it From 3ef5f53494959b47dc9cc3edbf27e8e5fafb62a5 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Tue, 28 Oct 2025 17:56:12 +0100 Subject: [PATCH 08/10] docs: add note about closed upstream issue in test skip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updates test skip comment in api.jupyterProvider.vscode.test.ts to note that the upstream issue #14338 was closed in December 2023. The skip may no longer be necessary but requires testing in a conda environment to confirm before removal. The issue was related to a temporary Jupyter Notebook/Traitlets compatibility problem that has since been resolved upstream. Reference: https://github.com/microsoft/vscode-jupyter/issues/14338 Addresses CodeRabbit review feedback. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../standalone/api/unstable/api.jupyterProvider.vscode.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts b/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts index febaf2afa6..1792d57041 100644 --- a/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts +++ b/src/test/standalone/api/unstable/api.jupyterProvider.vscode.test.ts @@ -45,6 +45,7 @@ suite('Jupyter Provider Tests', function () { } if (IS_CONDA_TEST()) { // Due to upstream issue documented here https://github.com/microsoft/vscode-jupyter/issues/14338 + // Note: This issue was closed in Dec 2023. This skip may no longer be necessary and should be tested. return this.skip(); } this.timeout(120_000); From 86e32ae4f7b71499a09ae1e2adb09eef7187cee2 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Tue, 28 Oct 2025 18:08:24 +0100 Subject: [PATCH 09/10] last fixes --- CONTRIBUTING.md | 19 ++++++++++--------- pythonFiles/aggregateTestResults.py | 2 +- .../controllers/vscodeNotebookController.ts | 2 +- .../debugger/debuggingManagerBase.ts | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 94469181ec..d99a8ca52a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,16 +19,16 @@ 4. Windows, macOS, or Linux 5. [Visual Studio Code](https://code.visualstudio.com/) 6. The following VS Code extensions: - - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - - [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) + - [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) + - [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) ### Setup ```shell git clone https://github.com/deepnote/vscode-deepnote -cd vscode-jupyter +cd vscode-deepnote ``` @@ -47,6 +47,7 @@ Then install all the extensions listed under "Workspace Recommendations". 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 @@ -178,8 +179,8 @@ you can do this by setting environment variables. The same variables work when running from the command line or launching from within VSCode, though the mechanism used to specify them changes a little. -- Setting `CI_PYTHON_PATH` lets you change the version of python the tests are executed with -- Setting `VSC_JUPYTER_CI_TEST_GREP` lets you filter the tests by name +- Setting `CI_PYTHON_PATH` lets you change the version of python the tests are executed with +- Setting `VSC_JUPYTER_CI_TEST_GREP` lets you filter the tests by name _`CI_PYTHON_PATH`_ @@ -239,8 +240,8 @@ VSC_JUPYTER_CI_TEST_GREP=Sorting npm run testVSCode The extension has a number of scripts in ./pythonFiles. Tests for these scripts are found in ./pythonFiles/tests. To run those tests: -- `python2.7 pythonFiles/tests/run_all.py` -- `python3 -m pythonFiles.tests` +- `python2.7 pythonFiles/tests/run_all.py` +- `python3 -m pythonFiles.tests` By default, functional tests are included. To exclude them: diff --git a/pythonFiles/aggregateTestResults.py b/pythonFiles/aggregateTestResults.py index 3dd2feedd8..47ec31feb1 100644 --- a/pythonFiles/aggregateTestResults.py +++ b/pythonFiles/aggregateTestResults.py @@ -14,7 +14,7 @@ # %% def getRuns(createdDate): runsResponse = requests.get( - "https://api.github.com/repos/deepnote/vscode-deepnote/actions/workflows/build-test.yml/runs", + "https://api.github.com/repos/deepnote/vscode-deepnote/actions/workflows/ci.yml/runs" params={"created": createdDate, "branch": "main"}, headers={ "Accept": "application/vnd.github+json", diff --git a/src/notebooks/controllers/vscodeNotebookController.ts b/src/notebooks/controllers/vscodeNotebookController.ts index 44f9676f15..4bae4114f2 100644 --- a/src/notebooks/controllers/vscodeNotebookController.ts +++ b/src/notebooks/controllers/vscodeNotebookController.ts @@ -367,7 +367,7 @@ export class VSCodeNotebookController implements Disposable, IVSCodeNotebookCont } // Found on CI that sometimes VS Code calls this with old deleted cells. - // See here https://github.com/deepnote/vscode-deepnote/runs/5581627878?check_suite_focus=true + // See here https://github.com/microsoft/vscode-jupyter/runs/5581627878?check_suite_focus=true cells = cells.filter((cell) => { if (cell.index < 0) { logger.warn( diff --git a/src/notebooks/debugger/debuggingManagerBase.ts b/src/notebooks/debugger/debuggingManagerBase.ts index b07d0d1f6f..e337a77fb3 100644 --- a/src/notebooks/debugger/debuggingManagerBase.ts +++ b/src/notebooks/debugger/debuggingManagerBase.ts @@ -237,7 +237,7 @@ export abstract class DebuggingManagerBase implements IDisposable, IDebuggingMan sendTelemetryEvent(DebuggingTelemetry.clickedOnSetup); void env.openExternal( Uri.parse( - 'https://github.com/deepnote/vscode-deepnote/wiki/Setting-Up-Run-by-Line-and-Debugging-for-Notebooks' + 'https://github.com/microsoft/vscode-jupyter/wiki/Setting-Up-Run-by-Line-and-Debugging-for-Notebooks' ) ); } else { From 111aa840ffd7b7a8422b30f0c52f277100df5481 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Tue, 28 Oct 2025 18:13:21 +0100 Subject: [PATCH 10/10] update the badge. --- CONTRIBUTING.md | 2 +- pythonFiles/aggregateTestResults.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d99a8ca52a..f7ea61f258 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ | `main` branch | | ------------- | -## | ![Main Build](https://github.com/deepnote/vscode-deepnote/actions/workflows/build-test.yml/badge.svg?branch=main) +## | ![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] diff --git a/pythonFiles/aggregateTestResults.py b/pythonFiles/aggregateTestResults.py index 47ec31feb1..24d0b26092 100644 --- a/pythonFiles/aggregateTestResults.py +++ b/pythonFiles/aggregateTestResults.py @@ -14,7 +14,7 @@ # %% def getRuns(createdDate): runsResponse = requests.get( - "https://api.github.com/repos/deepnote/vscode-deepnote/actions/workflows/ci.yml/runs" + "https://api.github.com/repos/deepnote/vscode-deepnote/actions/workflows/ci.yml/runs", params={"created": createdDate, "branch": "main"}, headers={ "Accept": "application/vnd.github+json",