From 9608770f539d3a01c722818b779d4fcbf28c76ed Mon Sep 17 00:00:00 2001 From: Kartik Raj Date: Thu, 3 Jun 2021 18:19:32 -0700 Subject: [PATCH 1/2] Ensure configuration service is ready for use before using it --- src/client/common/configSettings.ts | 2 +- src/client/common/types.ts | 1 + src/client/extensionActivation.ts | 2 ++ .../configSettings/configSettings.pythonPath.unit.test.ts | 2 +- src/test/common/configSettings/configSettings.unit.test.ts | 2 +- 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/client/common/configSettings.ts b/src/client/common/configSettings.ts index dd3f628a2d4c..e8602be7ded8 100644 --- a/src/client/common/configSettings.ts +++ b/src/client/common/configSettings.ts @@ -619,7 +619,7 @@ export class PythonSettings implements IPythonSettings { } } - protected initialize(): void { + public initialize(): void { const onDidChange = () => { const currentConfig = this.workspace.getConfiguration('python', this.workspaceRoot); this.update(currentConfig); diff --git a/src/client/common/types.ts b/src/client/common/types.ts index c194d95a7e8f..5dc17b38208c 100644 --- a/src/client/common/types.ts +++ b/src/client/common/types.ts @@ -205,6 +205,7 @@ export interface IPythonSettings { readonly logging: ILoggingSettings; readonly useIsolation: boolean; readonly tensorBoard: ITensorBoardSettings | undefined; + initialize(): void; } export interface ITensorBoardSettings { diff --git a/src/client/extensionActivation.ts b/src/client/extensionActivation.ts index 4d7e36cd7062..7a2c1fede396 100644 --- a/src/client/extensionActivation.ts +++ b/src/client/extensionActivation.ts @@ -175,6 +175,8 @@ async function activateLegacy(ext: ExtensionState): Promise { const manager = serviceContainer.get(IExtensionActivationManager); context.subscriptions.push(manager); + // Settings are dependent on Experiment service, so we need to initialize it after experiments are activated. + serviceContainer.get(IConfigurationService).getSettings().initialize(); await interpreterManager .refresh(workspaceService.hasWorkspaceFolders ? workspaceService.workspaceFolders![0].uri : undefined) .catch((ex) => traceError('Python Extension: interpreterManager.refresh', ex)); diff --git a/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts b/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts index 314282d62e0c..cf54ff32f9ae 100644 --- a/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts +++ b/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts @@ -27,7 +27,7 @@ suite('Python Settings - pythonPath', () => { protected getPythonExecutable(pythonPath: string) { return pythonPath; } - protected initialize() { + public initialize() { noop(); } } diff --git a/src/test/common/configSettings/configSettings.unit.test.ts b/src/test/common/configSettings/configSettings.unit.test.ts index b1cd6e47cc60..c6eee0771ac8 100644 --- a/src/test/common/configSettings/configSettings.unit.test.ts +++ b/src/test/common/configSettings/configSettings.unit.test.ts @@ -33,7 +33,7 @@ suite('Python Settings', async () => { public update(pythonSettings: WorkspaceConfiguration) { return super.update(pythonSettings); } - protected initialize() { + public initialize() { noop(); } } From dacc570d1a79bcd2587687f6ff2f2ac19596d63d Mon Sep 17 00:00:00 2001 From: Kartik Raj Date: Thu, 3 Jun 2021 18:30:27 -0700 Subject: [PATCH 2/2] Add news entry --- news/2 Fixes/16291.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 news/2 Fixes/16291.md diff --git a/news/2 Fixes/16291.md b/news/2 Fixes/16291.md new file mode 100644 index 000000000000..717c9eca09a9 --- /dev/null +++ b/news/2 Fixes/16291.md @@ -0,0 +1 @@ +Ensure selected interpreter doesn't change when the extension is starting up and in experiment.