diff --git a/CHANGELOG.md b/CHANGELOG.md index 617edb64add..31fdad55c39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,27 @@ # Changelog -## 2021.4.0 (31 March 2021) +## 2021.5.1 (12 April 2021) + +### Code Health + +1. Check the responses of prompts for installation of missing packages such as `IPyKernel`. + ([#5432](https://github.com/Microsoft/vscode-jupyter/issues/5432)) + +### Fixes + +1. Fix for 'Export as Python Script' option not appearing. + ([#5403](https://github.com/Microsoft/vscode-jupyter/issues/5403)) +1. Delete extension context secrets if we get an error when getting them. + Small fixes on error handling. + ([#5419](https://github.com/Microsoft/vscode-jupyter/issues/5419)) +1. Enable correct plot background for Native Notebooks. + ([#5353](https://github.com/Microsoft/vscode-jupyter/issues/5353)) +1. Stop asking users to install ipykernel on autostart, only do it when a cell is ran. + ([#5368](https://github.com/microsoft/vscode-jupyter/issues/5368)) +1. Invalidate cached interpreters when Python extension active interpreter changes. + ([#5470](https://github.com/microsoft/vscode-jupyter/issues/5470)) + +## 2021.5.0 (31 March 2021) ### Enhancements diff --git a/src/client/common/installer/productInstaller.ts b/src/client/common/installer/productInstaller.ts index 4dbc8157530..7f62b866681 100644 --- a/src/client/common/installer/productInstaller.ts +++ b/src/client/common/installer/productInstaller.ts @@ -150,6 +150,18 @@ export class DataScienceInstaller extends BaseInstaller { localize.Common.bannerLabelNo() ); + const action = + item === localize.Common.bannerLabelYes() + ? 'install' + : item === localize.Common.bannerLabelNo() + ? 'donotinstall' + : 'dismissed'; + + sendTelemetryEvent(Telemetry.PythonModuleInstal, undefined, { + action, + moduleName: productName + }); + if (item === localize.Common.bannerLabelYes()) { const stopWatch = new StopWatch(); try { diff --git a/src/client/telemetry/index.ts b/src/client/telemetry/index.ts index 10ee4e8a69f..95b41603f5c 100644 --- a/src/client/telemetry/index.ts +++ b/src/client/telemetry/index.ts @@ -735,7 +735,15 @@ export interface IEventNamePropertyMapping { [Telemetry.UserDidNotInstallPandas]: never | undefined; [Telemetry.PythonModuleInstal]: { moduleName: string; - action: 'displayed' | 'installed' | 'ignored' | 'disabled' | 'failed'; + action: + | 'displayed' // Install prompt displayed. + | 'installed' // Installation disabled (this is what python extension returns). + | 'ignored' // Installation disabled (this is what python extension returns). + | 'disabled' // Installation disabled (this is what python extension returns). + | 'failed' // Installation disabled (this is what python extension returns). + | 'install' // User chose install from prompt. + | 'donotinstall' // User chose not to install from prompt. + | 'dismissed'; // User chose to dismiss the prompt. }; /** * This telemetry tracks the display of the Picker for Jupyter Remote servers. diff --git a/src/test/datascience/jupyter/kernels/installationPrompts.vscode.test.ts b/src/test/datascience/jupyter/kernels/installationPrompts.vscode.test.ts index ad6586dd587..17f46ae2af8 100644 --- a/src/test/datascience/jupyter/kernels/installationPrompts.vscode.test.ts +++ b/src/test/datascience/jupyter/kernels/installationPrompts.vscode.test.ts @@ -114,6 +114,9 @@ suite('DataScience Install IPyKernel (slow) (install)', function () { [true, false].forEach((which, i) => { // Use index on test name as it messes up regex matching test(`Ensure prompt is displayed when ipykernel module is not found and it gets installed ${i}`, async function () { + if (!(await canRunNotebookTests()) || IS_REMOTE_NATIVE_TEST) { + return this.skip(); + } // Confirm message is displayed & we click 'Install` button. const prompt = await hijackPrompt( 'showErrorMessage',