Releases: bazel-contrib/bazel-gazelle
Releases · bazel-contrib/bazel-gazelle
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.
v0.19.0
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 thatgo 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 incloud.google.com
, when both modules are unmodifiedgo_repository
rules. Previously, this requiredvisibility
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 causego_repository
to be re-evaluated. Thanks to @blico.go_repository
now accepts abuild_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 thesrc
orsrcs
attributes. Thanks to @linzhp.
Proto changes
- Updated dependency resolution tables for know protos.