This is a small release containing new integrations of vulnerability analysis.
Vulnerability analysis for go.mod files can be enabled by configuring the "vulncheck" setting to "Imports". For more information on vulnerability management, see the Vulnerability Management for Go blog post.
Support changes
This release removes support for the "experimentalUseInvalidMetadata" setting, as described in the v0.10.0 release. Other settings slated for deprecation in that release remain temporarily supported, but will be removed in v0.12.0.
New Features
Analyzing dependencies for vulnerabilities
This release offers two different options for detecting vulnerabilities in dependencies. Both are backed by the Go vulnerability database (https://vuln.go.dev) and complement each other.
Imports-based scanning, enabled by the "vulncheck": "Imports" setting, reports vulnerabilities by scanning the set of packages imported in the workspace. This is fast, but may report more false positives.
Integration of the golang.org/x/vuln/cmd/govulncheck command-line tool performs a more precise analysis based on-call graph reachability, with fewer false positives. Because it is slower to compute, it must be manually triggered by using "Run govulncheck to verify" code actions or the "codelenses.run_govulncheck" code lens on go.mod files.
The loopclosure analyzer, which reports problematic references from a nested function to a variable of an enclosing loop, has been improved to catch more cases. In particular, it now reports when subtests run in parallel with the loop, a mistake that often results in all but the final test case being skipped.
Configuration changes
The "vulncheck" setting controls vulnerability analysis based on the Go vulnerability database. If set to "Imports", gopls will compute diagnostics related to vulnerabilities in dependencies, and will present them in go.mod files.
The "codelenses.run_govulncheck" setting controls the presence of code lenses that run the govulncheck command, which takes longer but produces more accurate vulnerability reporting based on call-graph reachability.
Bug fixes
This version of gopls includes fixes to several bugs, notably:
A full list of all issues fixed can be found in the gopls/v0.11.0 milestone.
To report a new problem, please file a new issue at https://go.dev/issues/new.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps golang.org/x/tools from 0.9.3 to 0.11.1.
Release notes
Sourced from golang.org/x/tools's releases.
... (truncated)
Commits
c16d0be
cmd/gonew: add new tool for starting a module by copying one304e203
internal/edit: copy cmd/internal/edit82861e0
gopls/internal/lsp/source: reinstate equalOrigin for references check1561060
gopls/internal/lsp/source: fix incorrect 'origin' logic for named typesfe58b07
gopls/internal/lsp/source: fix renaming of type parameters3a3c169
gopls/internal/lsp/source: refresh embeddirective analyzer docs03562de
refactor/satisfy/find: composite lits may have type parameter typebacac14
gopls/internal/lsp/source: Add SuggestedFix for embeddirective Analyzer38606b3
gopls/internal/lsp/cache: keep analysis progress reports on one linee8cdaf4
gopls/internal/lsp/cache: fast-path for type-checking active packagesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)