Skip to content

Commit e5f03c1

Browse files
committed
gopls/doc: clean up README and add a release policy
Clean up some broken links and stale documentation in gopls/README.md, and add new documentation for the gopls release policy. Fixes golang/go#55267 Change-Id: I9c7ed1f1d3949025f3c02edb69b475cf34f214eb Reviewed-on: https://go-review.googlesource.com/c/tools/+/446863 TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Alan Donovan <[email protected]> Reviewed-by: Hyang-Ah Hana Kim <[email protected]> Run-TryBot: Robert Findley <[email protected]> gopls-CI: kokoro <[email protected]>
1 parent d5e9e35 commit e5f03c1

File tree

2 files changed

+62
-25
lines changed

2 files changed

+62
-25
lines changed

gopls/README.md

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,69 +5,73 @@
55
`gopls` (pronounced "Go please") is the official Go [language server] developed
66
by the Go team. It provides IDE features to any [LSP]-compatible editor.
77

8-
<!--TODO(rstambler): Add gifs here.-->
8+
<!--TODO(rfindley): Add gifs here.-->
99

1010
You should not need to interact with `gopls` directly--it will be automatically
1111
integrated into your editor. The specific features and settings vary slightly
12-
by editor, so we recommend that you proceed to the [documentation for your
13-
editor](#editors) below.
12+
by editor, so we recommend that you proceed to the
13+
[documentation for your editor](#editors) below.
1414

1515
## Editors
1616

1717
To get started with `gopls`, install an LSP plugin in your editor of choice.
1818

19-
* [VSCode](https://github.com/golang/vscode-go/blob/master/README.md)
19+
* [VS Code](https://github.com/golang/vscode-go/blob/master/README.md)
2020
* [Vim / Neovim](doc/vim.md)
2121
* [Emacs](doc/emacs.md)
2222
* [Atom](https://github.com/MordFustang21/ide-gopls)
2323
* [Sublime Text](doc/subl.md)
2424
* [Acme](https://github.com/fhs/acme-lsp)
2525

26-
If you use `gopls` with an editor that is not on this list, please let us know
27-
by [filing an issue](#new-issue) or [modifying this documentation](doc/contributing.md).
26+
If you use `gopls` with an editor that is not on this list, please send us a CL
27+
[updating this documentation](doc/contributing.md).
2828

2929
## Installation
3030

3131
For the most part, you should not need to install or update `gopls`. Your
3232
editor should handle that step for you.
3333

34-
If you do want to get the latest stable version of `gopls`, change to any
35-
directory that is both outside of your `GOPATH` and outside of a module (a temp
36-
directory is fine), and run:
34+
If you do want to get the latest stable version of `gopls`, run the following
35+
command:
3736

3837
```sh
3938
go install golang.org/x/tools/gopls@latest
4039
```
4140

42-
Learn more in the [advanced installation
43-
instructions](doc/advanced.md#installing-unreleased-versions).
41+
Learn more in the
42+
[advanced installation instructions](doc/advanced.md#installing-unreleased-versions).
43+
44+
Learn more about gopls releases in the [release policy](doc/releases.md).
4445

4546
## Setting up your workspace
4647

47-
`gopls` supports both Go module and GOPATH modes, but if you are working with
48-
multiple modules or uncommon project layouts, you will need to specifically
49-
configure your workspace. See the [Workspace document](doc/workspace.md) for
50-
information on supported workspace layouts.
48+
`gopls` supports both Go module, multi-module and GOPATH modes. See the
49+
[workspace documentation](doc/workspace.md) for information on supported
50+
workspace layouts.
5151

5252
## Configuration
5353

5454
You can configure `gopls` to change your editor experience or view additional
5555
debugging information. Configuration options will be made available by your
5656
editor, so see your [editor's instructions](#editors) for specific details. A
57-
full list of `gopls` settings can be found in the [Settings documentation](doc/settings.md).
57+
full list of `gopls` settings can be found in the [settings documentation](doc/settings.md).
5858

5959
### Environment variables
6060

6161
`gopls` inherits your editor's environment, so be aware of any environment
6262
variables you configure. Some editors, such as VS Code, allow users to
6363
selectively override the values of some environment variables.
6464

65-
## Troubleshooting
65+
## Support Policy
6666

67-
If you are having issues with `gopls`, please follow the steps described in the
68-
[troubleshooting guide](doc/troubleshooting.md).
67+
Gopls is maintained by engineers on the
68+
[Go tools team](https://github.com/orgs/golang/teams/tools-team/members),
69+
who actively monitor the
70+
[Go](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+label%3Agopls)
71+
and
72+
[VS Code Go](https://github.com/golang/vscode-go/issues) issue trackers.
6973

70-
## Supported Go versions and build systems
74+
### Supported Go versions
7175

7276
`gopls` follows the
7377
[Go Release Policy](https://golang.org/doc/devel/release.html#policy),
@@ -95,13 +99,22 @@ test failures may be skipped rather than fixed. Furthermore, if a regression in
9599
an older Go version causes irreconcilable CI failures, we may drop support for
96100
that Go version in CI if it is 3 or 4 Go versions old.
97101

98-
`gopls` currently only supports the `go` command, so if you are using a
99-
different build system, `gopls` will not work well. Bazel is not officially
100-
supported, but Bazel support is in development (see
101-
[bazelbuild/rules_go#512](https://github.com/bazelbuild/rules_go/issues/512)).
102+
### Supported build systems
103+
104+
`gopls` currently only supports the `go` command, so if you are using
105+
a different build system, `gopls` will not work well. Bazel is not officially
106+
supported, but may be made to work with an appropriately configured
107+
`go/packages` driver. See
108+
[bazelbuild/rules_go#512](https://github.com/bazelbuild/rules_go/issues/512)
109+
for more information.
102110
You can follow [these instructions](https://github.com/bazelbuild/rules_go/wiki/Editor-setup)
103111
to configure your `gopls` to work with Bazel.
104112

113+
### Troubleshooting
114+
115+
If you are having issues with `gopls`, please follow the steps described in the
116+
[troubleshooting guide](doc/troubleshooting.md).
117+
105118
## Additional information
106119

107120
* [Features](doc/features.md)
@@ -115,4 +128,3 @@ to configure your `gopls` to work with Bazel.
115128

116129
[language server]: https://langserver.org
117130
[LSP]: https://microsoft.github.io/language-server-protocol/
118-
[Gophers Slack]: https://gophers.slack.com/

gopls/doc/releases.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Gopls release policy
2+
3+
Gopls releases follow [semver](http://semver.org), with major changes and new
4+
features introduced only in new minor versions (i.e. versions of the form
5+
`v*.N.0` for some N). Subsequent patch releases contain only cherry-picked
6+
fixes or superficial updates.
7+
8+
In order to align with the
9+
[Go release timeline](https://github.com/golang/go/wiki/Go-Release-Cycle#timeline),
10+
we aim to release a new minor version of Gopls approximately every three
11+
months, with patch releases approximately every month, according to the
12+
following table:
13+
14+
| Month | Version(s) |
15+
| ---- | ------- |
16+
| Jan | `v*.<N+0>.0` |
17+
| Jan-Mar | `v*.<N+0>.*` |
18+
| Apr | `v*.<N+1>.0` |
19+
| Apr-Jun | `v*.<N+1>.*` |
20+
| Jul | `v*.<N+2>.0` |
21+
| Jul-Sep | `v*.<N+2>.*` |
22+
| Oct | `v*.<N+3>.0` |
23+
| Oct-Dec | `v*.<N+3>.*` |
24+
25+
For more background on this policy, see https://go.dev/issue/55267.

0 commit comments

Comments
 (0)