aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/FeaturePolicyOptions.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java12
-rw-r--r--src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java32
-rw-r--r--src/main/java/com/google/devtools/common/options/Option.java11
-rw-r--r--src/objc_tools/plmerge/BUILD2
-rw-r--r--src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge/PlMerge.java5
-rw-r--r--src/test/java/com/google/devtools/common/options/OptionsParserTest.java24
-rw-r--r--src/test/java/com/google/devtools/common/options/TestOptions.java4
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD2
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/BenchmarkOptions.java69
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/BUILD2
-rw-r--r--src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/GeneratorOptions.java22
-rw-r--r--src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/BUILD1
-rw-r--r--src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/GenerateWorkspaceOptions.java73
-rw-r--r--src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/BUILD1
-rw-r--r--src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/RemoteWorkerOptions.java18
17 files changed, 206 insertions, 77 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/BUILD
index a20987fbe4..eaf4ed6d5e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/BUILD
@@ -19,6 +19,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:util",
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//third_party:auto_value",
"//third_party:guava",
"//third_party:jsr305",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/FeaturePolicyOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/FeaturePolicyOptions.java
index 2b43fc2e06..4bfbacbed4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/FeaturePolicyOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/featurecontrol/FeaturePolicyOptions.java
@@ -17,7 +17,9 @@ package com.google.devtools.build.lib.analysis.featurecontrol;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionsParser.OptionUsageRestrictions;
+import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag;
import java.util.List;
/** The options fragment which defines {@link FeaturePolicyConfiguration}. */
@@ -34,6 +36,8 @@ public final class FeaturePolicyOptions extends FragmentOptions {
+ "features, but each feature must be specified only once.",
valueHelp = "a feature=label pair",
optionUsageRestrictions = OptionUsageRestrictions.UNDOCUMENTED,
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
converter = PolicyEntryConverter.class,
defaultValue = "n/a (default ignored for allowMultiple)",
allowMultiple = true
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
index d472adae09..203128dab1 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
@@ -159,6 +159,8 @@ public final class RemoteOptions extends OptionsBase {
name = "experimental_remote_retry",
defaultValue = "true",
category = "remote",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "Whether to retry transient remote execution/cache errors."
)
public boolean experimentalRemoteRetry;
@@ -167,6 +169,8 @@ public final class RemoteOptions extends OptionsBase {
name = "experimental_remote_retry_start_delay_millis",
defaultValue = "100",
category = "remote",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "The initial delay before retrying a transient error."
)
public long experimentalRemoteRetryStartDelayMillis;
@@ -175,6 +179,8 @@ public final class RemoteOptions extends OptionsBase {
name = "experimental_remote_retry_max_delay_millis",
defaultValue = "5000",
category = "remote",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "The maximum delay before retrying a transient error."
)
public long experimentalRemoteRetryMaxDelayMillis;
@@ -183,6 +189,8 @@ public final class RemoteOptions extends OptionsBase {
name = "experimental_remote_retry_max_attempts",
defaultValue = "5",
category = "remote",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "The maximum number of attempts to retry a transient error."
)
public int experimentalRemoteRetryMaxAttempts;
@@ -191,6 +199,8 @@ public final class RemoteOptions extends OptionsBase {
name = "experimental_remote_retry_multiplier",
defaultValue = "2",
category = "remote",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "The multiplier by which to increase the retry delay on transient errors."
)
public double experimentalRemoteRetryMultiplier;
@@ -199,6 +209,8 @@ public final class RemoteOptions extends OptionsBase {
name = "experimental_remote_retry_jitter",
defaultValue = "0.1",
category = "remote",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "The random factor to apply to retry delays on transient errors."
)
public double experimentalRemoteRetryJitter;
diff --git a/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java b/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java
index 2d3b4ceed9..6f682ea5ae 100644
--- a/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java
+++ b/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java
@@ -18,6 +18,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Ordering;
import com.google.devtools.common.options.OptionsParser.ConstructionException;
+import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -360,6 +361,35 @@ public class IsolatedOptionsData extends OpaqueOptionsData {
booleanAliasMap.put("no" + optionName, optionName);
}
+ private static void checkEffectTagRationality(String optionName, OptionEffectTag[] effectTags) {
+ // Check that there is at least one OptionEffectTag listed.
+ if (effectTags.length < 1) {
+ throw new ConstructionException(
+ "Option "
+ + optionName
+ + " does not list at least one OptionEffectTag. If the option has no effect, "
+ + "please add NO_OP, otherwise, add a tag representing its effect.");
+ } else if (effectTags.length > 1) {
+ // If there are more than 1 tag, make sure that NO_OP and UNKNOWN is not one of them.
+ // These don't make sense if other effects are listed.
+ ImmutableList<OptionEffectTag> tags = ImmutableList.copyOf(effectTags);
+ if (tags.contains(OptionEffectTag.UNKNOWN)) {
+ throw new ConstructionException(
+ "Option "
+ + optionName
+ + " includes UNKNOWN with other, known, effects. Please remove UNKNOWN from "
+ + "the list.");
+ }
+ if (tags.contains(OptionEffectTag.NO_OP)) {
+ throw new ConstructionException(
+ "Option "
+ + optionName
+ + " includes NO_OP with other effects. This doesn't make much sense. Please "
+ + "remove NO_OP or the actual effects from the list, whichever is correct.");
+ }
+ }
+ }
+
/**
* Constructs an {@link IsolatedOptionsData} object for a parser that knows about the given
* {@link OptionsBase} classes. No inter-option analysis is done. Performs basic sanity checking
@@ -407,6 +437,8 @@ public class IsolatedOptionsData extends OpaqueOptionsData {
+ annotation.category() + "\" in option \"" + optionName + "\" is disallowed.");
}
+ checkEffectTagRationality(optionName, annotation.effectTags());
+
Type fieldType = getFieldSingularType(field, annotation);
// For simple, static expansions, don't accept non-Void types.
if (annotation.expansion().length != 0 && !isVoidField(field)) {
diff --git a/src/main/java/com/google/devtools/common/options/Option.java b/src/main/java/com/google/devtools/common/options/Option.java
index 7489bd668d..e6c9207d98 100644
--- a/src/main/java/com/google/devtools/common/options/Option.java
+++ b/src/main/java/com/google/devtools/common/options/Option.java
@@ -92,24 +92,23 @@ public @interface Option {
*
* <p>For undocumented flags that aren't listed anywhere, this is currently a no-op. Feel free to
* set the value that it would have if it were documented, which might be helpful if a flag is
- * part of an experimental feature that might become documented in the future, or just leave it
- * unset as the default.
+ * part of an experimental feature that might become documented in the future, or just leave it as
+ * OptionDocumentationCategory.UNCATEGORIZED.
*
* <p>For hidden or internal options, use the category field only if it is helpful for yourself or
* other Bazel developers.
*/
- OptionDocumentationCategory documentationCategory() default
- OptionDocumentationCategory.UNCATEGORIZED;
+ OptionDocumentationCategory documentationCategory();
/**
* Tag about the intent or effect of this option. Unless this option is a no-op (and the reason
* for this should be documented) all options should have some effect, so this needs to have at
* least one value.
*
- * <p>No option should list NO_OP_OR_UNKNOWN with other effects listed, but all other combinations
+ * <p>No option should list NO_OP or UNKNOWN with other effects listed, but all other combinations
* are allowed.
*/
- OptionEffectTag[] effectTags() default {OptionEffectTag.UNKNOWN};
+ OptionEffectTag[] effectTags();
/**
* Tag about the state of this option, such as if it gates an experimental feature, or is
diff --git a/src/objc_tools/plmerge/BUILD b/src/objc_tools/plmerge/BUILD
index 49aafc28ca..acaeb9abf8 100644
--- a/src/objc_tools/plmerge/BUILD
+++ b/src/objc_tools/plmerge/BUILD
@@ -8,6 +8,7 @@ java_binary(
deps = [
":plmerge_lib",
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//src/main/protobuf:plmerge_java_proto",
"//third_party:guava",
"//third_party/java/dd_plist",
@@ -21,6 +22,7 @@ java_library(
),
deps = [
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//src/main/protobuf:plmerge_java_proto",
"//src/tools/xcode-common/java/com/google/devtools/build/xcode/common",
"//src/tools/xcode-common/java/com/google/devtools/build/xcode/util",
diff --git a/src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge/PlMerge.java b/src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge/PlMerge.java
index 8f9f558938..8b24917e32 100644
--- a/src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge/PlMerge.java
+++ b/src/objc_tools/plmerge/java/com/google/devtools/build/xcode/plmerge/PlMerge.java
@@ -17,11 +17,12 @@ package com.google.devtools.build.xcode.plmerge;
import com.google.common.base.Strings;
import com.google.devtools.build.xcode.plmerge.proto.PlMergeProtos.Control;
import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.Options;
import com.google.devtools.common.options.OptionsBase;
import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.OptionsParsingException;
-
+import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.FileSystem;
@@ -44,6 +45,8 @@ public class PlMerge {
@Option(
name = "control",
help = "Absolute path of the Control protobuf.",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
defaultValue = "null"
)
public String controlPath;
diff --git a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
index 64d2d24c5c..f931be3831 100644
--- a/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
+++ b/src/test/java/com/google/devtools/common/options/OptionsParserTest.java
@@ -1024,7 +1024,13 @@ public class OptionsParserTest {
}
}
- @Option(name = "badness", expansionFunction = ExpFunc.class, defaultValue = "null")
+ @Option(
+ name = "badness",
+ expansionFunction = ExpFunc.class,
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
+ defaultValue = "null"
+ )
public String badness;
}
@@ -1080,7 +1086,13 @@ public class OptionsParserTest {
/** ExpansionMultipleOptions */
public static class ExpansionMultipleOptions extends OptionsBase {
- @Option(name = "underlying", defaultValue = "null", allowMultiple = true)
+ @Option(
+ name = "underlying",
+ defaultValue = "null",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
+ allowMultiple = true
+ )
public List<String> underlying;
/** ExpFunc */
@@ -1097,7 +1109,13 @@ public class OptionsParserTest {
}
}
- @Option(name = "expands_by_function", defaultValue = "null", expansionFunction = ExpFunc.class)
+ @Option(
+ name = "expands_by_function",
+ defaultValue = "null",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
+ expansionFunction = ExpFunc.class
+ )
public Void expandsByFunction;
}
diff --git a/src/test/java/com/google/devtools/common/options/TestOptions.java b/src/test/java/com/google/devtools/common/options/TestOptions.java
index 9e79e85656..c73009b3ee 100644
--- a/src/test/java/com/google/devtools/common/options/TestOptions.java
+++ b/src/test/java/com/google/devtools/common/options/TestOptions.java
@@ -247,6 +247,8 @@ public class TestOptions extends OptionsBase {
@Option(
name = "test_expansion_function",
defaultValue = "null",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
expansionFunction = TestExpansionFunction.class
)
public Void testExpansionFunction;
@@ -264,6 +266,8 @@ public class TestOptions extends OptionsBase {
@Option(
name = "test_void_expansion_function",
defaultValue = "null",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
expansionFunction = TestVoidExpansionFunction.class
)
public Void testVoidExpansionFunction;
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD
index b44c70fddc..6dae2a1d65 100644
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD
+++ b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BUILD
@@ -19,6 +19,7 @@ java_binary(
"//src/main/java/com/google/devtools/build/lib:shell",
"//src/main/java/com/google/devtools/build/lib:vfs",
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator:codegenerator_lib",
"//third_party:auto_value",
"//third_party:guava",
@@ -36,6 +37,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:shell",
"//src/main/java/com/google/devtools/build/lib:vfs",
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator:codegenerator_lib",
"//third_party:auto_value",
"//third_party:guava",
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BenchmarkOptions.java b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BenchmarkOptions.java
index 971e55e445..840ae744d3 100644
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/BenchmarkOptions.java
+++ b/src/tools/benchmark/java/com/google/devtools/build/benchmark/BenchmarkOptions.java
@@ -15,58 +15,69 @@
package com.google.devtools.build.benchmark;
import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionsBase;
-
+import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag;
import java.util.List;
/** Class that contains arguments for running the benchmark. */
public class BenchmarkOptions extends OptionsBase {
@Option(
- name = "workspace",
- defaultValue = "",
- category = "benchmark",
- valueHelp = "path",
- help = "Directory where we put all the code and results."
+ name = "workspace",
+ defaultValue = "",
+ category = "benchmark",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ valueHelp = "path",
+ help = "Directory where we put all the code and results."
)
public String workspace;
@Option(
- name = "output",
- defaultValue = "",
- category = "benchmark",
- valueHelp = "path",
- help = "Path to put benchmark result (json format)."
+ name = "output",
+ defaultValue = "",
+ category = "benchmark",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ valueHelp = "path",
+ help = "Path to put benchmark result (json format)."
)
public String output;
@Option(
- name = "version_between",
- defaultValue = "",
- category = "version filter",
- valueHelp = "string",
- help = "Use code versions between two versions, eg. 'abcedf..uvwxyz'.",
- converter = VersionFilterConverter.class
+ name = "version_between",
+ defaultValue = "",
+ category = "version filter",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ valueHelp = "string",
+ help = "Use code versions between two versions, eg. 'abcedf..uvwxyz'.",
+ converter = VersionFilterConverter.class
)
public VersionFilter versionFilter;
@Option(
- name = "time_between",
- defaultValue = "",
- category = "time filter",
- valueHelp = "string",
- help = "Use code versions between two time, eg. '2017-01-01 13:00..2017-01-02 08:00'.",
- converter = DateFilterConverter.class
+ name = "time_between",
+ defaultValue = "",
+ category = "time filter",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ valueHelp = "string",
+ help = "Use code versions between two time, eg. '2017-01-01 13:00..2017-01-02 08:00'.",
+ converter = DateFilterConverter.class
)
public DateFilter dateFilter;
@Option(
- name = "versions",
- defaultValue = "",
- category = "version",
- valueHelp = "list of strings",
- allowMultiple = true,
- help = "Use code versions as listed."
+ name = "versions",
+ defaultValue = "",
+ category = "version",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ valueHelp = "list of strings",
+ allowMultiple = true,
+ help = "Use code versions as listed."
)
public List<String> versions;
}
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/BUILD b/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/BUILD
index 76a2ad8952..763b9daadc 100644
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/BUILD
+++ b/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/BUILD
@@ -6,6 +6,7 @@ java_binary(
main_class = "com.google.devtools.build.benchmark.codegenerator.Main",
deps = [
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//third_party:guava",
"//third_party/java/javapoet",
],
@@ -16,6 +17,7 @@ java_library(
srcs = glob(["*.java"]),
deps = [
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//third_party:guava",
"//third_party/java/javapoet",
],
diff --git a/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/GeneratorOptions.java b/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/GeneratorOptions.java
index 59c828328a..6524fadb7f 100644
--- a/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/GeneratorOptions.java
+++ b/src/tools/benchmark/java/com/google/devtools/build/benchmark/codegenerator/GeneratorOptions.java
@@ -15,8 +15,9 @@
package com.google.devtools.build.benchmark.codegenerator;
import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionsBase;
-
+import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag;
import java.util.List;
/** Class that contains arguments for the java files generator. */
@@ -26,6 +27,8 @@ public class GeneratorOptions extends OptionsBase {
name = "modify",
defaultValue = "false",
category = "generator",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
help = "if we modify the existing code (or generate new code)."
)
public boolean modificationMode;
@@ -34,18 +37,23 @@ public class GeneratorOptions extends OptionsBase {
name = "output_dir",
defaultValue = "",
category = "generator",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
valueHelp = "path",
help = "directory where we put generated code or modify the existing code."
)
public String outputDir;
@Option(
- name = "project_name",
- defaultValue = "",
- category = "generator",
- allowMultiple = true,
- help = "which project we should generate,"
- + " available: AFewFiles, ManyFiles, LongChainedDeps, ParallelDeps"
+ name = "project_name",
+ defaultValue = "",
+ category = "generator",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.NO_OP},
+ allowMultiple = true,
+ help =
+ "which project we should generate,"
+ + " available: AFewFiles, ManyFiles, LongChainedDeps, ParallelDeps"
)
public List<String> projectNames;
}
diff --git a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/BUILD b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/BUILD
index ee318dc912..fcd4d00b7f 100644
--- a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/BUILD
+++ b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/BUILD
@@ -13,6 +13,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:unix",
"//src/main/java/com/google/devtools/build/lib:vfs",
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/maven",
"//src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/maven:rule",
"//third_party:guava",
diff --git a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/GenerateWorkspaceOptions.java b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/GenerateWorkspaceOptions.java
index 7e9011bd0d..6dcd77aded 100644
--- a/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/GenerateWorkspaceOptions.java
+++ b/src/tools/generate_workspace/src/main/java/com/google/devtools/build/workspace/GenerateWorkspaceOptions.java
@@ -15,8 +15,9 @@
package com.google.devtools.build.workspace;
import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionsBase;
-
+import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag;
import java.util.List;
/**
@@ -24,51 +25,61 @@ import java.util.List;
*/
public class GenerateWorkspaceOptions extends OptionsBase {
@Option(
- name = "help",
- abbrev = 'h',
- help = "Prints usage info.",
- defaultValue = "true"
+ name = "help",
+ abbrev = 'h',
+ help = "Prints usage info.",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ defaultValue = "true"
)
public boolean help;
@Option(
- name = "bazel_project",
- abbrev = 'b',
- help = "Directory contains a Bazel project.",
- allowMultiple = true,
- category = "input",
- defaultValue = ""
+ name = "bazel_project",
+ abbrev = 'b',
+ help = "Directory contains a Bazel project.",
+ allowMultiple = true,
+ category = "input",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ defaultValue = ""
)
public List<String> bazelProjects;
@Option(
- name = "maven_project",
- abbrev = 'm',
- help = "Directory containing a Maven project.",
- allowMultiple = true,
- category = "input",
- defaultValue = ""
+ name = "maven_project",
+ abbrev = 'm',
+ help = "Directory containing a Maven project.",
+ allowMultiple = true,
+ category = "input",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ defaultValue = ""
)
public List<String> mavenProjects;
@Option(
- name = "artifact",
- abbrev = 'a',
- help = "Maven artifact coordinates (e.g. groupId:artifactId:version).",
- allowMultiple = true,
- category = "input",
- defaultValue = ""
+ name = "artifact",
+ abbrev = 'a',
+ help = "Maven artifact coordinates (e.g. groupId:artifactId:version).",
+ allowMultiple = true,
+ category = "input",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ defaultValue = ""
)
public List<String> artifacts;
-
+
@Option(
- name = "output_dir",
- abbrev = 'o',
- help = "Output directory to store the WORKSPACE and BUILD files. If unspecified, a temporary"
- + " directory is used.",
- category = "output",
- defaultValue = ""
+ name = "output_dir",
+ abbrev = 'o',
+ help =
+ "Output directory to store the WORKSPACE and BUILD files. If unspecified, a temporary"
+ + " directory is used.",
+ category = "output",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ defaultValue = ""
)
public String outputDir;
-
}
diff --git a/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/BUILD b/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/BUILD
index 9104f3c8bc..7e85b240e0 100644
--- a/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/BUILD
+++ b/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/BUILD
@@ -27,6 +27,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:vfs",
"//src/main/java/com/google/devtools/build/lib/remote",
"//src/main/java/com/google/devtools/common/options",
+ "//src/main/protobuf:option_filters_java_proto",
"//third_party:guava",
"//third_party:hazelcast",
"//third_party:netty",
diff --git a/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/RemoteWorkerOptions.java b/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/RemoteWorkerOptions.java
index bb8e976def..686761f9ed 100644
--- a/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/RemoteWorkerOptions.java
+++ b/src/tools/remote_worker/src/main/java/com/google/devtools/build/remote/RemoteWorkerOptions.java
@@ -15,7 +15,9 @@
package com.google.devtools.build.remote;
import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionsBase;
+import com.google.devtools.common.options.proto.OptionFilters.OptionEffectTag;
import java.util.List;
/** Options for remote worker. */
@@ -24,6 +26,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "listen_port",
defaultValue = "8080",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "Listening port for the netty server."
)
public int listenPort;
@@ -32,6 +36,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "work_path",
defaultValue = "null",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "A directory for the build worker to do work."
)
public String workPath;
@@ -40,6 +46,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "debug",
defaultValue = "false",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help =
"Turn this on for debugging remote job failures. There will be extra messages and the "
+ "work directory will be preserved in the case of failure."
@@ -50,6 +58,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "pid_file",
defaultValue = "null",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "File for writing the process id for this worker when it is fully started."
)
public String pidFile;
@@ -58,6 +68,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "sandboxing",
defaultValue = "false",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "If supported on this platform, use sandboxing for increased hermeticity."
)
public boolean sandboxing;
@@ -66,6 +78,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "sandboxing_writable_path",
defaultValue = "",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
allowMultiple = true,
help = "When using sandboxing, allow running actions to write to this path."
)
@@ -75,6 +89,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "sandboxing_tmpfs_dir",
defaultValue = "",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
allowMultiple = true,
help = "When using sandboxing, mount an empty tmpfs onto this path for each running action."
)
@@ -84,6 +100,8 @@ public class RemoteWorkerOptions extends OptionsBase {
name = "sandboxing_block_network",
defaultValue = "false",
category = "build_worker",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
help = "When using sandboxing, block network access for running actions."
)
public boolean sandboxingBlockNetwork;