diff --git a/CHANGELOG.md b/CHANGELOG.md index e7456547ad3f..e10f3bf0ac03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,25 @@ # Changelog +## 2019.3.2 (2 April 2019) + +### Fixes + +1. Fix regression preventing the expansion of variables in the watch window and the debug console. + ([#5035](https://github.com/Microsoft/vscode-python/issues/5035)) +1. Display survey banner (again) for Language Server when using current Lanaguage Server. + ([#5064](https://github.com/Microsoft/vscode-python/issues/5064)) +1. Update ptvsd to [4.2.6](https://github.com/Microsoft/ptvsd/releases/tag/v4.2.6). + ([#5083](https://github.com/Microsoft/vscode-python/issues/5083)) + * Fix issue with expanding variables in watch window and hover. + * Fix issue with launching a sub-module. + +### Code Health + +1. Capture telemetry to track which installer was used when installing packages via the extension. + ([#5063](https://github.com/Microsoft/vscode-python/issues/5063)) + + ## 2019.3.1 (28 March 2019) ### Enhancements diff --git a/requirements.txt b/requirements.txt index 22819f5005d7..05aca0339e38 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ jedi==0.12.0 parso==0.2.1 isort==4.3.4 -ptvsd==4.2.5 +ptvsd==4.2.6 diff --git a/src/client/activation/languageServer/analysisOptions.ts b/src/client/activation/languageServer/analysisOptions.ts index 809f2602c819..2ef1cd4354fe 100644 --- a/src/client/activation/languageServer/analysisOptions.ts +++ b/src/client/activation/languageServer/analysisOptions.ts @@ -10,7 +10,7 @@ import { LanguageClientOptions, ProvideCompletionItemsSignature, RevealOutputCha import { IWorkspaceService } from '../../common/application/types'; import { isTestExecution, PYTHON_LANGUAGE, STANDARD_OUTPUT_CHANNEL } from '../../common/constants'; import { traceDecorators, traceError } from '../../common/logger'; -import { BANNER_NAME_PROPOSE_LS, IConfigurationService, IExtensionContext, IOutputChannel, IPathUtils, IPythonExtensionBanner, Resource } from '../../common/types'; +import { BANNER_NAME_LS_SURVEY, IConfigurationService, IExtensionContext, IOutputChannel, IPathUtils, IPythonExtensionBanner, Resource } from '../../common/types'; import { debounceSync } from '../../common/utils/decorators'; import { IEnvironmentVariablesProvider } from '../../common/variables/types'; import { IInterpreterService } from '../../interpreter/contracts'; @@ -29,7 +29,7 @@ export class LanguageServerAnalysisOptions implements ILanguageServerAnalysisOpt @inject(IEnvironmentVariablesProvider) private readonly envVarsProvider: IEnvironmentVariablesProvider, @inject(IConfigurationService) private readonly configuration: IConfigurationService, @inject(IWorkspaceService) private readonly workspace: IWorkspaceService, - @inject(IPythonExtensionBanner) @named(BANNER_NAME_PROPOSE_LS) private readonly surveyBanner: IPythonExtensionBanner, + @inject(IPythonExtensionBanner) @named(BANNER_NAME_LS_SURVEY) private readonly surveyBanner: IPythonExtensionBanner, @inject(IInterpreterService) private readonly interpreterService: IInterpreterService, @inject(IOutputChannel) @named(STANDARD_OUTPUT_CHANNEL) private readonly output: OutputChannel, @inject(IPathUtils) private readonly pathUtils: IPathUtils, diff --git a/src/client/common/installer/moduleInstaller.ts b/src/client/common/installer/moduleInstaller.ts index c35546416fc1..eab4e592486b 100644 --- a/src/client/common/installer/moduleInstaller.ts +++ b/src/client/common/installer/moduleInstaller.ts @@ -7,6 +7,8 @@ import * as path from 'path'; import * as vscode from 'vscode'; import { IInterpreterService, InterpreterType } from '../../interpreter/contracts'; import { IServiceContainer } from '../../ioc/types'; +import { sendTelemetryEvent } from '../../telemetry'; +import { EventName } from '../../telemetry/constants'; import { STANDARD_OUTPUT_CHANNEL } from '../constants'; import { ITerminalServiceFactory } from '../terminal/types'; import { ExecutionInfo, IConfigurationService, IOutputChannel } from '../types'; @@ -14,8 +16,10 @@ import { noop } from '../utils/misc'; @injectable() export abstract class ModuleInstaller { + public abstract get displayName(): string constructor(protected serviceContainer: IServiceContainer) { } public async installModule(name: string, resource?: vscode.Uri): Promise { + sendTelemetryEvent(EventName.PYTHON_INSTALL_PACKAGE, undefined, { installer: this.displayName }); const executionInfo = await this.getExecutionInfo(name, resource); const terminalService = this.serviceContainer.get(ITerminalServiceFactory).getTerminalService(resource); diff --git a/src/client/telemetry/constants.ts b/src/client/telemetry/constants.ts index 8acaa3d84ac9..118b579a0cf3 100644 --- a/src/client/telemetry/constants.ts +++ b/src/client/telemetry/constants.ts @@ -23,6 +23,7 @@ export enum EventName { REFACTOR_EXTRACT_FUNCTION = 'REFACTOR_EXTRACT_FUNCTION', REPL = 'REPL', PYTHON_INTERPRETER = 'PYTHON_INTERPRETER', + PYTHON_INSTALL_PACKAGE = 'PYTHON_INSTALL_PACKAGE', PYTHON_INTERPRETER_DISCOVERY = 'PYTHON_INTERPRETER_DISCOVERY', PYTHON_INTERPRETER_AUTO_SELECTION = 'PYTHON_INTERPRETER_AUTO_SELECTION', PYTHON_INTERPRETER_ACTIVATION_ENVIRONMENT_VARIABLES = 'PYTHON_INTERPRETER_ACTIVATION_ENVIRONMENT_VARIABLES', diff --git a/src/client/telemetry/index.ts b/src/client/telemetry/index.ts index 7dc09d727ccb..83c9541f68de 100644 --- a/src/client/telemetry/index.ts +++ b/src/client/telemetry/index.ts @@ -276,6 +276,7 @@ export interface IEventNamePropertyMapping { [EventName.KNOWN_IMPORT_FROM_FILE]: { import: string }; [EventName.KNOWN_IMPORT_FROM_EXECUTION]: { import: string }; [EventName.LINTER_NOT_INSTALLED_PROMPT]: LinterInstallPromptTelemetry; + [EventName.PYTHON_INSTALL_PACKAGE]: { installer: string }; [EventName.LINTING]: LintingTelemetry; [EventName.PLATFORM_INFO]: Platform; [EventName.PYTHON_INTERPRETER]: PythonInterpreterTelemetry;