|
| 1 | +# cmd/gazelle |
| 2 | + |
| 3 | +This is essentially a copy of the files in bazelbuild/bazel-gazelle/cmd/gazelle. |
| 4 | + |
| 5 | +To upgrade gazelle, one must: |
| 6 | + |
| 7 | +- `go get` the correct version and update `go.mod` file |
| 8 | +- `make tidy` to propagate changes to `go.sum` and `go_repositories.bzl`. |
| 9 | +- update the version of @bazel_gazelle in `deps/BUILD.bazel`, then run `make |
| 10 | + deps` to regenerate the actual deps tree. |
| 11 | +- Compare changes in the source repo to the files here. It's easiest to just |
| 12 | + copy over each file and see where the diffs are. Make sure `langs.go` |
| 13 | + includes the `github.com/stackb/rules_proto/language/protobuf`. Internal |
| 14 | + packages referenced must also be copied over (ugh). There's probably a more elegant solution to keeping a modified copy of gazelle binary here. |
| 15 | +- Since the `proto_gazelle.bzl` rule uses |
| 16 | + `@bazel_gazelle//internal:gazelle.bash.in`, changes there must remain |
| 17 | + compatible with proto_gazelle. Look at the diff there and make sure the proto_gazelle_impl is satifying the needs of that template. |
| 18 | +- Remember that this `cmd/gazelle` must be buildable via the standard go |
| 19 | + toolchain (see proto_repository_tools.bzl): |
| 20 | + |
| 21 | +```py |
| 22 | + args = [ |
| 23 | + go_tool, |
| 24 | + "install", |
| 25 | + "-ldflags", |
| 26 | + "-w -s", |
| 27 | + "-gcflags", |
| 28 | + "all=-trimpath=" + env["GOPATH"], |
| 29 | + "-asmflags", |
| 30 | + "all=-trimpath=" + env["GOPATH"], |
| 31 | + "github.com/stackb/rules_proto/cmd/gazelle", |
| 32 | + ] |
| 33 | + result = env_execute(ctx, args, environment = env) |
| 34 | + if result.return_code: |
| 35 | + fail("failed to build tools: " + result.stderr) |
| 36 | +``` |
| 37 | + |
| 38 | +So any and all deps must be in the vendor tree. |
0 commit comments