Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/tools/gopls: releases #33030

Closed
stamblerre opened this issue Jul 10, 2019 · 9 comments
Closed

x/tools/gopls: releases #33030

stamblerre opened this issue Jul 10, 2019 · 9 comments
Labels
Documentation gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository.

Comments

@stamblerre
Copy link
Contributor

This issue will include announcements about new tagged versions of gopls.

@gopherbot gopherbot added this to the Unreleased milestone Jul 10, 2019
@gopherbot gopherbot added the gopls Issues related to the Go language server, gopls. label Jul 10, 2019
@stamblerre
Copy link
Contributor Author

stamblerre commented Jul 10, 2019

Most recent release: v0.4.1.

v0.4.1

This release contains mostly stability improvements and smaller bug fixes. A list of all of the issues fixed in this release can be found in the gopls/v0.4.1 milestone. A notable change is that type error analyzers (fillreturns, undeclaredname, unusedparams, nonewvars) are now on by default.

v0.4.0

  • Improved support for working with modules (@ridersofrohan). A detailed walk-through of the new features can be found here. A quick summary:
    • Use the -modfile flag to suggest which modules should be added/removed from the go.mod file, rather than editing it automatically.
    • Suggest dependency upgrades in-editor and provide additional language features, such as formatting, for the go.mod file.
  • Inverse implementations (@muirdm). "Go to implementations" on a concrete type will show the interfaces it implements.
  • Completion improvements (@muirdm). Specifically, improved completion for keywords. Also, offer if err != nil { return err } as a completion item.
  • Jumping to definition on an import statement returns all files as definition locations (@danishprakash).
  • Support for running go generate through the editor, via a code lens (@marwan-at-work).
  • Command-line support for workspace symbols (@daisuzu).

Opt-in:

  • Code actions suggesting gofmt -s-style simplifications (@ridersofrohan). To get these on-save, add the following setting:
"[go]": {
	"editor.codeActionsOnSave": {
		"source.fixAll": true,
	}
}
  • Code actions suggesting fixes for type errors, such as missing return values (goreturns-style), undeclared names, unused parameters, and assignment statements that should be converted from := to = (@ridersofrohan). Add the following to your gopls settings to opt-in to these analyzers. In the future, they will be on by default and high-confidence suggested fixes may be applied on save. See additional documentation on analyzers here.
"gopls": {
	"analyses": {
		"fillreturns": true,
                "undeclaredname": true,
                "unusedparams": true,
                "nonewvars": true,
	}
}

For a complete list of the issues resolved, see the gopls/v0.4.0 milestone.

@golang golang locked and limited conversation to collaborators Jul 10, 2019
@stamblerre stamblerre changed the title x/tools/gopls: tagged versions x/tools/gopls: releases Sep 11, 2019
@stamblerre
Copy link
Contributor Author

stamblerre commented Sep 11, 2019

v0.1.x

v0.1.3

  • Fixes some deadlocking issues. Adds experimental support for documentation in completion items.

v0.1.4

v0.1.5

  • Config settings were not being respected in v0.1.4, so released a fix for that specific issue

v0.1.6

  • Fix an issue with URI escaping on Windows

v0.1.7

  • Fix issue with configurations not being respected
  • Fix issue with test variants and go/packages (caused import organization to not cause a cache invalidation)

@gopherbot gopherbot added the Tools This label describes issues relating to any tools in the x/tools repository. label Sep 12, 2019
@stamblerre stamblerre modified the milestones: Unreleased, gopls unplanned Dec 4, 2019
@stamblerre
Copy link
Contributor Author

stamblerre commented Dec 10, 2019

v.0.2x

v0.2.0

  • Many improvements to autocompletion. In particular, support for completions of array, slice, map, and function literals (@muirdm).
  • A new diff algorithm (github.com/sergi/go-diff) that improves handling of line endings on different operating systems (@ianthehat).
  • Improved caching and memory usage (@stamblerre).
  • Command-line support for links, suggested fixes, and imports (@kalmanb).
  • Command-line support for references, signature, and symbols (@rentziass).
  • Command-line support for rename (@hartzell).

Opt-in:

  • Get diagnostics from staticcheck by configuring "staticcheck": true in your gopls settings (@ianthehat).
  • Get autocompletion of unimported packages and symbols by configuring "completeUnimported": true in your gopls settings (@heschik).

v0.2.1

  • Fix for parse errors showing up as errors on the whole package (CL 206597).

v0.2.2

  • Fix concurrent map read and write when a file is created (CL 210199).
  • Fix issue that caused errors to show up when a new file was created (CL 209978).

@stamblerre stamblerre removed this from the gopls unplanned milestone Jan 29, 2020
@stamblerre
Copy link
Contributor Author

