Managing Go Dependencies
Third party go libraries are managed by go mod and bazel mod.
Add / Remove 3rd party libraries
- Add / Remove import in .go files
- run 'go mod tidy' in /go directory
- This command will add or remove 3rd party libraries to go.mod file based on the "import" of all the .go files in /go directory
- go.sum is the checksum of go.mod file
- run 'bazel mod tidy' in root directory if needed
- After running 'go mod tidy', if the go.mod file is updated (some dependencies are changed), the command will prompt you to to run 'bazel mod tidy'
- bazel mod tidy will update MODULE.bazel file in root directory
- commit the updated go.mod, go.sum, MODULE.bazel files
Add libraries that are not imported by any .go file
For the libraries that are needed by 1) go tools in /tools directory, or 2) go code generated by protobuf compiler, but are not imported by any .go files in /go directory, you have to import the library to go/tools.go file.
Import the libraries with _ alias in go/tools.go file (there are already some examples in the file), and then follow the 1-4 steps above to update go.mod, go.sum, MODULE.bazel files