Skip to content

Commit

Permalink
build(deps): bump golang.org/x/tools from 0.12.0 to 0.13.0 (#138)
Browse files Browse the repository at this point in the history
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.12.0
to 0.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/golang/tools/releases">golang.org/x/tools's
releases</a>.</em></p>
<blockquote>
<h2>gopls/v0.13.0</h2>
<p><strong>These are release notes are identical to that of
gopls@v0.13.0-pre.3. Thanks to all who tested the
prerelease!</strong></p>
<pre><code>go install golang.org/x/tools/gopls@v0.13.0
</code></pre>
<p>This release fixes several bugs and mitigates a few performance
regressions. It also somewhat reduces the latency and CPU cost of most
operations, and includes a few small additional features.</p>
<h1>Performance improvements</h1>
<p>While <a href="mailto:gopls@v0.12.x">gopls@v0.12.x</a> drastically
reduced memory usage, several operations got around 50% slower due to
additional I/O reading from the filesystem and time spent decoding
indexes. This release optimizes those additional operations to (in most
cases) achieve parity or better with the equivalent operation in
gopls@v0.11.0. Additionally, this release reduces total CPU while typing
or performing common operations.</p>
<h2>Faster code actions</h2>
<p>This release includes a particularly large performance improvement in
the evaluation of code actions (including formatting/goimports on save).
In the past, there have been several reasons why this operation was
expensive -- VS Code users may recognize the <code>getting code actions
from &quot;Go&quot;</code> pop-up. This release fundamentally changes
the way code actions are evaluated so that almost all of the work is
pre-computed. As a result, formatting and adding or removing imports on
save should be much faster.</p>
<h2>Analysis performance</h2>
<p>A notable exception to CPU performance parity with gopls@v0.11.0 is
running static analysis. In this case, the additional cost incurred by
<a href="mailto:gopls@v0.12.x">gopls@v0.12.x</a> was not a regression,
but rather the cost of analyzing many more packages to enable
&quot;deep&quot; static analysis (see &quot;Improved static
analysis&quot; in the <a
href="https://github.com/golang/tools/releases/tag/gopls%2Fv0.12.0">gopls@v0.12.0
release notes</a>.</p>
<p>In smaller repositories, the cost of this additional analysis is
negligible -- analysis does not run until you stop typing, and typically
just re-evaluates the changed package. However, it was discovered that
in large workspaces that import low-level packages with a very large API
surface (such as a cloud provider SDK or proto library), certain
quadratic factors involved with the encoding/decoding of analysis
results can dominate the cost of analysis, and result in enormous
resource consumption: overloading the CPU and exhausting all memory.</p>
<p>This release partially mitigates those quadratic factors,
significantly reducing their cost and limiting concurrency so that they
do not exhaust all resources. However, fully eliminating these factors
will require additional work to fix their quadratic nature. Until that
is done, analysis may continue to be costly on certain repos, especially
if <a
href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#staticcheck-bool"><code>&quot;staticcheck&quot;</code></a>
is enabled (because staticcheck does more deep analysis than the default
set of analyzers).</p>
<p>In the meantime, a notification is added to make you aware when
analysis is slow, and provide an update on the progress of indexing
&quot;deep&quot; analysis results. Canceling this notification will
cancel the ongoing analysis, but it will resume after the next change.
If you don't want to see these notifications, you can set the new <a
href="https://github.com/golang/tools/blob/master/gopls/doc/settings.md#analysisprogressreporting-bool"><code>&quot;analysisProgressReporting&quot;</code></a>
setting to <code>&quot;false&quot;</code>.
<img
src="https://github.com/golang/tools/assets/57144380/4335a3c9-245b-409d-ab5c-5bbb650b7234"
alt="image" />.</p>
<h1>New Features</h1>
<h2>Highlight deprecated symbols</h2>
<p>Deprecated symbols and packages are now marked as such. To turn off
this feature, disable the <a
href="https://github.com/golang/tools/blob/master/gopls/doc/analyzers.md#deprecated"><code>&quot;deprecated&quot;</code></a>
analysis.</p>
<p><img
src="https://github.com/golang/tools/assets/57144380/f6714035-f37b-487a-a110-591388bb5677"
alt="image" /></p>
<h2>Stub methods to fix missing method errors</h2>
<p>The <a
href="https://github.com/golang/tools/blob/master/gopls/doc/analyzers.md#stubmethods"><code>&quot;stubmethods&quot;</code></a>
refactoring is now available as a quick-fix for errors related to
missing methods.
<img
src="https://github.com/golang/tools/assets/57144380/715c3025-8beb-4cd5-bb8c-970be197b897"
alt="image" /></p>
<h2>Improvements to function extraction</h2>
<p>Function extraction now puts <code>context.Context</code> parameters
first in the resulting extracted function. See <a
href="https://redirect.github.com/golang/go/issues/60738">golang/go#60738</a>
for details.</p>
<h2>Improvements to the embeddirective analyzer</h2>
<p>The embed directive analyzer now verifies the location of
<code>//go:embed</code> directives, and provides a quick-fix to add
missing <code>&quot;embed&quot;</code> imports.
<img
src="https://github.com/golang/tools/assets/57144380/acbe8599-3a2d-40cd-856e-3451ea03c939"
alt="image" /></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/b5e55d198461206bca9558e65cdd518f8e4f2735"><code>b5e55d1</code></a>
go/analysis/analysistest: give better hint in SuggestedFix
assertion</li>
<li><a
href="https://github.com/golang/tools/commit/a807ccf39a240aea24e1fd02ff1ada1a94e87fba"><code>a807ccf</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/21090a2aa8d3719d5a5d4264e41696529522f0bd"><code>21090a2</code></a>
gopls/internal/lsp/cache: use persistent.Set in a couple places</li>
<li><a
href="https://github.com/golang/tools/commit/38b898b246a939ee85545de1da16fd710a72a9c4"><code>38b898b</code></a>
internal/persistent: add Set</li>
<li><a
href="https://github.com/golang/tools/commit/44f7796438e567ee014586c24a7afbab9a1ebed1"><code>44f7796</code></a>
gopls: add and enable the slog analyzer</li>
<li><a
href="https://github.com/golang/tools/commit/2c6ba93996da7073f913c9918ac8dd99411f58b3"><code>2c6ba93</code></a>
gopls: tidy for 1.17+</li>
<li><a
href="https://github.com/golang/tools/commit/5a9656936d83c03440e5b437421cb0fb92e62e31"><code>5a96569</code></a>
gopls/internal/lsp/cmd: don't use x/exp/slices</li>
<li><a
href="https://github.com/golang/tools/commit/77c6ac601f791bef45ef25c870e2d07fdaef6250"><code>77c6ac6</code></a>
gopls/internal/telemetry: don't schedule the next upload</li>
<li><a
href="https://github.com/golang/tools/commit/010e045c4eb965ad42d8feccd193abb1b80ee42f"><code>010e045</code></a>
internal/persistent: use generics</li>
<li><a
href="https://github.com/golang/tools/commit/a1a928ddbedd8082c24d6223aa9ce1f00f922286"><code>a1a928d</code></a>
gopls: remove dead code</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.12.0...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/tools&package-manager=go_modules&previous-version=0.12.0&new-version=0.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • Loading branch information
dependabot[bot] authored Sep 6, 2023
1 parent 74095ce commit d9f55dd
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ require (
github.com/rogpeppe/go-internal v1.11.0
github.com/stretchr/testify v1.8.4
go.uber.org/multierr v1.11.0
golang.org/x/tools v0.12.0
golang.org/x/tools v0.13.0
)

require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/sys v0.11.0 // indirect
golang.org/x/sys v0.12.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss=
golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
Expand Down

0 comments on commit d9f55dd

Please sign in to comment.