Skip to content

Commit 824673c

Browse files
committed
[release] prepare v0.40.0 release
aeae497 CHANGELOG.md: add planned release date 208fad7 test/runTest.ts: add missing space in error message 9a76f3b CHANGELOG.md: add information about debugging changes to CHANGELOG 1964a4e src/welcome,README: update welcome docs to discuss telemetry 4ea9b2d src/goToolsInformation: update 3rd party tools version 75fcc92 CHANGELOG.md: prepare for v0.40.0 release b9a28ab src/goVulncheck: recognize the vulncheck result format (gopls v0.14+) 9c57ee2 src/goToolsInformation: clean up the tools list 053cd93 src/goToolsInformation: delete legacy tools 324992b src/goDebugConfiguration: allow buildFlags passed in array ed3024f src/utils: move killProcess to test a829b31 src/debugAdapter/goDebug: fix type error 2232bfa src/avlTree: delete unused utilities 62eb6fe src/commands/toggleGCDetails: remove old command 'gc_details' eaef5b0 package.json: remove godoctor-based extract func/var commands 6b4ee4d src/goFillStruct: remove Go: Fill struct command bf75c9f tools/installtools: use the latest dlv a3d76a5 package.json: remove deprecated settings 5c1eda7 src/goModules: delete unused functions 340f78b src/language/legacy: delete legacy language feature providers e8b29bc src/goEnv: apply substituteEnv to go.toolsEnvVars c2bc62f src/goDocumentSymbols: call LSP document symbols feature directly ab8643c test/gopls/goTest: move text explorer tests to test/gopls dcf5ecc test/gopls/codelens: move codelense test to gopls-based test da12e36 package.json: delete ./out/ directory with npm run clean 8411f23 package.json: allow updating hideSystemGoroutines from stack context b28ad0f package.json: require VS Code 1.75 or newer 63d0c38 src/goMain: apply substituteEnv when reading go.goroot a42f097 src/goTools: use [email protected] for go1.19 7e2e5ad src/goTelemetry: ask gopls to prompt for telemetry opt-in 75f9d50 package.json: sync gopls settings ([email protected]) b9cfe62 package.json: update gopls settings to match 0.14 d9015c1 src/goInstallTools: require go1.16 or newer for tools installation b2303c5 package.json: sync settings with gopls v0.13 d5d7ff6 src/envutils.ts: substitute nested env vars in env files Change-Id: I35876653e142965fce0adae48a9fc250bf8160a7
2 parents a9db481 + aeae497 commit 824673c

File tree

97 files changed

+1521
-6690
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1521
-6690
lines changed

.github/workflows/release-nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
- name: Setup Go
3030
uses: actions/setup-go@v3
3131
with:
32-
go-version: '1.20'
32+
go-version: '1.21'
3333
check-latest: true
3434
cache: true
3535

.github/workflows/test-long-all.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
matrix:
1818
os: [ubuntu-latest, windows-latest, macos-latest]
1919
version: ['stable', 'insiders']
20-
go: ['1.17', '1.18', '1.19', '1.20']
20+
go: ['1.18', '1.19', '1.20', '1.21']
2121

2222
steps:
2323
- name: Clone repository

.github/workflows/test-long.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
matrix:
1717
os: [ubuntu-latest, windows-latest] # TODO: reenable macos-latest
1818
version: ['stable']
19-
go: ['1.17', '1.18', '1.19', '1.20']
19+
go: ['1.18', '1.19', '1.20', '1.21']
2020

2121
steps:
2222
- name: Clone repository

.github/workflows/test-smoke.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Setup Go
3131
uses: actions/setup-go@v3
3232
with:
33-
go-version: '1.20'
33+
go-version: '1.21'
3434
check-latest: true
3535
cache: true
3636

.github/workflows/wiki.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
- name: Setup Go
3636
uses: actions/setup-go@v3
3737
with:
38-
go-version: '1.20'
38+
go-version: '1.21'
3939
check-latest: true
4040
cache: true
4141
cache-dependency-path: '**/go.sum'

