Skip to content

Commit

Permalink
Add docs for Go.Work Support
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanpenner authored and Stefan Penner committed May 7, 2024
1 parent 6a05f8d commit 8ff2753
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions docs/go/core/bzlmod.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,28 @@ go_deps.module(
)
```

#### Specifying Workspaces

The go.work functionality is supported by the go_deps module extension in Gazelle.

```starlark
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_work = "//:go.work")

# All *direct* Go dependencies of all `go.mod` files referenced by the `go.work` file have to be listed explicitly.
use_repo(
go_deps,
"com_github_gogo_protobuf",
"com_github_golang_mock",
"com_github_golang_protobuf",
"org_golang_x_net",
)
```

Limitations:
* **Root Module Only**: go.work is supported exclusively in the root module.
* **Cyclical Indirect Dependencies**: Dependencies that are indirect and themselves depend on a go module specified in go.work will have that dependency diverge from the one in go.work. More details can be found here: https://github.com/bazelbuild/bazel-gazelle/issues/1797.

#### Depending on tools

If you need to depend on Go modules that are only used as tools, you can use the [`tools.go` technique](https://github.com/golang/go/issues/25922#issuecomment-1038394599):
Expand Down

0 comments on commit 8ff2753

Please sign in to comment.