stamblerre commented Feb 4, 2020

v0.3.x

v0.3.0

Note: gopls now loads your entire workspace, where “workspace” is directory you opened in your editor.

In module mode, you must open your module root (directory containing the go.mod file) or a subdirectory.

In GOPATH mode, you must open your GOPATH/src or a directory within it. If you have a large GOPATH and you open your GOPATH as your workspace root, gopls may be very slow to load. Please see #36899 for further information.

  • Autocompletion from unimported packages is on by default. You will get completions for something like fmt.Printf even if “fmt” isn’t imported yet. (@heschik)
  • Workspace-scoped references, rename, and go to implementation. These features use your workspace root as the search scope, so behavior will vary based on the directory you open in your editor. This may result in unexpected behavior. (@muirdm, @matloob)
  • Workspace-wide diagnostics. You will now see errors in your entire workspace, rather than just in your currently open files. Analysis errors will only be shown for packages with currently open files.
  • Watch file changes on disk. This allows users to switch branches without reloading their editors. Also, changing configurations no longer requires an editor reload.
  • GOPATH vendoring is fully supported. Previously, some features would ignore vendor directories, causing errors if packages weren't in GOPATH. (@heschik)
  • New autocompletion suggestions for type conversions. Improved completions for literal candidates and variadic functions. Better rankings, including rankings for builtin functions and keywords. (@muirdm)
  • Highlighting improvements: Highlighting now applies not only to variables, but also to fields, methods, types, and imports. Additional highlighting helps visualize control flow in loops and functions. Highlighting of single character variables has better support. (@ridersofrohan)
  • Documentation on hover includes links to pkg.go.dev for exported symbols. (@Southclaws)
  • Improved support for cgo dependencies. All features now work for packages that have cgo dependencies. Authoring cgo packages is still not supported, but improvements are scheduled for Go 1.15 (see x/tools/gopls: improve support for authoring cgo packages #35721). (@heschik)
  • Deep completions are now on by default. This feature of completion will search the fields and methods of all available candidates to see if there are any more candidates with the expected type. As an example, say you have imported the context package and are calling a function that takes a context.Context as a parameter. In the case that you don’t have a variable of that type in scope, deep completions will suggest context.Background() and context.TODO(). (@muirdm)

Opt-in:

  • staticcheck analyses remain opt-in and can be enabled by setting "staticcheck": true in your gopls settings.
  • Go 1.14 will support running the go command without modifying the user’s go.mod file. This new feature is used in gopls to show diagnostics and suggest edits in a user’s go.mod file rather than change the file without the user noticing. Currently, gopls will suggest removing unused dependencies and warn the user if there is a parse error in the go.mod file. Enable this behavior by using the go1.14 beta and setting "tempModfile": true in your gopls settings. (@ridersofrohan)

v0.3.1

v0.3.2

v0.3.3

  • Support for workspace symbols. (@daisuzu)
  • Various completion improvements, including fixes for completion in code that doesn't parse. (@muirdm)
  • Limit diagnostic concurrency, preventing huge spikes in memory usage that some users encountered. (@heschik)
  • Improved handling for URIs containing escaped characters. (@heschik)
  • Module versions from "go list" in pkg.go.dev links. (@ridersofrohan)
  • Upgrade module dependencies via a code lens on go.mod files. (@ridersofrohan)
  • Opt-in:

v0.3.4

@golang golang deleted a comment from heschi Apr 8, 2020
@stamblerre
Copy link
Contributor Author

v0.4.1

This release contains mostly stability improvements and smaller bug fixes. A list of all of the issues fixed in this release can be found in the gopls/v0.4.1 milestone. A notable change is that type error analyzers (fillreturns, undeclaredname, unusedparams, nonewvars) are now on by default.

@stamblerre
Copy link
Contributor Author

v0.4.2

Release notes: https://github.com/golang/tools/releases/tag/gopls%2Fv0.4.2.

We are migrating away from using this issue. New releases will be announced via a GitHub Release.

@stamblerre
Copy link
Contributor Author

Closing this issue, as we are now using GitHub Releases. Please see https://github.com/golang/tools/releases for future updates.

@mvdan
Copy link
Member

mvdan commented Jul 1, 2020

For those wondering "how should I be notified of releases now?", you can watch the tools repository just for new releases instead of all activity:
2020-07-01-17:29:43

I think that feature is fairly recent - I don't think it existed a couple of years ago when we first suggested using an issue to announce releases.

@hyangah
Copy link
Contributor

hyangah commented Jul 1, 2020

Uh, we need to update the release note link hardcoded in vscode-go. :-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Documentation gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository.
Projects
None yet
Development

No branches or pull requests

4 participants