Skip to content

Commit 7b7c900

Browse files
authored
Recovery release for fixing ipywidgets (#16018)
* Restore widget files storage dir to extension dir (#16012) * Restore widget files storage dir to extension dir * update comments * Fix tests * Fix tests * Bump version
1 parent 2a11eb0 commit 7b7c900

File tree

5 files changed

+12
-12
lines changed

5 files changed

+12
-12
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "jupyter",
33
"displayName": "Jupyter",
4-
"version": "2024.8.0",
4+
"version": "2024.8.1",
55
"description": "Jupyter notebook support, interactive programming and computing that supports Intellisense, debugging and more.",
66
"publisher": "ms-toolsai",
77
"author": {

src/notebooks/controllers/ipywidgets/scriptSourceProvider/localIPyWidgetScriptManager.node.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import { BaseIPyWidgetScriptManager } from './baseIPyWidgetScriptManager';
1313
import { IIPyWidgetScriptManager, INbExtensionsPathProvider } from '../types';
1414
import { JupyterPaths } from '../../../../kernels/raw/finder/jupyterPaths.node';
1515
import { logger } from '../../../../platform/logging';
16-
import { getExtensionTempDir } from '../../../../platform/common/temp';
1716

1817
type KernelConnectionId = string;
1918
/**
@@ -75,7 +74,7 @@ export class LocalIPyWidgetScriptManager extends BaseIPyWidgetScriptManager impl
7574
return;
7675
}
7776
const kernelHash = await getTelemetrySafeHashedString(this.kernel.kernelConnectionMetadata.id);
78-
const baseUrl = Uri.joinPath(getExtensionTempDir(this.context), 'scripts', kernelHash, 'jupyter');
77+
const baseUrl = Uri.joinPath(this.context.extensionUri, 'temp', 'scripts', kernelHash, 'jupyter');
7978

8079
const targetNbExtensions = Uri.joinPath(baseUrl, 'nbextensions');
8180
const [jupyterDataDirectories] = await Promise.all([

src/platform/webviews/webviewPanelProvider.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { Uri, ViewColumn, WebviewOptions, WebviewPanel as vscodeWebviewPanel, wi
66
import { IWebviewPanel, IWebviewPanelOptions, IWebviewPanelProvider } from '../common/application/types';
77
import { IFileSystem } from '../common/platform/types';
88
import { IDisposableRegistry, IExtensionContext } from '../common/types';
9+
import * as path from '../vscode-path/path';
910
import { Webview } from './webview';
10-
import { getExtensionTempDir } from '../common/temp';
1111

1212
class WebviewPanel extends Webview implements IWebviewPanel {
1313
private get panel(): vscodeWebviewPanel | undefined {
@@ -120,9 +120,9 @@ export class WebviewPanelProvider implements IWebviewPanelProvider {
120120

121121
// eslint-disable-next-line @typescript-eslint/no-explicit-any
122122
public async create(options: IWebviewPanelOptions): Promise<IWebviewPanel> {
123-
// Allow loading resources from the `<extension global storage folder>/<version>` folder when in webiviews.
123+
// Allow loading resources from the `<extension folder>/temp` folder when in webiviews.
124124
// Used by widgets to place files that are not otherwise accessible.
125-
const additionalRootPaths = [getExtensionTempDir(this.context)];
125+
const additionalRootPaths = [Uri.file(path.join(this.context.extensionPath, 'temp'))];
126126
if (Array.isArray(options.additionalPaths)) {
127127
additionalRootPaths.push(...options.additionalPaths);
128128
}

src/test/datascience/ipywidgets/ipyWidgetScriptManager.vscode.common.test.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import { createActiveInterpreterController } from '../notebook/helpers';
3131
import { IInterpreterService } from '../../../platform/interpreter/contracts';
3232
import { IControllerRegistration } from '../../../notebooks/controllers/types';
3333
import { HttpClient } from '../../../platform/common/net/httpClient';
34-
import { getExtensionTempDir } from '../../../platform/common/temp';
3534

3635
suite('IPyWidget Script Manager @widgets', function () {
3736
this.timeout(120_000);
@@ -121,7 +120,8 @@ suite('IPyWidget Script Manager @widgets', function () {
121120
assert.fail('We should have started a Python kernel');
122121
} else {
123122
const expectedDir = Uri.joinPath(
124-
getExtensionTempDir(context),
123+
context.extensionUri,
124+
'temp',
125125
'scripts',
126126
await getTelemetrySafeHashedString(kernel.kernelConnectionMetadata.id),
127127
'jupyter'
@@ -140,7 +140,8 @@ suite('IPyWidget Script Manager @widgets', function () {
140140
return this.skip();
141141
}
142142
const expectedDir = Uri.joinPath(
143-
getExtensionTempDir(context),
143+
context.extensionUri,
144+
'temp',
144145
'scripts',
145146
await getTelemetrySafeHashedString(kernel.kernelConnectionMetadata.id),
146147
'jupyter'
@@ -156,7 +157,7 @@ suite('IPyWidget Script Manager @widgets', function () {
156157
// await del([nbExtensionsFolder]);
157158
const fsNode = api.serviceContainer.get<IFileSystemNode>(IFileSystemNode);
158159
// eslint-disable-next-line local-rules/dont-use-fspath
159-
await fsNode.delete(Uri.file(nbExtensionsFolder.fsPath));
160+
await fsNode.delete(nbExtensionsFolder);
160161
assert.isFalse(await fs.exists(nbExtensionsFolder), `Directory '${nbExtensionsFolder}'does not exist`);
161162

162163
await kernel.restart();

0 commit comments

Comments
 (0)