|
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 [email protected] 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 | [[email protected]](https://github.com/golang/tools/releases/tag/gopls%2Fv0.7.5) |
|
95 | 103 | | Go 1.15 | [[email protected]](https://github.com/golang/tools/releases/tag/gopls%2Fv0.9.5) |
|
96 | 104 | | Go 1.17 | [[email protected]](https://github.com/golang/tools/releases/tag/gopls%2Fv0.11.0) |
|
97 | 105 | | Go 1.18 | [[email protected]](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 | [[email protected]](https://github.com/golang/tools/releases/tag/gopls%2Fv0.15.3) | |
104 | 107 |
|
105 | 108 | ### Supported build systems
|
106 | 109 |
|
|
0 commit comments