Releases: bazel-contrib/bazel-gazelle
Releases · bazel-contrib/bazel-gazelle
v0.24.0
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
Changes
- Go
CXXFLAGS
andCPPFLAGS
#cgo
directives are separated intocxxopts
andcppopts
attributes, respectively. Thanks @otan.- Dependencies on mapped kinds are now supported. Thanks @robfig.
- The
gazelle
rule now supports theupdate-repos
command. - The
gazelle
rule now has adata
attribute and expands$(location)
within arguments. go_repository
'sbuild_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
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
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
Bug fixes
Go
- The version of rules_go may now be inferred from
WORKSPACE
if the repositoryio_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
andimport_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 whengo.mod
has areplace
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
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 withfoo
instead ofgo_default_library
. Similarly, a test will be namedfoo_test
instead ofgo_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 areimport
,go_default_library
, andimport_alias
. Gazelle will rename existing targets the next time it runs after a change. go_repository
uses theimport_alias
naming convention by default, so either the old or new names may be used.- Thanks to @tomlu for implementing this.
- In new projects, by default, a library will be named
- Added
# gazelle:go_generate_proto
directive, which instructs the Go extension whether to generatego_proto_library
rules forproto_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 thebuild_directives
attribute on generated repositories (thanks @Helcaraxan). - In the
update-repos
command, new rules and macros will be inserted higher inWORKSPACE
, abovego_rules_dependencies
andgazelle_dependencies
if possible, to make it easier to override indirect dependencies.
Compatibility
gazelle_binary
no longer supports mode attributes such asgoos
,race
, andgotags
. These depended on internal implementation details in rules_go. If you need to build agazelle_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
Bug fixes
- Fixed visibility for Go libraries in
internal
directories. Previously,
internal visibility was applied to packages in subdirectories ofinternal
,
directories, notinternal
directories themselves. Thanks to @robfig. go_repository
no longer runscat
, andgenrules
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
# 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
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
v0.19.1
Changes
- Rule names are now included in
go_repository
stderr output. - Environment variables
SSL_CERT_FILE
andSSL_CERT_DIR
are passed through to tools used bygo_repository
. - The list of standard packages is correctly updated for Go 1.13.