CHANGELOG.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,74 @@
1+
## v0.40.0 - 13 Nov, 2023
2+
3+
This extension utilizes [Go Telemetry](https://telemetry.go.dev/privacy) to gather insights
4+
about the performance and stability of the extension and the language server it employs.
5+
By default, Telemetry uploading is disabled, but starting from this version,
6+
a small number of users will be prompted to enable it. Users can enable telemetry uploading
7+
by either responding to the prompt or running the following command:
8+
9+
```
10+
go run golang.org/x/telemetry/cmd/gotelemetry@latest on
11+
```
12+
13+
Once uploading is enabled, the data will be sent to https://telemetry.go.dev
14+
on a weekly basis. You can find more information about this process at
15+
[https://telemetry.go.dev/privacy](https://telemetry.go.dev) and in the
16+
[gopls v0.14 release notes(https://github.com/golang/tools/releases/tag/gopls%2Fv0.14.0).
17+
18+
A comprehensive list of changes can be found in the complete
19+
[commit history](https://github.com/golang/vscode-go/compare/v0.40.0...v0.39.1).
20+
21+
### Changes
22+
23+
* In this release, we have removed legacy language feature providers that were supported
24+
by outdated tools. As a result, features such as code completion, navigation,
25+
documentation, diagnostics, and refactoring will only function
26+
when the language server (`gopls`) is enabled.
27+
([Issue 2799](https://github.com/golang/vscode-go/issues/2799))
28+
29+
* The "Go: Fill struct" command has been retired. The same functionality is provided
30+
as a [Code Action](https://code.visualstudio.com/docs/editor/refactoring#_code-actions-quick-fixes-and-refactorings)
31+
for refactoring. You can refer to the screenshot for details.
32+
([Issue 2107](https://github.com/golang/vscode-go/issues/2107)))
33+
34+
* The "Go: Extract to function" and "Go: Extract to variable" commands are no longer needed,
35+
as they have been replaced by Code Actions provided by gopls.
36+
([Issue 2862](https://github.com/golang/vscode-go/issues/2862))
37+
38+
* The "buildFlags" attribute for Go launch configuration now accepts a list of strings in
39+
addition to a string. If using delve at v1.22.2 or newer, this list is passed directly to
40+
delve. This should help with bugs related to parsing the string of buildFlags, such as in
41+
[Issue 1831](https://github.com/golang/vscode-go/issues/1831) and
42+
[Issue 1027](https://github.com/golang/vscode-go/issues/1027).
43+
([Issue 3009](https://github.com/golang/vscode-go/issues/3009))
44+
45+
* The "Go: Toggle Hide System Goroutines" command was added to make it easier to switch between
46+
showing / hiding the system goroutines in the callstack view. This command is also
47+
available in the callstack context menu. The default setting can also be updated by updating
48+
"hideSystemGoroutines" in either the launch.json or in the "go.delveConfig" setting.
49+
([Issue 1797](https://github.com/golang/vscode-go/issues/1797#issuecomment-1762145244))
50+
51+
### Fixes
52+
53+
* We have enhanced environment variable substitution. Environment variable references
54+
like `${env:VAR}` in the `go.toolsEnvVars` setting
55+
([Issue 2680](https://github.com/golang/vscode-go/issues/2680)) and the `go.goroot` setting
56+
([Issue 3006](https://github.com/golang/vscode-go/issues/3006)) are now correctly substituted.
57+
Patterns like `${VAR}` inside environment files (`go.testEnvFile`) can be used to reference
58+
other environment variables as well. ([Issue 1902](https://github.com/golang/vscode-go/issues/1902))
59+
60+
### Compatibilities
61+
62+
* This extension version requires VS Code 1.75 (January 2023 version) or newer.
63+
The README.md provides a list of VS Code and Go version requirements.
64+
* For tools installation managed by the extension, you need go1.18 or a newer version.
65+
([Issue 2898](golang/vscode-go#2898))
66+
* The extension has been tested with gopls v0.14 and delve v0.21.
67+
68+
### Thanks
69+
70+
Thank you for your contribution @n1lesh, @suzmue, @hyangah!
71+
172
## v0.39.1 - 17 Jul, 2023
273

374
This is a point release to update the link for the upcoming Go developer survey.

README.md

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,20 @@
66

77
[The VS Code Go extension](https://marketplace.visualstudio.com/items?itemName=golang.go)
88
provides rich language support for the
9-
[Go programming language](https://golang.org/).
9+
[Go programming language](https://go.dev/).
1010

11-
📣
12-
[Remote attach debugging](https://github.com/golang/vscode-go/wiki/debugging#connecting-to-headless-delve-with-target-specified-at-server-start-up) is now available via Delve's native DAP implementation with Delve v1.7.3 or newer. It enchances remote debugging with the same
13-
[debugging features](https://github.com/golang/vscode-go/wiki/debugging) that are already in use for local debugging. It is now the default with the
14-
[Go Nightly](https://github.com/golang/vscode-go/wiki/nightly) build of the extension and will become the default for the stable releases in mid 2022.
15-
We recommend switching your remote attach configurations in `launch.json` to use
16-
`"debugAdapter":"dlv-dap"` now to verify that this works for you.
17-
Please [file a new issue](https://github.com/golang/vscode-go/issues/new/choose) if you encounter any problems.
11+
## Requirements
1812

19-
📣📣 Watch [Debugging Treasure Hunt](https://youtu.be/ZPIPPRjwg7Q) from [GopherCon 2021](https://www.gophercon.com/) for a fun take on a debugging demo with VS Code Go and Delve DAP.
13+
* Visual Studio Code 1.75 or newer (or editors compatible with VS Code 1.75+ APIs)
14+
* Go 1.18 or newer
2015

2116
## Quick Start
2217

2318
Welcome! 👋🏻<br/>
2419
Whether you are new to Go or an experienced Go developer, we hope this
2520
extension fits your needs and enhances your development experience.
2621

27-
1. Install [Go](https://golang.org) 1.14 or newer if you haven't already.
22+
1. Install [Go](https://go.dev) 1.18 or newer if you haven't already.
2823

2924
1. Install the [VS Code Go extension].
3025

@@ -139,6 +134,50 @@ If you'd like to get early access to new features and bug fixes, you can use the
139134
nightly build of this extension. Learn how to install it in by reading the
140135
[Go Nightly documentation](https://github.com/golang/vscode-go/wiki/nightly).
141136

137+
## Telemetry
138+
139+
VS Code Go extension relies on the [Go Telemetry](https://telemetry.go.dev) to
140+
learn insights about the performance and stability of the extension and the
141+
language server (`gopls``).
142+
**Go Telemetry data uploading is disabled by default** and can be enabled
143+
with the following command:
144+
145+
```
146+
go run golang.org/x/telemetry/cmd/gotelemetry@latest on
147+
```
148+
149+
After telemetry is enabled, the language server will upload metrics and stack
150+
traces to [telemetry.go.dev](https://telemetry.go.dev). You can inspect what
151+
data is collected and can be uploaded by running:
152+
153+
```
154+
go run golang.org/x/telemetry/cmdgotelemetry@latest view
155+
```
156+
157+
If we get enough adoption, this data can significantly advance the pace of
158+
the Go extension development, and help us meet a higher standard
159+
of reliability. For example:
160+
161+
- Even with [semi-automated crash
162+
reports](https://github.com/golang/vscode-go/issues?q=is%3Aissue+is%3Aopen+label%3AautomatedReport)
163+
in VS Code, we've seen several crashers go unreported for weeks or months.
164+
- Even with [a suite of
165+
benchmarks](https://perf.golang.org/dashboard/?benchmark=all&repository=tools&branch=release-branch.go1.20),
166+
some performance regressions don't show up in our benchmark environment (such
167+
as the [completion bug](https://go.dev/issue/62665) mentioned below!).
168+
- Even with [lots of great
169+
ideas](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+label%3Agopls+label%3Afeaturerequest)
170+
for how to improve gopls, we have limited resources. Telemetry can help us
171+
identify which new features are most important, and which existing features
172+
aren't being used or aren't working well.
173+
174+
These are just a few ways that telemetry can improve gopls. The [telemetry blog
175+
post series](https://research.swtch.com/telemetry-uses) contains many more.
176+
177+
Go telemetry is designed to be transparent and privacy-preserving. If you have
178+
concerns about enabling telemetry, you can learn more at
179+
[https://telemetry.go.dev/privacy](https://telemetry.go.dev/privacy).
180+
142181
## Contributing
143182

144183
We welcome your contributions and thank you for working to improve the Go

docs/Home.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,5 @@
11
Welcome to the VSCode Go Wiki!
22

3-
### 📣 News and Upcoming Changes
4-
5-
[Remote attach debugging](./debugging#connecting-to-headless-delve-with-target-specified-at-server-start-up) is now available via Delve's native DAP implementation with Delve v1.7.3 or newer.
6-
We plan to enable this as the default in 2022 H1 to enhance remote debugging with the same
7-
[debugging features](./debugging.md) that are already in use for local debugging.
8-
We recommend switching your remote attach configurations in `launch.json` to use
9-
`"debugAdapter":"dlv-dap"` now to verify that this works for you.
10-
Please [file a new issue](https://github.com/golang/vscode-go/issues/new/choose) if you encounter any problems.
11-
123
### User Documentation
134

145
* [Overview of Extension Features](features.md)

docs/commands.md

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ Runs all unit tests in the current file.
6767

6868
Runs all unit tests in the package of the current file.
6969

70+
### `Go: Toggle Hide System Goroutines`
71+
72+
Toggles hiding the system goroutines from the active debug session call stack view.
73+
7074
### `Go Test: Refresh`
7175

7276
Refresh a test in the test explorer. Only available as a context menu option in the test explorer.
@@ -171,10 +175,6 @@ Add tags configured in go.addTags setting to selected struct using gomodifytags
171175

172176
Remove tags configured in go.removeTags setting from selected struct using gomodifytags
173177

174-
### `Go: Fill struct`
175-
176-
Fill a struct literal with default values
177-
178178
### `Go: Show All Commands...`
179179

180180
Shows all commands from the Go extension in the quick pick
@@ -231,14 +231,6 @@ Cancels running tests.
231231

232232
Applies existing cover profile.
233233

234-
### `Go: Extract to function`
235-
236-
Extract to function using godoctor.
237-
238-
### `Go: Extract to variable`
239-
240-
Extract to variable using godoctor.
241-
242234
### `Go: Restart Language Server`
243235

244236
Restart the running instance of the language server

docs/debugging.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ Here is the list of attributes specific to Go debugging.
444444
| `args` | Command line arguments passed to the debugged program.<br/>(Default: `[]`)<br/> | <center>_n/a_</center> |
445445
| `asRoot` | (Experimental) Debug with elevated permissions (on Unix). It requires `integrated` or `external` console modes and is ignored in remote debugging.<br/>(Default: `false`)<br/> | (Experimental) Debug with elevated permissions (on Unix). This requires `integrated` or `external` console modes and is ignored in remote debugging.<br/>(Default: `false`)<br/> |
446446
| `backend` | Backend used by delve. Maps to `dlv`'s `--backend` flag.<br/><p>Allowed Values: `"default"`, `"native"`, `"lldb"`, `"rr"`<br/> | <center>_same as Launch_</center>|
447-
| `buildFlags` | Build flags, to be passed to the Go compiler. Maps to dlv's `--build-flags` flag.<br/>(Default: `""`)<br/> | <center>_n/a_</center> |
447+
| `buildFlags` | Build flags, to be passed to the Go compiler. Maps to dlv's `--build-flags` flag.<br/>(Default: `[]`)<br/> | <center>_n/a_</center> |
448448
| `console` | (Experimental) Where to launch the debugger and the debug target: internal console, integrated terminal, or external terminal. It is ignored in remote debugging.<br/><p>Allowed Values: `"internalConsole"`, `"integratedTerminal"`, `"externalTerminal"`<br/>(Default: `internalConsole`)<br/> | (Experimental) Where to launch the debugger: internal console, integrated terminal, or external terminal. This does not affect tty of the running program. It is ignored in remote debugging.<br/><p>Allowed Values: `"internalConsole"`, `"integratedTerminal"`, `"externalTerminal"`<br/>(Default: `internalConsole`)<br/> |
449449
| `coreFilePath` | Path to the core dump file to open. For use on 'core' mode only<br/>(Default: `""`)<br/> | <center>_n/a_</center> |
450450
| `cwd` | Workspace relative or absolute path to the working directory of the program being debugged if a non-empty value is specified. The `program` folder is used as the working directory if `cwd` is omitted or empty.<br/>(Default: `""`)<br/> | Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace.<br/>(Default: `"${workspaceFolder}"`)<br/> |

0 commit comments

Comments
 (0)