-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Description
Summary
Context: vscgo is a binary that can be installed by vscode-go extension and collect telemetry from vscode-go extension. vscgo in written in go and vscode-go is written in typescript. There are some data collected by vscgo today but they are not being uploaded due to the missing configuration in x/telemetry config.json. (We can come back to those telemetry later because that is not the purpose of this proposal). The detailed architecture for vscgo can be found in golang/vscode-go#3121.
The goal of this proposal is help vscode-go developer understand the third-party tool usage and eventually deprecate third-party tools in favor of gopls built in functionalities. E.g. replace gotests binary with gopls.add_tests source code action. See golang/vscode-go#1652.
- Counter: vscode-go/tool/usage:{gotests, gomodifytags, goplay}
- Title: Tool Usage
- Description: Measure the tool usage in vscode-go.
- Program: github.com/golang/vscode-go/vscgo
- Versions: v0.47.{2,3,4}, v0.{48,49,50,51,52,53}.{0,1,2,3,4},
Explanation for version:
- VSCode-Go does not need to collect rc e.g. v0.47.0-rc.1 because rc extension need to be manually installed so not much data will be collected.
- VSCode-Go follow vscode marketplace recommendation. The odd number is prerelease version, the even number is release version. We could introduce the telemetry collection in v0.47.2 because it is a prerelease version but should not introduce the collection in v0.46.2 because it's a release version.
- Similar to gopls versions, collect the first 5 patch versions for every minor version starting from v0.48
Open question: gopls source code action only support adding test for a single function. gotests support adding test for the entire file (all function inside of a given file) and entire package. I wonder if this level of detail need to be collected or not.
cc @hyangah @golang/tools-team
Proposed Config Change
Will work on CL once we agree on the counter name and usage.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status