Skip to content

Releases: bazelbuild/bazel-gazelle

v0.28.0

26 Oct 21:32
0e33093
Compare
Choose a tag to compare

What's Changed

  • language/proto: gen_known_imports creates structs instead of function calls by @eric-skydio in #1333
  • Add DoneGeneratingRules language hook by @illicitonion in #1325
  • Allow configuring timeout of generation tests by @illicitonion in #1324
  • bug: Allow user-specified tags on gazelle rule by @Helcaraxan in #1308
  • Replace _get_auth with Bazel's read_user_netrc by @linzhp in #1338
  • language/go should consider default_visibility set by OtherGen (#783) by @dnathe4th in #1341
  • fix: pass visibility attribute for gazelle macro to resulting sh_binary by @cgrindel in #1340
  • Add additional bzlmod requirements to allow grpc protobufs to work by @shs96c in #1345
  • bzlmod: Simplify go_grpc_library support by @fmeum in #1346
  • bzlmod: Add support for custom go_proto_library compilers by @fmeum in #1348
  • Add visibility extension to support recursive default_visibility (#783) by @dnathe4th in #1343
  • Make gazelle_generation_test respect out suffix when generating golden files by @blorente in #1352
  • Add size argument to gazelle_generation_test by @charlesoconor in #1351

New Contributors

Full Changelog: v0.27.0...v0.28.0

v0.27.0

14 Sep 19:56
06b821c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.26.0...v0.27.0

v0.26.0

26 Jun 20:22
530a2c7
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.25.0...v0.26.0

WORKSPACE code

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

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

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

############################################################
# Define your own dependencies here using go_repository.
# Else, dependencies declared by rules_go/gazelle will be used.
# The first declaration of an external repository "wins".
############################################################

gazelle_dependencies()

v0.25.0

23 Mar 23:00
6473a8b
Compare
Choose a tag to compare

Go changes

  • Introduce static dependency resolution mode which prevents Gazelle from calling out the network. go_repository rules now default to this mode, showing significant performance improvements for some repo rules by @blico in #1201
  • go_repository rules no longer log Gazelle warnings, unless debug mode is explictly set by @blico in #1205
  • Support canonical_id attribute for go_repository by @kmicklas in #1121

Proto changes

  • Add per-file mode for proto_library generation by @wolfd in #1033

General changes

Full Changelog: v0.24.0...v0.25.0

WORKSPACE code

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

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

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

############################################################
# Define your own dependencies here using go_repository.
# Else, dependencies declared by rules_go/gazelle will be used.
# The first declaration of an external repository "wins".
############################################################

gazelle_dependencies()

v0.24.0

11 Oct 21:17
3ea1d64
Compare
Choose a tag to compare

This release requires rules_go 0.29 to support the retirement of go_tool_library.

IMPORTANT

This release includes many new dependencies. Please be sure that your own workspace's dependencies are declared PRIOR to gazelle_dependencies(), or else they may be overridden. See the prompt block comment in the boilerplate below.

Changes

  • .netrc files are now supported for authenticated access for go_repository rules (#1090)
  • There is now a Gazelle extension for authoring BUILD files for the R language, using rules_r.

Fixes

  • language/go: don't let 'go mod download' edit go.sum by @jayconrod in #1015
  • Label fix: properly parse external references to the main repository by @tfrench-uber in #1006
  • gazelle: add -e flag for go list 1.16 by @axelberardino in #1019
  • Correctly propagate runfiles from gazelle_bin to gazelle by @HALtheWise in #1008
  • Support Label @repo -> @repo//:repo shorthand by @wolfd in #1023
  • language/go: rewrite embedResolver to use a tree structure by @jayconrod in #1024
  • Respect .bazelignore by @Michaelhobo in #1022
  • Change merge behavior to remove attrs instead of panicking by @wolfd in #1031
  • Allow ListRepositories to load macros not in Workspace by @tfrench-uber in #1053
  • Honor host GOMODCACHE when GO_REPOSITORY_USE_HOST_CACHE by @linzhp in #1069
  • language/go: add golang.org/x/tools/internal/typeparams to nogo deps list by @jayconrod in #1074
  • Fix "exclude" token parsing by @gibfahn in #1073
  • Have label properly resolve directives starting with "@//" by @tfrench-uber in #1086
  • Correctly propagate runfiles from data dependencies to gazelle by @alexeagle in #1094
  • Add bzl_library targets to Gazelle by @achew22 in #760
  • Escape vars in cgo flags with an extra $ by @dierksen in #1107
  • autogazelle can build on windows by @asuffield in #1083
  • and many documentation updates by @tanyabouman

Full Changelog: v0.23.0...v0.24.0

WORKSPACE code

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

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

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

############################################################
# Define your own dependencies here using go_repository.
# Else, dependencies declared by rules_go/gazelle will be used.
# The first declaration of an external repository "wins".
############################################################

gazelle_dependencies()

v0.23.0

08 Mar 20:39
e909144
Compare
Choose a tag to compare
v0.23.0 Pre-release
Pre-release

Changes

  • Go
    • CXXFLAGS and CPPFLAGS #cgo directives are separated into cxxopts and cppopts attributes, respectively. Thanks @otan.
    • Dependencies on mapped kinds are now supported. Thanks @robfig.
    • The gazelle rule now supports the update-repos command.
    • The gazelle rule now has a data attribute and expands $(location) within arguments.
    • go_repository's build_naming_convention is now considered when resolving external dependencies. If a repository already has build files, this attribute may be set to indicate which naming convention it follows.
    • embedsrcs attributes are generated for packages that contain //go:embed directives.
  • Protobuf
    • proto_strip_import_prefix may be set in the root build file. Thanks @linzhp.

WORKSPACE code

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

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

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

gazelle_dependencies()

v0.22.3

23 Dec 19:09
Compare
Choose a tag to compare
v0.22.3 Pre-release
Pre-release

Bug fixes

  • -mode=diff treats empty build files correctly. (thanks @vpanta)
  • Gazelle should walk subdirectories more quickly when indexing is disabled. (thanks @blico)
  • Fixed dependency resolution with mapped kinds. (thanks @robfig)
  • Compatibility fixes for Go 1.16.

WORKSPACE code

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

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

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()