Skip to content

Releases: bazel-contrib/bazel-gazelle

v0.22.2

02 Oct 21:28
Compare
Choose a tag to compare
v0.22.2 Pre-release
Pre-release

Compatibility

  • Gazelle no longer depends on the deprecated go_rule function from rules_go, which will be removed in 0.25. This should improve compatibility with future versions.

WORKSPACE code

http_archive(
    name = "bazel_gazelle",
    sha256 = "b85f48fa105c4403326e9525ad2b2cc437babaa6e15a3fc0b1dbab0ab064bc7c",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.2/bazel-gazelle-v0.22.2.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.2/bazel-gazelle-v0.22.2.tar.gz",
    ],
)

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()

v0.22.1

22 Sep 21:48
Compare
Choose a tag to compare
v0.22.1 Pre-release
Pre-release

Bug fixes

Go

  • The version of rules_go may now be inferred from WORKSPACE if the repository io_bazel_rules_go hasn't been fetched yet.
  • The gazelle_binary rule should now work correctly with previous versions of rules_go.
  • In the import and import_alias naming conventions, dots will be replaced with underscores in generated test names. This avoids generating targets that have the same names as source files.
  • update-repos -from_file=go.mod should no longer fail mysteriously when go.mod has a replace directive that uses a relative path. Local replacements are still not supported though. (thanks @dragonsinth)

WORKSPACE code

http_archive(
    name = "bazel_gazelle",
    sha256 = "72d339ff874a382f819aaea80669be049069f502d6c726a07759fdca99653c48",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.1/bazel-gazelle-v0.22.1.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.1/bazel-gazelle-v0.22.1.tar.gz",
    ],
)

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()

v0.22.0

27 Aug 20:24
91bbcd9
Compare
Choose a tag to compare
v0.22.0 Pre-release
Pre-release

Changes

  • The Go extension can now generate targets with a new naming convention.
    • In new projects, by default, a library will be named foo if its import path ends with foo instead of go_default_library. Similarly, a test will be named foo_test instead of go_default_test.
    • Gazelle will attempt to detect the naming convention used in existing projects, so it shouldn't unexpectedly change the naming convention.
    • To specify the naming convention explicitly, use the # gazelle:go_naming_convention directive or the -go_naming_convention flag. Valid values are import, go_default_library, and import_alias. Gazelle will rename existing targets the next time it runs after a change.
    • go_repository uses the import_alias naming convention by default, so either the old or new names may be used.
    • Thanks to @tomlu for implementing this.
  • Added # gazelle:go_generate_proto directive, which instructs the Go extension whether to generate go_proto_library rules for proto_library generated by the proto extension (thanks @linzhp).
  • Improved Windows compatibility (thanks @tomlu).
  • Language extensions can now provide dependency resolution for other extensions by implementing the resolve.CrossResolver interface. This is now used for resolve proto imports in Go (thanks @blico).
  • In the update-repos command, the -build_directives flag may be used to set the build_directives attribute on generated repositories (thanks @Helcaraxan).
  • In the update-repos command, new rules and macros will be inserted higher in WORKSPACE, above go_rules_dependencies and gazelle_dependencies if possible, to make it easier to override indirect dependencies.

Compatibility

  • gazelle_binary no longer supports mode attributes such as goos, race, and gotags. These depended on internal implementation details in rules_go. If you need to build a gazelle_binary for a platform other than the host, use command-line flags such as --platforms and --@io_bazel_rules_go//go/config:race or use a transition.

WORKSPACE code

http_archive(
    name = "bazel_gazelle",
    sha256 = "d4113967ab451dd4d2d767c3ca5f927fec4b30f3b2c6f8135a2033b9c05a5687",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.0/bazel-gazelle-v0.22.0.tar.gz",
        "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.0/bazel-gazelle-v0.22.0.tar.gz",
    ],
)

load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()

v0.21.1

28 May 16:37
Compare
Choose a tag to compare
v0.21.1 Pre-release
Pre-release

Bug fixes

  • Fixed visibility for Go libraries in internal directories. Previously,
    internal visibility was applied to packages in subdirectories of internal,
    directories, not internal directories themselves. Thanks to @robfig.
  • go_repository no longer runs cat, and genrules are replaced with native
    rules to reduce dependence on msys2 on Windows. Thanks to @tomlu.
  • Cases in select expressions are no longer emitted for platforms that aren't
    supported by the current version of rules_go.

