src/goInstallTools: pin dlv-dap version @ 89ed5a0b
Building from master is too risky.
Eventually, we want to allow users to choose the version to install
or allow Nightly/Preview mode users to install from the master.
But that's not included in this CL.
Fixes golang/vscode-go#1661
Change-Id: Ib3d6a4b63b1084b30bc8a24e69453395e622810a
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/339449
Trust: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Suzy Mueller <suzmue@golang.org>
diff --git a/src/goInstallTools.ts b/src/goInstallTools.ts
index e27b16b..bc8dead 100644
--- a/src/goInstallTools.ts
+++ b/src/goInstallTools.ts
@@ -161,7 +161,6 @@
const toInstall: Promise<{ tool: Tool; reason: string }>[] = [];
for (const tool of missing) {
const modulesOffForTool = modulesOff;
-
const reason = installTool(tool, goVersion, envForTools, !modulesOffForTool);
toInstall.push(Promise.resolve({ tool, reason: await reason }));
}
diff --git a/src/goToolsInformation.ts b/src/goToolsInformation.ts
index 90c8356..cdb63d5 100644
--- a/src/goToolsInformation.ts
+++ b/src/goToolsInformation.ts
@@ -213,7 +213,8 @@
modulePath: 'github.com/go-delve/delve',
replacedByGopls: false,
isImportant: true,
- description: 'Go debugger (Delve)'
+ description: 'Go debugger (Delve)',
+ minimumGoVersion: semver.coerce('1.12') // dlv requires 1.12+ for build
},
'dlv-dap': {
name: 'dlv-dap',
@@ -221,9 +222,9 @@
modulePath: 'github.com/go-delve/delve',
replacedByGopls: false,
isImportant: true,
- description: 'Go debugger (Delve built for DAP experiment)',
- defaultVersion: 'master', // Always build from the master.
- minimumGoVersion: semver.coerce('1.14'), // last 3 versions per delve policy
+ description: 'Go debugger & debug adapter (Delve DAP)',
+ defaultVersion: 'v1.7.1-0.20210729173401-89ed5a0b1972', // pinned version
+ minimumGoVersion: semver.coerce('1.12'), // dlv requires 1.12+ for build
latestVersion: semver.parse('v1.7.1-0.20210729173401-89ed5a0b1972'),
latestVersionTimestamp: moment('2021-07-29', 'YYYY-MM-DD')
},
diff --git a/test/integration/install.test.ts b/test/integration/install.test.ts
index c4875f5..00eaef3 100644
--- a/test/integration/install.test.ts
+++ b/test/integration/install.test.ts
@@ -160,7 +160,7 @@
{ name: 'guru', versions: ['v1.0.0'], wantVersion: 'v1.0.0' },
{
name: 'dlv-dap',
- versions: ['v1.0.0', 'master'],
+ versions: ['v1.0.0', getTool('dlv-dap').defaultVersion!],
wantVersion: 'v' + getTool('dlv-dap').latestVersion!.toString()
}
],
@@ -175,7 +175,7 @@
{ name: 'guru', versions: ['v1.0.0'], wantVersion: 'v1.0.0' },
{
name: 'dlv-dap',
- versions: ['v1.0.0', 'master'],
+ versions: ['v1.0.0', getTool('dlv-dap').defaultVersion!],
wantVersion: 'v' + getTool('dlv-dap').latestVersion!.toString()
}
],
diff --git a/tools/allTools.ts.in b/tools/allTools.ts.in
index 33d46b7..ee85474 100644
--- a/tools/allTools.ts.in
+++ b/tools/allTools.ts.in
@@ -211,17 +211,18 @@
modulePath: 'github.com/go-delve/delve',
replacedByGopls: false,
isImportant: true,
- description: 'Go debugger (Delve)'
+ description: 'Go debugger (Delve)',
+ minimumGoVersion: semver.coerce('1.12') // dlv requires 1.12+ for build
},
'dlv-dap': {
name: 'dlv-dap',
importPath: 'github.com/go-delve/delve/cmd/dlv',
modulePath: 'github.com/go-delve/delve',
replacedByGopls: false,
- isImportant: false,
- description: 'Go debugger (Delve built for DAP experiment)',
- defaultVersion: 'master', // Always build from the master.
- minimumGoVersion: semver.coerce('1.14'), // last 3 versions per delve policy
+ isImportant: true,
+ description: 'Go debugger & debug adapter (Delve DAP)',
+ defaultVersion: '%s', // pinned version
+ minimumGoVersion: semver.coerce('1.12'), // dlv requires 1.12+ for build
latestVersion: semver.parse('%s'),
latestVersionTimestamp: moment('%s', 'YYYY-MM-DD')
},
diff --git a/tools/generate.go b/tools/generate.go
index 4f0948e..a3f64f7 100644
--- a/tools/generate.go
+++ b/tools/generate.go
@@ -269,7 +269,7 @@
}
// TODO(suzmue): change input to json and avoid magic string printing.
- toolsString := fmt.Sprintf(string(data), goplsVersion.Version, goplsVersion.Time[:len("YYYY-MM-DD")], goplsVersionPre.Version, goplsVersionPre.Time[:len("YYYY-MM-DD")], dlvVersion.Version, dlvVersion.Time[:len("YYYY-MM-DD")])
+ toolsString := fmt.Sprintf(string(data), goplsVersion.Version, goplsVersion.Time[:len("YYYY-MM-DD")], goplsVersionPre.Version, goplsVersionPre.Time[:len("YYYY-MM-DD")], dlvVersion.Version, dlvVersion.Version, dlvVersion.Time[:len("YYYY-MM-DD")])
// Write tools section.
b.WriteString(toolsString)