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: release version v0.15.3 #66730

Closed
7 tasks done
findleyr opened this issue Apr 8, 2024 · 11 comments
Closed
7 tasks done

x/tools/gopls: release version v0.15.3 #66730

findleyr opened this issue Apr 8, 2024 · 11 comments
Assignees
Labels
gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository.
Milestone

Comments

@findleyr
Copy link
Contributor

findleyr commented Apr 8, 2024

This issue tracks progress toward releasing gopls@v0.15.3

  • create or update gopls-release-branch.0.15
  • update go.mod/go.sum (remove x/tools replace, update x/tools version)
  • tag gopls/v0.15.3-pre.1
  • update Github milestone
  • write release notes
  • smoke test features
  • tag gopls/v0.15.3
@findleyr findleyr added gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository. labels Apr 8, 2024
@findleyr findleyr added this to the gopls/v0.15.3 milestone Apr 8, 2024
@findleyr findleyr self-assigned this Apr 8, 2024
@gopherbot
Copy link

Change https://go.dev/cl/577298 mentions this issue: all: add replace directive to help stage the v0.15.3 release

@gopherbot
Copy link

Change https://go.dev/cl/577297 mentions this issue: [gopls-release-branch.0.15] internal/imports: fix two "nil pointer in interface" bugs

gopherbot pushed a commit to golang/tools that referenced this issue Apr 8, 2024
For golang/go#66730

Change-Id: I2ca97b64212e0bff853893c4fe48013ea76cf7ca
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577298
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
gopherbot pushed a commit to golang/tools that referenced this issue Apr 8, 2024
… interface" bugs

CL 559635 changed newModuleResolver so that it can return
(nil, err). That means it is no longer safe to unconditionally
convert the first result to a Resolver interface, but we
forgot to check in two places, causing a crash that was
reported by telemetry.

This change adds the two checks.

Updates golang/go#66490
Updates golang/go#66730

Change-Id: I3f2b84ed792b1eea179fc0d4d5ee9843281506fc
Reviewed-on: https://go-review.googlesource.com/c/tools/+/574136
Reviewed-by: Peter Weinberger <pjw@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit 63b3b5a)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577297
Reviewed-by: Alan Donovan <adonovan@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/577261 mentions this issue: [gopls-release-branch.0.15] gopls/internal/server: filter diagnostics to "best" views

gopherbot pushed a commit to golang/tools that referenced this issue Apr 8, 2024
… to "best" views

Filter diagnostics only to the "best" view for a file. This reduces the
likelihood that we show spurious import diagnostics due to module graph
pruning, as reported by golang/go#66425.

Absent a reproducer this is hard to test, yet the change makes intuitive
sense (arguably): it is confusing if diagnostics are inconsistent with
other operations like jump-to-definition that find the "best" view.

Fixes golang/go#66425
Updates golang/go#66730

Change-Id: Iadb1a01518a30cc3dad2d412b1ded612ab35d6cc
Reviewed-on: https://go-review.googlesource.com/c/tools/+/574718
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit f345449)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577261
Auto-Submit: Robert Findley <rfindley@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/577301 mentions this issue: [gopls-release-branch.0.15] gopls/internal/cache: fix crash in snapshot.Analyze with patch versions

gopherbot pushed a commit to golang/tools that referenced this issue Apr 8, 2024
…ot.Analyze with patch versions

Fix the same crash as golang/go#66195, this time in Analyze: don't set
invalid Go versions on the types.Config.

The largest part of this change was writing a realistic test, since the
lack of a test for golang/go#66195 caused us to miss this additional
location. It was possible to create a test that worked, by using a flag
to select a go1.21 binary location.

For this test, it was required to move a couple additional integration
test preconditions into integration.Main (otherwise, the test would be
skipped due to the modified environment).

Updates golang/go#66636
Updates golang/go#66730

Change-Id: I24385474d4a6ebf6b7e9ae8f20948564bad3f55e
Reviewed-on: https://go-review.googlesource.com/c/tools/+/576135
Auto-Submit: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit c623a28)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577301
@gopherbot
Copy link

Change https://go.dev/cl/577302 mentions this issue: [gopls-release-branch.0.15] internal/check: filter out too-new Go versions for type checking

gopherbot pushed a commit to golang/tools that referenced this issue Apr 8, 2024
…sions for type checking

NOTE: Patched for the release branch to use versions.Compare rather than
versions.Before.

The type checker produces an error if the Go version is too new. When
compiled with Go 1.21, this error is silently dropped on the floor and
the type checked package is empty, due to golang/go##66525.

Guard against this very problematic failure mode by filtering out Go
versions that are too new. We should also produce a diagnostic, but that
is more complicated and covered by golang/go#61673.

Also: fix a bug where sandbox cleanup would fail due to being run with a
non-local toolchain.

Updates golang/go#66677
Updates golang/go#66730

