Skip to content

Commit 825de6b

Browse files
committed
README.md: clarify supported go & tools versions
Based on the clarified version support policy: - Add github.com/golang/vscode-go/wiki/compatibility to have the version compatibility matrix. - Drop go1.20 from GH action workflows. - Let extension/tools/installtools require go1.21+. For #3411 For #3412 Change-Id: I10ffafa3234e691e9e27f84385aa68efa7db733f Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/616675 kokoro-CI: kokoro <[email protected]> Reviewed-by: Robert Findley <[email protected]> Commit-Queue: Hyang-Ah Hana Kim <[email protected]>
1 parent 25448e0 commit 825de6b

File tree

5 files changed

+51
-8
lines changed

5 files changed

+51
-8
lines changed

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

+1-1
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.20', '1.21', '1.22', '1.23']
20+
go: ['1.21', '1.22', '1.23']
2121

2222
steps:
2323
- name: Clone repository

.github/workflows/test-long.yml

+1-1
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.20', '1.21', '1.22', '1.23']
19+
go: ['1.21', '1.22', '1.23']
2020

2121
steps:
2222
- name: Clone repository

README.md

+28-3
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ provides rich language support for the
1111
## Requirements
1212

1313
* Visual Studio Code 1.75 or newer (or editors compatible with VS Code 1.75+ APIs)
14-
* Go 1.19 or newer.
14+
* Go 1.21 or newer.
1515

1616
## Quick Start
1717

1818
Welcome! 👋🏻<br/>
1919
Whether you are new to Go or an experienced Go developer, we hope this
2020
extension fits your needs and enhances your development experience.
2121

22-
1. Install [Go](https://go.dev) 1.19 or newer if you haven't already.
22+
1. Install [Go](https://go.dev) 1.21 or newer if you haven't already.
2323

2424
1. Install the [VS Code Go extension].
2525

@@ -182,6 +182,30 @@ post series](https://research.swtch.com/telemetry-uses) contains many more.
182182
Go telemetry is designed to be transparent and privacy-preserving. Learn more at
183183
[https://go.dev/doc/telemetry](https://go.dev/doc/telemetry).
184184

185+
## Support Policy
186+
187+
The Go extension is maintained by engineers on the
188+
[Go tools team](https://github.com/orgs/golang/teams/tools-team/members),
189+
who actively monitor the [VS Code Go](https://github.com/golang/vscode-go/issues)
190+
and the [Go](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+label%3Agopls)
191+
issue trackers.
192+
193+
We support only the latest stable and pre-release versions of the extension.
194+
195+
### Supported Go and tools
196+
197+
The Go extension follows the [Go Release Policy](https://go.dev/doc/devel/release.html#policy),
198+
meaning that it _officially_ supports the two most recent major Go releases.
199+
The Go team maintains _best-effort_ support for the last three major Go versions.
200+
201+
The Go extension relies on [tools](https://github.com/golang/vscode-go/wiki/tools)
202+
like `gopls` and `dlv` for its core functionalities and they have their own release
203+
policy and schedule. We test only against the latest versions of these tools.
204+
205+
In case you need to work with an older version of Go, please check
206+
the [Compatibility] page and manually install the compatible version of
207+
the extension and tools.
208+
185209
## Contributing
186210

187211
We welcome your contributions and thank you for working to improve the Go
@@ -211,11 +235,12 @@ conduct-related issue, please mail [email protected].
211235
[IntelliSense]: https://github.com/golang/vscode-go/wiki/features#intellisense
212236
[Code navigation]: https://github.com/golang/vscode-go/wiki/features#code-navigation
213237
[Code editing]: https://github.com/golang/vscode-go/wiki/features#code-editing
238+
[Compatibility]: https://github.com/golang/vscode-go/wiki/compatibility
214239
[diagnostics]: https://github.com/golang/vscode-go/wiki/features#diagnostics
215240
[testing]: https://github.com/golang/vscode-go/wiki/features#run-and-test-in-the-editor
216241
[debugging]: https://github.com/golang/vscode-go/wiki/debugging#features
217242
[full feature breakdown]: https://github.com/golang/vscode-go/wiki/features
218243
[workspace documentation]: https://github.com/golang/tools/blob/master/gopls/doc/workspace.md
219244
[`Go: Install/Update Tools` command]: https://github.com/golang/vscode-go/wiki/commands#go-installupdate-tools
220245
[Supported workspace layouts documentation]: https://github.com/golang/tools/blob/master/gopls/doc/workspace.md
221-
[Workspace Folders]: https://code.visualstudio.com/docs/editor/multi-root-workspaces
246+
[Workspace Folders]: https://code.visualstudio.com/docs/editor/multi-root-workspaces

docs/compatibility.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
## Version Compatibility
3+
4+
The table below lists the *last* version of the extension
5+
known to be compatible with old versions of Go, and the last versionof tools
6+
compatible with it.
7+
8+
| Go version | Extension version | VS Code | Gopls | Delve |
9+
| ---------- | ----------------- | ------- | --------- | ------------ |
10+
| go1.20 | v0.42.1 | 1.75+ | v0.15.3 | v1.22.1 |
11+
| go1.19 | v0.42.1 | 1.75+ | v0.15.3 | v1.21.2 |
12+
| go1.18 | v0.41.3 | 1.75+ | v0.14.2 | v1.20.0 |
13+
| go1.17 | v0.39.1 | 1.67+ | v0.11.0 | v1.9.1 |
14+
| go1.16 | v0.39.1 | 1.67+ | v0.11.0 | v1.8.3 |
15+
16+
### References
17+
* Gopls's [supported go versions](https://github.com/golang/tools/tree/master/gopls#supported-go-versions).
18+
* Delve's [supported go versions](https://github.com/go-delve/delve/blob/master/pkg/goversion/compat.go).

extension/tools/installtools/main.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ var tools = []struct {
3838
{"golang.org/x/tools/gopls", "", true, nil},
3939
{"github.com/cweill/gotests/gotests", "", false, nil},
4040
{"github.com/haya14busa/goplay/cmd/goplay", "", false, nil},
41-
{"honnef.co/go/tools/cmd/staticcheck", "", false, []finalVersion{{18, "v0.3.3"}, {20, "v0.4.7"}}},
42-
{"github.com/go-delve/delve/cmd/dlv", "", false, []finalVersion{{16, "v1.8.3"}, {17, "v1.9.1"}, {18, "v1.20.2"}, {20, "v1.22.1"}}},
41+
{"honnef.co/go/tools/cmd/staticcheck", "", false, []finalVersion{{21, "v0.4.7"}}},
42+
{"github.com/go-delve/delve/cmd/dlv", "", false, nil},
4343
}
4444

4545
// pickVersion returns the version to install based on the supported
@@ -58,7 +58,7 @@ func main() {
5858
if err != nil {
5959
exitf("failed to find go version: %v", err)
6060
}
61-
if ver < 1 {
61+
if ver < 21 {
6262
exitf("unsupported go version: 1.%v", ver)
6363
}
6464

0 commit comments

Comments
 (0)