diff --git a/MODULE.bazel b/MODULE.bazel index c5a6cf3b..0d9b0030 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -8,8 +8,8 @@ print("WARNING: The `bob-build` Bazel module is still highly experimental and su bazel_dep(name = "bazel_skylib", version = "1.3.0") bazel_dep(name = "rules_multirun", version = "0.6.0") -bazel_dep(name = "rules_go", version = "0.39.1", repo_name = "io_bazel_rules_go") -bazel_dep(name = "gazelle", version = "0.30.0", repo_name = "bazel_gazelle") +bazel_dep(name = "rules_go", version = "0.41.0", repo_name = "io_bazel_rules_go") +bazel_dep(name = "gazelle", version = "0.32.0", repo_name = "bazel_gazelle") bazel_dep(name = "rules_python", version = "0.20.0") go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk") @@ -69,6 +69,8 @@ go_deps.module( ) use_repo( go_deps, + "com_github_davecgh_go_spew", + "com_github_stretchr_objx", "com_github_stretchr_testify", "in_gopkg_yaml_v3", ) diff --git a/gazelle/MODULE.bazel b/gazelle/MODULE.bazel index 7a6b13f7..943f9e8d 100644 --- a/gazelle/MODULE.bazel +++ b/gazelle/MODULE.bazel @@ -13,8 +13,8 @@ local_path_override( bazel_dep(name = "bob-build", version = "0.0.1", repo_name = "bob") bazel_dep(name = "bazel_skylib", version = "1.3.0") -bazel_dep(name = "rules_go", version = "0.39.1", repo_name = "io_bazel_rules_go") -bazel_dep(name = "gazelle", version = "0.30.0", repo_name = "bazel_gazelle") +bazel_dep(name = "rules_go", version = "0.41.0", repo_name = "io_bazel_rules_go") +bazel_dep(name = "gazelle", version = "0.32.0", repo_name = "bazel_gazelle") go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk") @@ -24,6 +24,7 @@ go_sdk.download( ) go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps") +go_deps.from_file(go_mod = "//:go.mod") use_repo( go_deps, "com_github_bazelbuild_buildtools", diff --git a/gazelle/WORKSPACE b/gazelle/WORKSPACE index 0283be2e..8eab59ac 100644 --- a/gazelle/WORKSPACE +++ b/gazelle/WORKSPACE @@ -15,19 +15,19 @@ bazel_skylib_workspace() http_archive( name = "io_bazel_rules_go", - sha256 = "56d8c5a5c91e1af73eca71a6fab2ced959b67c86d12ba37feedb0a2dfea441a6", + sha256 = "278b7ff5a826f3dc10f04feaf0b70d48b68748ccd512d7f98bf442077f043fe3", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip", - "https://github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip", + "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.41.0/rules_go-v0.41.0.zip", + "https://github.com/bazelbuild/rules_go/releases/download/v0.41.0/rules_go-v0.41.0.zip", ], ) http_archive( name = "bazel_gazelle", - sha256 = "448e37e0dbf61d6fa8f00aaa12d191745e14f07c31cabfa731f0c8e8a4f41b97", + sha256 = "29218f8e0cebe583643cbf93cae6f971be8a2484cdcfa1e45057658df8d54002", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.28.0/bazel-gazelle-v0.28.0.tar.gz", - "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.27.0/bazel-gazelle-v0.28.0.tar.gz", + "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.32.0/bazel-gazelle-v0.32.0.tar.gz", + "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.32.0/bazel-gazelle-v0.32.0.tar.gz", ], ) diff --git a/gazelle/go.mod b/gazelle/go.mod index 6983ec78..6af1bb57 100644 --- a/gazelle/go.mod +++ b/gazelle/go.mod @@ -2,4 +2,6 @@ module plugin go 1.18 -require github.com/bazelbuild/bazel-gazelle v0.29.0 // indirect +require github.com/bazelbuild/buildtools v0.0.0-20230510134650-37bd1811516d +require github.com/stretchr/testify v1.6.0 +require github.com/bazelbuild/bazel-gazelle v0.32.0 // indirect diff --git a/gazelle/tests/load_statement/BUILD.in b/gazelle/tests/load_statement/BUILD.in new file mode 100644 index 00000000..ef1ab9fc --- /dev/null +++ b/gazelle/tests/load_statement/BUILD.in @@ -0,0 +1 @@ +# gazelle:bob_root diff --git a/gazelle/tests/load_statement/BUILD.out b/gazelle/tests/load_statement/BUILD.out new file mode 100644 index 00000000..6a42ec3b --- /dev/null +++ b/gazelle/tests/load_statement/BUILD.out @@ -0,0 +1,60 @@ +load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") +load("@bazel_skylib//lib:selects.bzl", "selects") + +# gazelle:bob_root + +bool_flag( + name = "feature_a", + build_setting_default = False, +) + +config_setting( + name = "config_feature_a", + flag_values = { + ":feature_a": "true", + }, +) + +bool_flag( + name = "feature_b", + build_setting_default = True, +) + +config_setting( + name = "config_feature_b", + flag_values = { + ":feature_b": "true", + }, +) + +# depends on: [//:feature_a && //:feature_b] +bool_flag( + name = "needs_deps", + build_setting_default = False, +) + +config_setting( + name = "interim_config_needs_deps", + flag_values = { + ":needs_deps": "true", + }, +) + +# autogenerated for internal use only +selects.config_setting_group( + name = "needs_deps_and_0", + match_all = [ + "//:config_feature_a", + "//:config_feature_b", + ], + visibility = ["//visibility:private"], +) + +selects.config_setting_group( + name = "config_needs_deps", + match_all = [ + ":interim_config_needs_deps", + ":needs_deps_and_0", + ], + visibility = [":__subpackages__"], +) diff --git a/gazelle/tests/load_statement/Mconfig b/gazelle/tests/load_statement/Mconfig new file mode 100644 index 00000000..b5b2a637 --- /dev/null +++ b/gazelle/tests/load_statement/Mconfig @@ -0,0 +1,11 @@ +config FEATURE_A + bool "Enable Feature A" + default n + +config FEATURE_B + bool "Enable Feature B" + default y + +config NEEDS_DEPS + bool "need additional dependencies" + depends on FEATURE_A && FEATURE_B diff --git a/gazelle/tests/load_statement/WORKSPACE b/gazelle/tests/load_statement/WORKSPACE new file mode 100644 index 00000000..e69de29b diff --git a/gazelle/tests/load_statement/build.bp b/gazelle/tests/load_statement/build.bp new file mode 100644 index 00000000..7d681051 --- /dev/null +++ b/gazelle/tests/load_statement/build.bp @@ -0,0 +1 @@ +// Main build file diff --git a/gazelle/tests/load_statement/expectedStderr.txt b/gazelle/tests/load_statement/expectedStderr.txt new file mode 100644 index 00000000..b6f88269 --- /dev/null +++ b/gazelle/tests/load_statement/expectedStderr.txt @@ -0,0 +1,13 @@ +gazelle: RegisterFlags() - NOT IMPLEMENTED +gazelle: CheckFlags() - NOT IMPLEMENTED +gazelle: Fix() - NOT IMPLEMENTED +gazelle: Imports() - NOT IMPLEMENTED +gazelle: Imports() - NOT IMPLEMENTED +gazelle: Imports() - NOT IMPLEMENTED +gazelle: Imports() - NOT IMPLEMENTED +gazelle: Imports() - NOT IMPLEMENTED +gazelle: Resolve() - NOT IMPLEMENTED +gazelle: Resolve() - NOT IMPLEMENTED +gazelle: Resolve() - NOT IMPLEMENTED +gazelle: Resolve() - NOT IMPLEMENTED +gazelle: Resolve() - NOT IMPLEMENTED diff --git a/gazelle/tests/load_statement/expectedStdout.txt b/gazelle/tests/load_statement/expectedStdout.txt new file mode 100644 index 00000000..e69de29b diff --git a/gazelle/tests/map_kinds/BUILD.in b/gazelle/tests/map_kinds/BUILD.in new file mode 100644 index 00000000..02d1f4c5 --- /dev/null +++ b/gazelle/tests/map_kinds/BUILD.in @@ -0,0 +1,2 @@ +# gazelle:bob_root +# gazelle:map_kind config_setting my_config_setting //tools/bob:def.bzl diff --git a/gazelle/tests/map_kinds/BUILD.out b/gazelle/tests/map_kinds/BUILD.out new file mode 100644 index 00000000..55acbe3e --- /dev/null +++ b/gazelle/tests/map_kinds/BUILD.out @@ -0,0 +1,29 @@ +load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") +load("//tools/bob:def.bzl", "my_config_setting") + +# gazelle:bob_root +# gazelle:map_kind config_setting my_config_setting //tools/bob:def.bzl + +bool_flag( + name = "feature_a", + build_setting_default = False, +) + +my_config_setting( + name = "config_feature_a", + flag_values = { + ":feature_a": "true", + }, +) + +bool_flag( + name = "feature_b", + build_setting_default = True, +) + +my_config_setting( + name = "config_feature_b", + flag_values = { + ":feature_b": "true", + }, +) diff --git a/gazelle/tests/map_kinds/Mconfig b/gazelle/tests/map_kinds/Mconfig new file mode 100644 index 00000000..8201fb36 --- /dev/null +++ b/gazelle/tests/map_kinds/Mconfig @@ -0,0 +1,7 @@ +config FEATURE_A + bool "Enable Feature A" + default n + +config FEATURE_B + bool "Enable Feature B" + default y diff --git a/gazelle/tests/map_kinds/WORKSPACE b/gazelle/tests/map_kinds/WORKSPACE new file mode 100644 index 00000000..e69de29b diff --git a/gazelle/tests/map_kinds/build.bp b/gazelle/tests/map_kinds/build.bp new file mode 100644 index 00000000..7d681051 --- /dev/null +++ b/gazelle/tests/map_kinds/build.bp @@ -0,0 +1 @@ +// Main build file diff --git a/gazelle/tests/map_kinds/expectedStderr.txt b/gazelle/tests/map_kinds/expectedStderr.txt new file mode 100644 index 00000000..2d8db72c --- /dev/null +++ b/gazelle/tests/map_kinds/expectedStderr.txt @@ -0,0 +1,7 @@ +gazelle: RegisterFlags() - NOT IMPLEMENTED +gazelle: CheckFlags() - NOT IMPLEMENTED +gazelle: Fix() - NOT IMPLEMENTED +gazelle: Imports() - NOT IMPLEMENTED +gazelle: Imports() - NOT IMPLEMENTED +gazelle: Resolve() - NOT IMPLEMENTED +gazelle: Resolve() - NOT IMPLEMENTED diff --git a/gazelle/tests/map_kinds/expectedStdout.txt b/gazelle/tests/map_kinds/expectedStdout.txt new file mode 100644 index 00000000..e69de29b