From 944d4e73348ae74b6210ecbc066b8676d536f3a7 Mon Sep 17 00:00:00 2001 From: Rob Findley Date: Tue, 14 Nov 2023 12:50:27 -0500 Subject: [PATCH] gopls: upgrade x/telemetry and account for new mode logic Upgrade x/telemetry to pick up the new (on|off|local) mode logic. In this new schema, when the mode is explicitly "off" we should assume that the user doesn't want to be prompted about enabling telemetry. Update our internal logic and tests accordingly. For golang/go#63832 Change-Id: I7b9c0840c48c680110ffa84c59bce2d5249942dd Reviewed-on: https://go-review.googlesource.com/c/tools/+/542317 Reviewed-by: Peter Weinberger LUCI-TryBot-Result: Go LUCI --- gopls/go.mod | 4 ++-- gopls/go.sum | 4 ++-- gopls/internal/lsp/prompt.go | 10 +++++----- gopls/internal/regtest/misc/prompt_test.go | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gopls/go.mod b/gopls/go.mod index 093fc01be7c..1ddcfbc6171 100644 --- a/gopls/go.mod +++ b/gopls/go.mod @@ -9,8 +9,7 @@ require ( github.com/sergi/go-diff v1.1.0 golang.org/x/mod v0.14.0 golang.org/x/sync v0.5.0 - golang.org/x/sys v0.14.0 - golang.org/x/telemetry v0.0.0-20231011160506-788d5629a052 + golang.org/x/telemetry v0.0.0-20231114163143-69313e640400 golang.org/x/text v0.14.0 golang.org/x/tools v0.13.1-0.20230920233436-f9b8da7b22be golang.org/x/vuln v1.0.1 @@ -24,6 +23,7 @@ require ( github.com/BurntSushi/toml v1.2.1 // indirect github.com/google/safehtml v0.1.0 // indirect golang.org/x/exp/typeparams v0.0.0-20221212164502-fae10dda9338 // indirect + golang.org/x/sys v0.14.0 // indirect ) diff --git a/gopls/go.sum b/gopls/go.sum index cdae287f16f..ed52210750b 100644 --- a/gopls/go.sum +++ b/gopls/go.sum @@ -44,8 +44,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/telemetry v0.0.0-20231011160506-788d5629a052 h1:1baVNneD/IRxmu8JQdBuki78zUqBtZxq8smZXQj0X2Y= -golang.org/x/telemetry v0.0.0-20231011160506-788d5629a052/go.mod h1:6p4ScoNeC2dhpQ1nSSMmkZ7mEj5JQUSCyc0uExBp5T4= +golang.org/x/telemetry v0.0.0-20231114163143-69313e640400 h1:brbkEFfGwNGAEkykUOcryE/JiHUMMJouzE0fWWmz/QU= +golang.org/x/telemetry v0.0.0-20231114163143-69313e640400/go.mod h1:P6hMdmAcoG7FyATwqSr6R/U0n7yeXNP/QXeRlxb1szE= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/gopls/internal/lsp/prompt.go b/gopls/internal/lsp/prompt.go index 0219b72ff56..97ec6e4c82c 100644 --- a/gopls/internal/lsp/prompt.go +++ b/gopls/internal/lsp/prompt.go @@ -62,7 +62,7 @@ func (s *server) telemetryMode() string { if data, err := os.ReadFile(fake); err == nil { return string(data) } - return "off" + return "local" } return telemetry.Mode() } @@ -95,8 +95,8 @@ func (s *server) maybePromptForTelemetry(ctx context.Context, enabled bool) { return // prompt is disabled } - if s.telemetryMode() == "on" { - // Telemetry is already on -- nothing to ask about. + if s.telemetryMode() == "on" || s.telemetryMode() == "off" { + // Telemetry is already on or explicitly off -- nothing to ask about. return } @@ -262,9 +262,9 @@ func telemetryOnMessage(linkify bool) string { To disable telemetry uploading, run %s. ` - var runCmd = "`go run golang.org/x/telemetry/cmd/gotelemetry@latest off`" + var runCmd = "`go run golang.org/x/telemetry/cmd/gotelemetry@latest local`" if linkify { - runCmd = "[gotelemetry off](https://golang.org/x/telemetry/cmd/gotelemetry)" + runCmd = "[gotelemetry local](https://golang.org/x/telemetry/cmd/gotelemetry)" } return fmt.Sprintf(format, runCmd) } diff --git a/gopls/internal/regtest/misc/prompt_test.go b/gopls/internal/regtest/misc/prompt_test.go index 7a262ad934e..eba87770a8b 100644 --- a/gopls/internal/regtest/misc/prompt_test.go +++ b/gopls/internal/regtest/misc/prompt_test.go @@ -33,7 +33,7 @@ func main() { for _, enabled := range []bool{true, false} { t.Run(fmt.Sprintf("telemetryPrompt=%v", enabled), func(t *testing.T) { - for _, initialMode := range []string{"", "off", "on"} { + for _, initialMode := range []string{"", "local", "off", "on"} { t.Run(fmt.Sprintf("initial_mode=%s", initialMode), func(t *testing.T) { modeFile := filepath.Join(t.TempDir(), "mode") if initialMode != "" { @@ -51,7 +51,7 @@ func main() { "telemetryPrompt": enabled, }, ).Run(t, src, func(t *testing.T, env *Env) { - wantPrompt := enabled && (initialMode == "" || initialMode == "off") + wantPrompt := enabled && (initialMode == "" || initialMode == "local") expectation := ShownMessageRequest(".*Would you like to enable Go telemetry?") if !wantPrompt { expectation = Not(expectation)