|
75 | 75 | ### Supported Go versions |
76 | 76 |
|
77 | 77 | `gopls` follows the |
78 | | -[Go Release Policy](https://golang.org/doc/devel/release.html#policy), |
79 | | -meaning that it officially supports the last 2 major Go releases. Per |
80 | | -[issue #39146](https://go.dev/issues/39146), we attempt to maintain best-effort |
81 | | -support for the last 4 major Go releases, but this support extends only to not |
82 | | -breaking the build and avoiding easily fixable regressions. |
83 | | - |
84 | | -In the context of this discussion, gopls "supports" a Go version if it supports |
85 | | -being built with that Go version as well as integrating with the `go` command |
86 | | -of that Go version. |
87 | | - |
88 | | -The following table shows the final gopls version that supports a given Go |
89 | | -version. Go releases more recent than any in the table can be used with any |
90 | | -version of gopls. |
| 78 | +[Go Release Policy](https://golang.org/doc/devel/release.html#policy), meaning |
| 79 | +that it officially supports only the two most recent major Go releases. Until |
| 80 | +August 2024, the Go team will also maintain best-effort support for the last |
| 81 | +4 major Go releases, as described in [issue #39146](https://go.dev/issues/39146). |
| 82 | + |
| 83 | +Starting with the release of Go 1.23.0 and gopls@v0.17.0 in August 2024, the |
| 84 | +gopls build will depend on the latest version of Go. However, due to the |
| 85 | +[forward compatibility](https://go.dev/blog/toolchain) support added to the |
| 86 | +`go` command in Go 1.21, as long as Go 1.21 or later are used to install gopls, |
| 87 | +the toolchain upgrade will be handled automatically, just like any other |
| 88 | +dependency. Gopls will continue to support integrating with the two most recent |
| 89 | +major Go releases of the `go` command, per the Go Release Policy. See |
| 90 | +[issue #65917](https://go.dev/issue/65917) for more details. |
| 91 | + |
| 92 | +Maintaining support for legacy versions of Go caused |
| 93 | +[significant friction](https://go.dev/issue/50825) for gopls maintainers and |
| 94 | +held back other improvements. If you are unable to install a supported version |
| 95 | +of Go on your system, you can still install an older version of gopls. The |
| 96 | +following table shows the final gopls version that supports a given Go version. |
| 97 | +Go releases more recent than those in the table can be used with any version of |
| 98 | +gopls. |
91 | 99 |
|
92 | 100 | | Go Version | Final gopls version with support (without warnings) | |
93 | 101 | | ----------- | --------------------------------------------------- | |
94 | 102 | | Go 1.12 | [gopls@v0.7.5](https://github.com/golang/tools/releases/tag/gopls%2Fv0.7.5) | |
95 | 103 | | Go 1.15 | [gopls@v0.9.5](https://github.com/golang/tools/releases/tag/gopls%2Fv0.9.5) | |
96 | 104 | | Go 1.17 | [gopls@v0.11.0](https://github.com/golang/tools/releases/tag/gopls%2Fv0.11.0) | |
97 | 105 | | Go 1.18 | [gopls@v0.14.2](https://github.com/golang/tools/releases/tag/gopls%2Fv0.14.2) | |
98 | | - |
99 | | -Our extended support is enforced via [continuous integration with older Go |
100 | | -versions](doc/contributing.md#ci). This legacy Go CI may not block releases: |
101 | | -test failures may be skipped rather than fixed. Furthermore, if a regression in |
102 | | -an older Go version causes irreconcilable CI failures, we may drop support for |
103 | | -that Go version in CI if it is 3 or 4 Go versions old. |
| 106 | +| Go 1.20 | [gopls@v0.15.3](https://github.com/golang/tools/releases/tag/gopls%2Fv0.15.3) | |
104 | 107 |
|
105 | 108 | ### Supported build systems |
106 | 109 |
|
|
0 commit comments