v0.21.0

13 May 22:00
7771f2f
Compare
Choose a tag to compare
v0.21.0 Pre-release
Pre-release
  • # gazelle:exclude directives now accept patterns with * and ** wildcards. (thanks @kalbasit)
  • The -lang flag may now be used to select which language extensions should be run. By default, all extensions Gazelle was built with will run. (thanks @robfig)
  • Attribute matching now works on string slice attributes, not just strings. This is now used to match proto_library rules with one or more sources in common with the generated rule, even if the rule has been renamed. (thanks @linzhp)
  • Many bugs have been fixed. Thanks to everyone who helped out!

v0.20.0

06 Feb 18:29
9b9f022
Compare
Choose a tag to compare
v0.20.0 Pre-release
Pre-release

General changes

  • When update-repos is invoked with -to_macro, Gazelle will add a call to the macro and a # gazelle:repository_macro directive to WORKSPACE if neither is present.

Go changes

  • Gazelle will avoid generating duplicate go_repository rules when two module paths differ only in case. Thanks to @linzhp.
  • When deriving a repository name from an import path, all non-word characters will be replaced with underscores, not just dots and slashes. Consecutive non-word characters will be collapsed to a single underscore. Thanks to @carnott-snap.
  • Imported repository rules are now sorted.

Proto changes

  • Gazelle will add load statements for proto_library to comply with --incompatible_load_proto_rules_from_bzl. Thanks to @Yannic.
  • Fixed a bug recognizing services in .proto files. Thanks to @asv.

v0.19.1

07 Nov 23:01
Compare
Choose a tag to compare
v0.19.1 Pre-release
Pre-release

Changes

  • Rule names are now included in go_repository stderr output.
  • Environment variables SSL_CERT_FILE and SSL_CERT_DIR are passed through to tools used by go_repository.
  • The list of standard packages is correctly updated for Go 1.13.

v0.19.0

14 Oct 21:06
bcfbdcb
Compare
Choose a tag to compare
v0.19.0 Pre-release
Pre-release

General changes

  • The # gazelle:repository directive is now supported in WORKSPACE files. Gazelle will behave as if a repository rule were declared with the given kind and attributes. This may override other declared rules. This is useful for declaring rules that appear in other files and can't be managed with #gazelle:repository_macro. Thanks to @blico.
  • The update-repos command now accepts versions for each argument, for example, update-repos github.com/sirupsen/[email protected]. For Go, the version suffixes follow the same format that go get accepts in module mode. Thanks to @weixiao-huang.

Go changes

  • go_repository has better support for visibility across submodules. For example, cloud.google.com/logging may now depend on internal packages in cloud.google.com, when both modules are unmodified go_repository rules. Previously, this required visibility attributes to be patched into the parent module.
  • go_repository now handles WORKSPACE-based configuration more efficiently. A configuration file is derived from the relevant parts of WORKSPACE and any functions declared with # gazelle:repository_macro. go_repository rules are re-evaluated when the configuration file changes, not when WORKSPACE changes. Previously, non-Go-related changes to WORKSPACE would cause go_repository to be re-evaluated. Thanks to @blico.
  • go_repository now accepts a build_directives attribute, a list of directives to write into the root build file before running Gazelle. Thanks to @linzhp.
  • The # gazelle:go_visibility directive may be used to add labels to visibility attributes of Go rules. Thanks to @linzhp.
  • Generated .go files are no longer included in go_library srcs if they are consumed by another rule through the src or srcs attributes. Thanks to @linzhp.

Proto changes

  • Updated dependency resolution tables for know protos.

0.18.2

23 Aug 17:05
Compare
Choose a tag to compare
0.18.2 Pre-release
Pre-release

Changes

  • Fixed an error that occurred when linking gazelle_binary rules in Go 1.13.
  • Several other small bug fixes.

0.18.1

16 Jul 22:51
8a0f108
Compare
Choose a tag to compare
0.18.1 Pre-release
Pre-release

This release is a quick fix to address an issue with go_repository on Windows.