Change-Id: Ia66f17c195382c9c55cf0ef883e898553ce950e3
Reviewed-on: https://go-review.googlesource.com/c/tools/+/576678
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit de6db98)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577302
@gopherbot
Copy link

Change https://go.dev/cl/577303 mentions this issue: [gopls-release-branch.0.15] gopls/internal/cache: avoid panic when the primary diagnostic is broken

gopherbot pushed a commit to golang/tools that referenced this issue Apr 8, 2024
…e primary diagnostic is broken

If the primary diagnostic has invalid position information (due to a bug
in the parser or AST fix logic), gopls may panics when linking primary
and related information. Avoid this panic.

Updates golang/go#66731
Updates golang/go#66730

Change-Id: Ie2f95d158a1c93d00603a7ce4d38d8097bd8cb08
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577259
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
(cherry picked from commit f41d27e)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577303
Auto-Submit: Robert Findley <rfindley@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/577595 mentions this issue: [gopls-release-branch.0.15] gopls/internal/cache: analysis: repair start/end and refine bug report

@gopherbot
Copy link

Change https://go.dev/cl/577596 mentions this issue: [gopls-release-branch.0.15] gopls/internal/cache: add debug assertions to refine golang/go#66732

gopherbot pushed a commit to golang/tools that referenced this issue Apr 9, 2024
…art/end and refine bug report

Poor parser error recovery may cause Node.End to be zero, or
a small positive displacement from zero due to recursive Node.End
computation (#66683).

This change further refines the bug.Reports for such problems,
and additionally repairs the values heuristically to avoid
downstream bug.Reports after toGobDiagnostics (#64547).

Updates golang/go#66683
Updates golang/go#64547
Updates golang/go#66730

Change-Id: I7c795622ec6b63574978d2953c82036fcc4425af
Reviewed-on: https://go-review.googlesource.com/c/tools/+/576655
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Robert Findley <rfindley@google.com>
(cherry picked from commit c7b6b8d)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577595
Auto-Submit: Alan Donovan <adonovan@google.com>
gopherbot pushed a commit to golang/tools that referenced this issue Apr 9, 2024
…s to refine golang/go#66732

Also, use go1.19 generic helpers for atomics.

Updates golang/go#66732
Updates golang/go#66730

Change-Id: I7aa447144353ff2ac5906ca746e2f98b115aa732
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577435
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Robert Findley <rfindley@google.com>
Auto-Submit: Alan Donovan <adonovan@google.com>
(cherry picked from commit f6298eb)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577596
@gopherbot
Copy link

Change https://go.dev/cl/577656 mentions this issue: gopls: update go.mod for v0.15.3-pre.1

gopherbot pushed a commit to golang/tools that referenced this issue Apr 9, 2024
Remove the replace directive and update x/tools.

For golang/go#66730

Change-Id: Icb7444a1ebeeeb8e95cc6639c4e6038a17a56735
Reviewed-on: https://go-review.googlesource.com/c/tools/+/577656
Reviewed-by: Alan Donovan <adonovan@google.com>
Auto-Submit: Robert Findley <rfindley@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
@gopherbot
Copy link

Change https://go.dev/cl/578040 mentions this issue: [gopls-release-branch.0.15] gopls/internal/server: don't reset views if configuration did not change

gopherbot pushed a commit to golang/tools that referenced this issue Apr 12, 2024
…if configuration did not change

In CL 538796, options were made immutable on the View, meaning any
change to options required a new View. As a result, the
minorOptionsChange heuristic, which avoided recreating views on certain
options changes, was removed.

Unfortunately, in golang/go#66647, it appears that certain clients may
send frequent didChangeConfiguration notifications. Presumably the
configuration is unchanged, and yet gopls still reinitializes the view.
This may be a cause of significant performance regression for these
clients.

Fix this by making didChangeConfiguration a no op if nothing changed,
using reflect.DeepEqual to compare Options. Since Hooks are not
comparable due to the GofumptFormat func value, they are excluded from
comparison. A subsequent CL will remove hooks altogether.

For golang/go#66647
Updates golang/go#66730

Change-Id: I280059953d6b128461bef1001da3034f89ba3226
Reviewed-on: https://go-review.googlesource.com/c/tools/+/578037
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
(cherry picked from commit e388fff)
Reviewed-on: https://go-review.googlesource.com/c/tools/+/578040
@gopherbot
Copy link

Change https://go.dev/cl/578321 mentions this issue: gopls: update go.mod for v0.15.3-pre.2

gopherbot pushed a commit to golang/tools that referenced this issue Apr 12, 2024
Remove the replace directive and update x/tools.

For golang/go#66730

Change-Id: I012605bf892ba8ca86b9c068832117c68fb68928
Reviewed-on: https://go-review.googlesource.com/c/tools/+/578321
Reviewed-by: Alan Donovan <adonovan@google.com>
Auto-Submit: Robert Findley <rfindley@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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

2 participants