Features
- Completed a major refactoring of Gazelle. All language-specific logic has moved into extensions that implement the internal/languages.Language interface. go and proto are now supported through separate extensions. This will enable Gazelle to support more languages in the future.
- If you're interested in extending Gazelle, please file an issue or get in touch with me directly.
- Added special cases for proto dependency resolution, both for Go and proto imports. Imports of Google APIs will now resolve to the new
@go_googleapis
repository.- There were already special cases for Well Known Types. That logic is modified and extended.
- Added two new proto modes. These can be set with the
-proto=mode
flag on the command line or the# gazelle:proto mode
directive in build files or withbuild_file_proto_mode = "mode"
ingo_repository
.disable_global
- Likedisable
mode, Gazelle won't generate, update, or delete existingproto_library
orgo_proto_library
rules. In addition, special cases for proto dependency resolution (for Well Known Types and Google APIs) are disabled. This is useful if you build libraries using pre-generated .pb.go files and don't want any build-time dependency on protoc.package
- Gazelle may generateproto_library
andgo_proto_library
rules for multiple packages in the same directory. .proto files are grouped into packages using either the declared proto package or an option specified by# gazelle:proto_group opt
, e.g.,go_package
.
- The
git_repository
andhttp_archive
no longer rely on acp
executable to copy files. This improves Windows compatibility (thanks @pmuetschard). - Several more fixes related to paths for Windows compatibility (thanks @pmuetschard).
race
andmsan
tags are now ignored. Sources files will be included in rules whether these flags are true or false.