From 4fc1bc67ed709df147991114696abbf59d6481a1 Mon Sep 17 00:00:00 2001 From: Xavier Bonaventura Date: Sun, 24 Apr 2022 14:52:20 +0200 Subject: [PATCH 1/3] Flip disallow empty glob --- .../build/lib/packages/semantics/BuildLanguageOptions.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java index 658c5f5ec6e58d..f3e4c1ab86fe61 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java +++ b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java @@ -422,7 +422,7 @@ public final class BuildLanguageOptions extends OptionsBase { @Option( name = "incompatible_disallow_empty_glob", - defaultValue = "false", + defaultValue = "true", category = "incompatible changes", documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS, effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS}, @@ -902,7 +902,7 @@ public StarlarkSemantics toStarlarkSemantics() { "+incompatible_depset_for_libraries_to_link_getter"; public static final String INCOMPATIBLE_DISABLE_TARGET_PROVIDER_FIELDS = "-incompatible_disable_target_provider_fields"; - public static final String INCOMPATIBLE_DISALLOW_EMPTY_GLOB = "-incompatible_disallow_empty_glob"; + public static final String INCOMPATIBLE_DISALLOW_EMPTY_GLOB = "+incompatible_disallow_empty_glob"; public static final String INCOMPATIBLE_DISALLOW_STRUCT_PROVIDER_SYNTAX = "-incompatible_disallow_struct_provider_syntax"; public static final String INCOMPATIBLE_PACKAGE_GROUP_HAS_PUBLIC_SYNTAX = From 5d2cea66f00bd8f45f612649f72b519868e9ac61 Mon Sep 17 00:00:00 2001 From: Xavier Bonaventura Date: Tue, 16 Jan 2024 21:46:39 +0100 Subject: [PATCH 2/3] Be explicit about allowing empty glob Same BUILD file is used with data-1 and without data-1. In the first bazel build data-1 is not there and the glob is empty. In the second one, data-1 is there and it is not empty. --- src/test/shell/bazel/runfiles_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/shell/bazel/runfiles_test.sh b/src/test/shell/bazel/runfiles_test.sh index 0bec82f20bf690..086fe19d59316b 100755 --- a/src/test/shell/bazel/runfiles_test.sh +++ b/src/test/shell/bazel/runfiles_test.sh @@ -246,7 +246,7 @@ function test_switch_runfiles_from_enabled_to_disabled { sh_binary( name = "cmd", srcs = ["cmd.sh"], - data = glob(["data-*"]), + data = glob(["data-*"], allow_empty = True), ) genrule( name = "g", From 7b11daf3cfd0c2182e46fed1f4f4f3bdc44507c9 Mon Sep 17 00:00:00 2001 From: Xavier Bonaventura Date: Wed, 17 Jan 2024 19:02:21 +0100 Subject: [PATCH 3/3] Add a bzl file to prevent having empty globs --- .../google/devtools/build/lib/packages/util/MockCcSupport.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java index 88dcbf75bbded2..2e1f30292b169e 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java @@ -275,7 +275,8 @@ protected void setupRulesCc(MockToolsConfig config) throws IOException { "cc/cc_toolchain_config_lib.bzl", "cc/find_cc_toolchain.bzl", "cc/toolchain_utils.bzl", - "cc/private/rules_impl/BUILD")) { + "cc/private/rules_impl/BUILD", + "cc/private/rules_impl/native.bzl")) { try { config.create( "third_party/bazel_rules/rules_cc/" + path,