aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-06-28 16:13:35 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-29 08:53:49 +0000
commit34cdae35dba538a5d834b9ae18c4e493bbad878c (patch)
treefdfe717f6033aaf26144bd320fff0da0d6a6bc48 /src/main/java/com/google/devtools/build/lib/rules
parent116c2f6724718fc408e0c73c9026d89281c75e87 (diff)
Reorganize Skylark Reference documentation.
-- MOS_MIGRATED_REVID=126081020
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkCommandLine.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkFileType.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java7
18 files changed, 150 insertions, 89 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java
index 7038b43424..5b0fd57988 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkAttr.java
@@ -26,6 +26,7 @@ import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.SkylarkAspect;
import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature;
import com.google.devtools.build.lib.syntax.BuiltinFunction;
import com.google.devtools.build.lib.syntax.Environment;
@@ -54,13 +55,14 @@ import javax.annotation.Nullable;
/**
* A helper class to provide Attr module in Skylark.
*
- * <p>It exposes functions (e.g. 'attr.string', 'attr.label_list', etc.) to Skylark
- * users. The functions are executed through reflection. As everywhere in Skylark,
- * arguments are type-checked with the signature and cannot be null.
+ * <p>It exposes functions (e.g. 'attr.string', 'attr.label_list', etc.) to Skylark users. The
+ * functions are executed through reflection. As everywhere in Skylark, arguments are type-checked
+ * with the signature and cannot be null.
*/
@SkylarkModule(
name = "attr",
namespace = true,
+ category = SkylarkModuleCategory.BUILTIN,
doc =
"Module for creating new attributes. "
+ "They are only for use with the <a href=\"globals.html#rule\">rule</a> function."
@@ -1054,9 +1056,14 @@ public final class SkylarkAttr {
}
};
- /**
- * A descriptor of an attribute defined in Skylark.
- */
+ /** A descriptor of an attribute defined in Skylark. */
+ @SkylarkModule(
+ name = "attr_defintion",
+ category = SkylarkModuleCategory.NONE,
+ doc =
+ "Representation of a definition of an attribute; cobnstructed by <code>attr.*</code>"
+ + " functions."
+ )
public static final class Descriptor {
private final Attribute.Builder<?> attributeBuilder;
private final ImmutableList<SkylarkAspect> aspects;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkCommandLine.java
index 8e107b93a3..7fd5fe4dc4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkCommandLine.java
@@ -20,6 +20,7 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature;
import com.google.devtools.build.lib.syntax.BuiltinFunction;
import com.google.devtools.build.lib.syntax.Environment;
@@ -27,11 +28,13 @@ import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
import com.google.devtools.build.lib.syntax.SkylarkSignatureProcessor;
-/**
- * A Skylark module class to create memory efficient command lines.
- */
-@SkylarkModule(name = "cmd_helper", namespace = true,
- doc = "Module for creating memory efficient command lines.")
+/** A Skylark module class to create memory efficient command lines. */
+@SkylarkModule(
+ name = "cmd_helper",
+ namespace = true,
+ category = SkylarkModuleCategory.BUILTIN,
+ doc = "Module for creating memory efficient command lines."
+)
public class SkylarkCommandLine {
@SkylarkSignature(name = "join_paths", objectType = SkylarkCommandLine.class,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkFileType.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkFileType.java
index 94ca4c8b5a..6b31fd8761 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkFileType.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkFileType.java
@@ -18,17 +18,20 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.FileType;
import com.google.devtools.build.lib.util.FileTypeSet;
import java.util.List;
-/**
- * A wrapper class for FileType and FileTypeSet functionality in Skylark.
- */
-@SkylarkModule(name = "FileType",
- doc = "Deprecated. File type for file filtering. Can be used to filter collections of labels "
- + "for certain file types.")
+/** A wrapper class for FileType and FileTypeSet functionality in Skylark. */
+@SkylarkModule(
+ name = "FileType",
+ category = SkylarkModuleCategory.NONE,
+ doc =
+ "Deprecated. File type for file filtering. Can be used to filter collections of labels "
+ + "for certain file types."
+)
public class SkylarkFileType {
private final FileType fileType;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
index 5c5baba790..a956e4d467 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
@@ -46,6 +46,7 @@ import com.google.devtools.build.lib.shell.ShellUtils;
import com.google.devtools.build.lib.shell.ShellUtils.TokenizationException;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.syntax.ClassObject.SkylarkClassObject;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.FuncallExpression.FuncallException;
@@ -69,13 +70,16 @@ import java.util.Set;
import javax.annotation.Nullable;
-/**
- * A Skylark API for the ruleContext.
- */
-@SkylarkModule(name = "ctx", doc = "The context of the rule containing helper functions and "
- + "information about attributes, depending targets and outputs. "
- + "You get a ctx object as an argument to the <code>implementation</code> function when "
- + "you create a rule.")
+/** A Skylark API for the ruleContext. */
+@SkylarkModule(
+ name = "ctx",
+ category = SkylarkModuleCategory.BUILTIN,
+ doc =
+ "The context of the rule containing helper functions and "
+ + "information about attributes, depending targets and outputs. "
+ + "You get a ctx object as an argument to the <code>implementation</code> function when "
+ + "you create a rule."
+)
public final class SkylarkRuleContext {
private static final String DOC_NEW_FILE_TAIL = "Does not actually create a file on the file "
@@ -330,6 +334,7 @@ public final class SkylarkRuleContext {
@SkylarkModule(
name = "rule_attributes",
+ category = SkylarkModuleCategory.NONE,
doc = "Information about attributes of a rule an aspect is applied to."
)
private static class SkylarkRuleAttributesCollection {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
index e64bc92f61..ed8434de93 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
@@ -27,17 +27,21 @@ import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider.OutputJar;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import javax.annotation.Nullable;
/**
- * A class that exposes the Android providers to Skylark. It is intended to provide a
- * simple and stable interface for Skylark users.
+ * A class that exposes the Android providers to Skylark. It is intended to provide a simple and
+ * stable interface for Skylark users.
*/
@SkylarkModule(
name = "AndroidSkylarkApiProvider",
- doc = "Provides access to information about Android rules. Every Android-related target provides "
- + "this struct, accessible as a 'java' field on a Target struct."
+ title = "android",
+ category = SkylarkModuleCategory.PROVIDER,
+ doc =
+ "Provides access to information about Android rules. Every Android-related target provides "
+ + "this struct, accessible as a 'android' field on a Target struct."
)
public class AndroidSkylarkApiProvider extends SkylarkApiProvider {
/** The name of the field in Skylark used to access this class. */
@@ -148,12 +152,11 @@ public class AndroidSkylarkApiProvider extends SkylarkApiProvider {
})));
}
- /**
- * Helper class to provide information about IDLs related to this rule.
- */
+ /** Helper class to provide information about IDLs related to this rule. */
@SkylarkModule(
- name = "AndroidSkylarkIdlInfo",
- doc = "Provides access to information about Android rules"
+ name = "AndroidSkylarkIdlInfo",
+ category = SkylarkModuleCategory.NONE,
+ doc = "Provides access to information about Android rules"
)
public class IdlInfo {
@SkylarkCallable(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index ebc8c9831f..c8fe054b50 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBi
import com.google.devtools.build.lib.rules.apple.Platform.PlatformType;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.Preconditions;
import java.util.ArrayList;
@@ -41,10 +42,12 @@ import java.util.Map;
import javax.annotation.Nullable;
-/**
- * A configuration containing flags required for Apple platforms and tools.
- */
-@SkylarkModule(name = "apple", doc = "A configuration fragment for Apple platforms")
+/** A configuration containing flags required for Apple platforms and tools. */
+@SkylarkModule(
+ name = "apple",
+ doc = "A configuration fragment for Apple platforms",
+ category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT
+)
@Immutable
public class AppleConfiguration extends BuildConfiguration.Fragment {
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
index ebd22f4146..7d97b502d3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
@@ -21,6 +21,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Ordering;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import java.util.ArrayList;
import java.util.Objects;
@@ -36,8 +37,7 @@ import java.util.regex.Pattern;
*
* <p>Dotted versions are ordered using natural integer sorting on components in order from first to
* last where any missing element is considered to have the value 0 if they don't contain any
- * non-numeric characters. For example:
- * <pre>
+ * non-numeric characters. For example: <pre>
* 3.1.25 > 3.1.1
* 3.1.20 > 3.1.2
* 3.1.1 > 3.1
@@ -50,8 +50,7 @@ import java.util.regex.Pattern;
* component with a smaller integer. If the integers are the same, the alphabetic sequences are
* compared lexicographically, and if <i>they</i> turn out to be the same, the final (optional)
* integer is compared. As with the leading integer, this final integer is considered to be 0 if not
- * present. For example:
- * <pre>
+ * present. For example: <pre>
* 3.1.1 > 3.1.1beta3
* 3.1.1beta1 > 3.1.0
* 3.1 > 3.1.0alpha1
@@ -66,8 +65,10 @@ import java.util.regex.Pattern;
*/
@SkylarkModule(
name = "DottedVersion",
- doc = "A value representing a version with multiple components, seperated by periods, such as "
- + "1.2.3.4."
+ category = SkylarkModuleCategory.NONE,
+ doc =
+ "A value representing a version with multiple components, seperated by periods, such as "
+ + "1.2.3.4."
)
public final class DottedVersion implements Comparable<DottedVersion> {
private static final Splitter DOT_SPLITTER = Splitter.on('.');
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java b/src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java
index 7a8b1d1990..987c4fd0ef 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/Platform.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.lib.rules.apple;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.Preconditions;
import java.util.Locale;
@@ -24,10 +25,12 @@ import java.util.Set;
import javax.annotation.Nullable;
-/**
- * An enum that can be used to distinguish between various apple platforms.
- */
-@SkylarkModule(name = "platform", doc = "Distinguishes between various apple platforms.")
+/** An enum that can be used to distinguish between various apple platforms. */
+@SkylarkModule(
+ name = "platform",
+ category = SkylarkModuleCategory.NONE,
+ doc = "Distinguishes between various apple platforms."
+)
public enum Platform {
IOS_DEVICE("iPhoneOS", PlatformType.IOS),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java
index 4f250b7b18..cd5f64282b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcSkylarkApiProvider.java
@@ -21,16 +21,21 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.rules.SkylarkApiProvider;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.vfs.PathFragment;
/**
- * A class that exposes the C++ providers to Skylark. It is intended to provide a
- * simple and stable interface for Skylark users.
+ * A class that exposes the C++ providers to Skylark. It is intended to provide a simple and stable
+ * interface for Skylark users.
*/
@SkylarkModule(
- name = "CcSkylarkApiProvider", doc = "Provides access to information about C++ rules. "
- + "Every C++-related target provides this struct, accessible as a 'cc' field on "
- + "a Target struct.")
+ name = "CcSkylarkApiProvider",
+ category = SkylarkModuleCategory.PROVIDER,
+ doc =
+ "Provides access to information about C++ rules. "
+ + "Every C++-related target provides this struct, accessible as a 'cc' field on "
+ + "a Target struct."
+)
public final class CcSkylarkApiProvider extends SkylarkApiProvider {
/** The name of the field in Skylark used to access this class. */
public static final String NAME = "cc";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 9889401014..0d5d16430a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -40,6 +40,7 @@ import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader.CppConfigurationParameters;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -60,12 +61,15 @@ import java.util.Map;
import java.util.Set;
/**
- * This class represents the C/C++ parts of the {@link BuildConfiguration},
- * including the host architecture, target architecture, compiler version, and
- * a standard library version. It has information about the tools locations and
- * the flags required for compiling.
+ * This class represents the C/C++ parts of the {@link BuildConfiguration}, including the host
+ * architecture, target architecture, compiler version, and a standard library version. It has
+ * information about the tools locations and the flags required for compiling.
*/
-@SkylarkModule(name = "cpp", doc = "A configuration fragment for C++")
+@SkylarkModule(
+ name = "cpp",
+ doc = "A configuration fragment for C++",
+ category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT
+)
@Immutable
public class CppConfiguration extends BuildConfiguration.Fragment {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java
index 76750e72ea..7a577eca27 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationInfoProvider.java
@@ -21,12 +21,14 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
/**
* A class that provides compilation information in Java rules, for perusal of aspects and tools.
*/
@SkylarkModule(
- name = "JavaCompilationInfo",
+ name = "java_compilation_info",
+ category = SkylarkModuleCategory.NONE,
doc = "Provides access to compilation information for Java rules"
)
@Immutable
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
index 8036b9cd2b..27f7d52443 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -28,17 +28,20 @@ import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.common.options.TriState;
import java.util.List;
import javax.annotation.Nullable;
-/**
- * A java compiler configuration containing the flags required for compilation.
- */
+/** A java compiler configuration containing the flags required for compilation. */
@Immutable
-@SkylarkModule(name = "java", doc = "A java compiler configuration")
+@SkylarkModule(
+ name = "java",
+ doc = "A java compiler configuration",
+ category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT
+)
public final class JavaConfiguration extends Fragment {
/**
* Values for the --experimental_java_classpath option
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
index c676b2243f..12cd42f15f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
@@ -20,15 +20,15 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import javax.annotation.Nullable;
-/**
- * The collection of gen jars from the transitive closure.
- */
+/** The collection of gen jars from the transitive closure. */
@Immutable
@SkylarkModule(
- name = "JavaAnnotationProcessing",
+ name = "java_annotation-processing",
+ category = SkylarkModuleCategory.NONE,
doc = "Information about jars that are a result of annotation processing for a Java rule."
)
public final class JavaGenJarsProvider implements TransitiveInfoProvider {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java
index 11d16fd2e8..3cbcf252fc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java
@@ -20,25 +20,27 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.Preconditions;
import javax.annotation.Nullable;
-/**
- * Provides information about jar files produced by a Java rule.
- */
+/** Provides information about jar files produced by a Java rule. */
@Immutable
-@SkylarkModule(name = "JavaOutputJars", doc = "Information about outputs of a Java rule")
+@SkylarkModule(
+ name = "java_output_jars",
+ category = SkylarkModuleCategory.NONE,
+ doc = "Information about outputs of a Java rule"
+)
public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider {
public static final JavaRuleOutputJarsProvider EMPTY =
new JavaRuleOutputJarsProvider(ImmutableList.<OutputJar>of(), null);
- /**
- * A collection of artifacts associated with a jar output.
- */
+ /** A collection of artifacts associated with a jar output. */
@SkylarkModule(
- name = "JavaOutput",
+ name = "java_output",
+ category = SkylarkModuleCategory.NONE,
doc = "Java classes jar, together with their associated source and interface archives"
)
@Immutable
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
index eb6e7fa89e..6d5f353646 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
@@ -22,15 +22,20 @@ import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.rules.SkylarkApiProvider;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
/**
- * A class that exposes the Java providers to Skylark. It is intended to provide a
- * simple and stable interface for Skylark users.
+ * A class that exposes the Java providers to Skylark. It is intended to provide a simple and stable
+ * interface for Skylark users.
*/
@SkylarkModule(
- name = "JavaSkylarkApiProvider",
- doc = "Provides access to information about Java rules. Every Java-related target provides "
- + "this struct, accessible as a 'java' field on a Target struct.")
+ name = "JavaSkylarkApiProvider",
+ title = "java",
+ category = SkylarkModuleCategory.PROVIDER,
+ doc =
+ "Provides access to information about Java rules. Every Java-related target provides "
+ + "this struct, accessible as a 'java' field on a Target struct."
+)
public final class JavaSkylarkApiProvider extends SkylarkApiProvider {
/** The name of the field in Skylark used to access this class. */
public static final String NAME = "java";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java b/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
index edecece6aa..37271b8b48 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
@@ -20,17 +20,21 @@ import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.OsUtils;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.PathFragment;
/**
- * This class represents a Java virtual machine with a host system and a path.
- * If the JVM comes from the client, it can optionally also contain a label
- * pointing to a target that contains all the necessary files.
+ * This class represents a Java virtual machine with a host system and a path. If the JVM comes from
+ * the client, it can optionally also contain a label pointing to a target that contains all the
+ * necessary files.
*/
-@SkylarkModule(name = "jvm",
- doc = "A configuration fragment representing the Java virtual machine.")
+@SkylarkModule(
+ name = "jvm",
+ category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT,
+ doc = "A configuration fragment representing the Java virtual machine."
+)
@Immutable
public final class Jvm extends BuildConfiguration.Fragment {
private final PathFragment javaHome;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
index 69596dd723..8da579bde8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -24,15 +24,18 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.apple.DottedVersion;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.Path;
import javax.annotation.Nullable;
-/**
- * A compiler configuration containing flags required for Objective-C compilation.
- */
-@SkylarkModule(name = "objc", doc = "A configuration fragment for Objective-C")
+/** A compiler configuration containing flags required for Objective-C compilation. */
+@SkylarkModule(
+ name = "objc",
+ category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT,
+ doc = "A configuration fragment for Objective-C"
+)
@Immutable
public class ObjcConfiguration extends BuildConfiguration.Fragment {
@VisibleForTesting
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
index d16f80bf64..7bf91b8353 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
@@ -29,6 +29,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.cpp.CppModuleMap;
import com.google.devtools.build.lib.rules.cpp.LinkerInputs;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.build.lib.syntax.ClassObject.SkylarkClassObject;
import com.google.devtools.build.lib.syntax.EvalUtils;
import com.google.devtools.build.lib.util.Preconditions;
@@ -43,7 +44,11 @@ import java.util.Map;
* deps that are needed for building Objective-C rules.
*/
@Immutable
-@SkylarkModule(name = "ObjcProvider", doc = "A provider for compilation and linking of objc.")
+@SkylarkModule(
+ name = "ObjcProvider",
+ category = SkylarkModuleCategory.PROVIDER,
+ doc = "A provider for compilation and linking of objc."
+)
public final class ObjcProvider extends SkylarkClassObject implements TransitiveInfoProvider {
/**