commit | 90b15211382ca10bd3256b17a6d9cc02da169d6a | [log] [tgz] |
---|---|---|
author | Michael Matloob <matloob@golang.org> | Thu Apr 18 18:04:54 2024 -0400 |
committer | Michael Matloob <matloob@golang.org> | Wed May 15 16:04:44 2024 +0000 |
tree | 1298c0b821c1fb9f90c286615828fa4f81e66b1b | |
parent | 18d0e6a14f0de7fe1a32799f3d0982c274b3c091 [diff] |
cmd/go/internal/modload: compute direct in workspace mode The Requirements structure, which represents the root level requirements of the module graph also has a 'direct' field which contains the set of direct dependencies of a module. Before this change, in workspace mode, the direct field was not set on the Requirements structure. This change sets direct in the two places it's needed: when initializing Requirements from the workspace's mod files and when updating Requirements based on imports. When initializing Requirements from the workspace's mod files, this change will use the 'indirect' comments in those mod files to record the set of direct modules passed to the Requirements. There is a loop in updateRequirements where we consider the imports of the packages we loaded from the main module to make sure that all those imported packages' modules are required. The loop also updates direct for each of those modules (which have at least one package directly imported by the main modules). Before this change, in the workspace case we continued early from the loop and didn't proceed to the code where direct is computed. This change fixes that. Fixes #66789 Change-Id: I2b497fbf28c2197e8ba8e8ca5314c1a720f16364 Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-windows-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/580256 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Alan Donovan <adonovan@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 4.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://go.dev/dl/.
After downloading a binary release, visit https://go.dev/doc/install for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://go.dev/doc/install/source for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines at https://go.dev/doc/contribute.
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://go.dev/wiki/Questions for a list of places to ask questions about the Go language.