Consolidate starlark_doc_extract's libraries into a logical location ... and get rid of the last vestiges of the legacy skydoc/stardoc extractor. PiperOrigin-RevId: 634864746 Change-Id: I04247759681bbb8095095794d418bc6f67801723
diff --git a/scripts/bootstrap/compile.sh b/scripts/bootstrap/compile.sh index 30b32da..f1ce4db 100755 --- a/scripts/bootstrap/compile.sh +++ b/scripts/bootstrap/compile.sh
@@ -36,7 +36,7 @@ EXCLUDE_FILES="src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/testing/* src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecTestUtils.java" # Exclude whole directories under the bazel src tree that bazel itself # doesn't depend on. -EXCLUDE_DIRS="src/main/java/com/google/devtools/build/skydoc src/main/java/com/google/devtools/build/docgen tools/java/runfiles/testing src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils src/main/java/com/google/devtools/common/options/testing src/main/java/com/google/devtools/build/lib/testing" +EXCLUDE_DIRS="src/main/java/com/google/devtools/build/docgen tools/java/runfiles/testing src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils src/main/java/com/google/devtools/common/options/testing src/main/java/com/google/devtools/build/lib/testing" for d in $EXCLUDE_DIRS ; do for f in $(find $d -type f) ; do EXCLUDE_FILES+=" $f"
diff --git a/src/BUILD b/src/BUILD index 0618359..8ae4ba4 100644 --- a/src/BUILD +++ b/src/BUILD
@@ -347,7 +347,6 @@ "//src/main/java/com/google/devtools/build/lib/includescanning:srcs", "//src/main/java/com/google/devtools/build/lib/network:srcs", "//src/main/java/com/google/devtools/build/lib/outputfilter:srcs", - "//src/main/java/com/google/devtools/build/skydoc:srcs", "//src/main/java/com/google/devtools/build/skyframe:srcs", "//src/main/java/com/google/devtools/common/options:srcs", "//src/main/java/net/starlark/java/cmd:srcs", @@ -364,7 +363,6 @@ "//src/test/java/com/google/devtools/build/docgen:srcs", "//src/test/java/com/google/devtools/build/lib:srcs", "//src/test/java/com/google/devtools/build/lib/shell:srcs", - "//src/test/java/com/google/devtools/build/skydoc:srcs", "//src/test/java/com/google/devtools/build/skyframe:srcs", "//src/test/java/com/google/devtools/common/options:srcs", "//src/test/java/net/starlark/java/eval:srcs",
diff --git a/src/main/java/com/google/devtools/build/docgen/BUILD b/src/main/java/com/google/devtools/build/docgen/BUILD index ab4261b..140506e 100644 --- a/src/main/java/com/google/devtools/build/docgen/BUILD +++ b/src/main/java/com/google/devtools/build/docgen/BUILD
@@ -11,7 +11,6 @@ name = "srcs", srcs = glob(["**"]) + [ "//src/main/java/com/google/devtools/build/docgen/annot:srcs", - "//src/main/java/com/google/devtools/build/skydoc/rendering:srcs", ], visibility = ["//src:__subpackages__"], ) @@ -30,9 +29,9 @@ "//src/main/java/com/google/devtools/build/lib/collect/nestedset", "//src/main/java/com/google/devtools/build/lib/concurrent", "//src/main/java/com/google/devtools/build/lib/packages", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:labelrenderer", "//src/main/java/com/google/devtools/build/lib/util:classpath", "//src/main/java/com/google/devtools/build/lib/util:filetype", - "//src/main/java/com/google/devtools/build/skydoc/rendering:rendering_util", "//src/main/java/com/google/devtools/common/options", "//src/main/java/net/starlark/java/annot", "//src/main/java/net/starlark/java/eval",
diff --git a/src/main/java/com/google/devtools/build/docgen/RuleDocumentationAttribute.java b/src/main/java/com/google/devtools/build/docgen/RuleDocumentationAttribute.java index a94ae5e..67b99b5 100644 --- a/src/main/java/com/google/devtools/build/docgen/RuleDocumentationAttribute.java +++ b/src/main/java/com/google/devtools/build/docgen/RuleDocumentationAttribute.java
@@ -25,7 +25,7 @@ import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.packages.Types; -import com.google.devtools.build.skydoc.rendering.LabelRenderer; +import com.google.devtools.build.lib.starlarkdocextract.LabelRenderer; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AttributeInfo; import java.util.HashMap; import java.util.LinkedList;
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index e624201..fa6935f 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -88,6 +88,7 @@ "//src/main/java/com/google/devtools/build/lib/starlarkdebug/module:srcs", "//src/main/java/com/google/devtools/build/lib/starlarkdebug/proto:srcs", "//src/main/java/com/google/devtools/build/lib/starlarkdebug/server:srcs", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:srcs", "//src/main/java/com/google/devtools/build/lib/supplier:srcs", "//src/main/java/com/google/devtools/build/lib/testing/common:srcs", "//src/main/java/com/google/devtools/build/lib/testing/vfs:srcs",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD b/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD index deeaaa1..5c1582a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD +++ b/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD
@@ -18,7 +18,6 @@ "StarlarkDocExtractRule.java", ], deps = [ - ":moduleinfoextractor", "//src/main/java/com/google/devtools/build/lib/actions", "//src/main/java/com/google/devtools/build/lib/actions:artifacts", "//src/main/java/com/google/devtools/build/lib/analysis:actions/binary_file_write_action", @@ -33,8 +32,9 @@ "//src/main/java/com/google/devtools/build/lib/skyframe:bzl_load_failed_exception", "//src/main/java/com/google/devtools/build/lib/skyframe:bzl_load_value", "//src/main/java/com/google/devtools/build/lib/skyframe:repository_mapping_value", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:labelrenderer", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:moduleinfoextractor", "//src/main/java/com/google/devtools/build/lib/util:filetype", - "//src/main/java/com/google/devtools/build/skydoc/rendering:rendering_util", "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects", "//src/main/java/net/starlark/java/eval", "//src/main/protobuf:stardoc_output_java_proto", @@ -44,19 +44,3 @@ "//third_party/protobuf:protobuf_java", ], ) - -java_library( - name = "moduleinfoextractor", - srcs = ["ModuleInfoExtractor.java"], - deps = [ - "//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster", - "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:module_extension", - "//src/main/java/com/google/devtools/build/lib/bazel/repository/starlark", - "//src/main/java/com/google/devtools/build/lib/cmdline", - "//src/main/java/com/google/devtools/build/lib/packages", - "//src/main/java/com/google/devtools/build/skydoc/rendering:rendering_util", - "//src/main/java/net/starlark/java/eval", - "//src/main/protobuf:stardoc_output_java_proto", - "//third_party:guava", - ], -)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtract.java b/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtract.java index e5f1807..ebbfa44 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtract.java +++ b/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtract.java
@@ -52,7 +52,8 @@ import com.google.devtools.build.lib.skyframe.BzlLoadValue; import com.google.devtools.build.lib.skyframe.RepositoryMappingValue; import com.google.devtools.build.lib.skyframe.RepositoryMappingValue.RepositoryMappingResolutionException; -import com.google.devtools.build.skydoc.rendering.LabelRenderer; +import com.google.devtools.build.lib.starlarkdocextract.LabelRenderer; +import com.google.devtools.build.lib.starlarkdocextract.ModuleInfoExtractor; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.ModuleInfo; import com.google.devtools.build.skyframe.SkyFunction; import com.google.errorprone.annotations.CanIgnoreReturnValue;
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkdocextract/BUILD b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/BUILD new file mode 100644 index 0000000..f6b9ae3 --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/BUILD
@@ -0,0 +1,56 @@ +load("@rules_java//java:defs.bzl", "java_library") + +package( + default_applicable_licenses = ["//:license"], + default_visibility = ["//src:__subpackages__"], +) + +filegroup( + name = "srcs", + srcs = glob(["**"]), + visibility = ["//src:__subpackages__"], +) + +java_library( + name = "labelrenderer", + srcs = ["LabelRenderer.java"], + deps = [ + "//src/main/java/com/google/devtools/build/lib/cmdline", + "//src/main/java/net/starlark/java/eval", + ], +) + +java_library( + name = "starlarkfunctioninfoextractor", + srcs = [ + "DocstringParseException.java", + "StarlarkFunctionInfoExtractor.java", + ], + deps = [ + ":labelrenderer", + "//src/main/java/com/google/devtools/build/lib/cmdline", + "//src/main/java/net/starlark/java/eval", + "//src/main/java/net/starlark/java/syntax", + "//src/main/protobuf:stardoc_output_java_proto", + "//src/tools/starlark/java/com/google/devtools/starlark/common", + "//third_party:guava", + "//third_party:jsr305", + ], +) + +java_library( + name = "moduleinfoextractor", + srcs = ["ModuleInfoExtractor.java"], + deps = [ + ":labelrenderer", + ":starlarkfunctioninfoextractor", + "//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster", + "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:module_extension", + "//src/main/java/com/google/devtools/build/lib/bazel/repository/starlark", + "//src/main/java/com/google/devtools/build/lib/cmdline", + "//src/main/java/com/google/devtools/build/lib/packages", + "//src/main/java/net/starlark/java/eval", + "//src/main/protobuf:stardoc_output_java_proto", + "//third_party:guava", + ], +)
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/DocstringParseException.java b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/DocstringParseException.java similarity index 96% rename from src/main/java/com/google/devtools/build/skydoc/rendering/DocstringParseException.java rename to src/main/java/com/google/devtools/build/lib/starlarkdocextract/DocstringParseException.java index d198e9f..9142438 100644 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/DocstringParseException.java +++ b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/DocstringParseException.java
@@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.skydoc.rendering; +package com.google.devtools.build.lib.starlarkdocextract; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.StarlarkFunctionInfo; import com.google.devtools.starlark.common.DocstringUtils.DocstringParseError;
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/LabelRenderer.java b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/LabelRenderer.java similarity index 98% rename from src/main/java/com/google/devtools/build/skydoc/rendering/LabelRenderer.java rename to src/main/java/com/google/devtools/build/lib/starlarkdocextract/LabelRenderer.java index 0765cc3..60599d4 100644 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/LabelRenderer.java +++ b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/LabelRenderer.java
@@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.skydoc.rendering; +package com.google.devtools.build.lib.starlarkdocextract; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.RepositoryMapping;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/ModuleInfoExtractor.java b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/ModuleInfoExtractor.java similarity index 97% rename from src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/ModuleInfoExtractor.java rename to src/main/java/com/google/devtools/build/lib/starlarkdocextract/ModuleInfoExtractor.java index 4c3e251..dab0796 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/ModuleInfoExtractor.java +++ b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/ModuleInfoExtractor.java
@@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.rules.starlarkdocextract; +package com.google.devtools.build.lib.starlarkdocextract; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -37,9 +37,6 @@ import com.google.devtools.build.lib.packages.StarlarkProviderIdentifier; import com.google.devtools.build.lib.packages.Type; import com.google.devtools.build.lib.packages.Types; -import com.google.devtools.build.skydoc.rendering.DocstringParseException; -import com.google.devtools.build.skydoc.rendering.LabelRenderer; -import com.google.devtools.build.skydoc.rendering.StarlarkFunctionInfoExtractor; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AspectInfo; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AttributeInfo; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AttributeType; @@ -69,7 +66,7 @@ private final LabelRenderer labelRenderer; @VisibleForTesting - static final AttributeInfo IMPLICIT_NAME_ATTRIBUTE_INFO = + public static final AttributeInfo IMPLICIT_NAME_ATTRIBUTE_INFO = AttributeInfo.newBuilder() .setName("name") .setType(AttributeType.NAME) @@ -78,7 +75,7 @@ .build(); @VisibleForTesting - static final AttributeInfo IMPLICIT_MACRO_NAME_ATTRIBUTE_INFO = + public static final AttributeInfo IMPLICIT_MACRO_NAME_ATTRIBUTE_INFO = AttributeInfo.newBuilder() .setName("name") .setType(AttributeType.NAME) @@ -90,7 +87,7 @@ .build(); @VisibleForTesting - static final ImmutableList<AttributeInfo> IMPLICIT_REPOSITORY_RULE_ATTRIBUTES = + public static final ImmutableList<AttributeInfo> IMPLICIT_REPOSITORY_RULE_ATTRIBUTES = ImmutableList.of( AttributeInfo.newBuilder() .setName("name") @@ -377,7 +374,7 @@ try { moduleInfoBuilder.addFuncInfo( StarlarkFunctionInfoExtractor.fromNameAndFunction( - qualifiedName, function, /* withOriginKey= */ true, labelRenderer)); + qualifiedName, function, labelRenderer)); } catch (DocstringParseException e) { throw new ExtractionException(e); } @@ -482,10 +479,7 @@ try { providerInfoBuilder.setInit( StarlarkFunctionInfoExtractor.fromNameAndFunction( - qualifiedName, - (StarlarkFunction) provider.getInit(), - /* withOriginKey= */ true, - labelRenderer)); + qualifiedName, (StarlarkFunction) provider.getInit(), labelRenderer)); } catch (DocstringParseException e) { throw new ExtractionException(e); }
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/StarlarkFunctionInfoExtractor.java b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/StarlarkFunctionInfoExtractor.java similarity index 89% rename from src/main/java/com/google/devtools/build/skydoc/rendering/StarlarkFunctionInfoExtractor.java rename to src/main/java/com/google/devtools/build/lib/starlarkdocextract/StarlarkFunctionInfoExtractor.java index 5f9dd68..6624089 100644 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/StarlarkFunctionInfoExtractor.java +++ b/src/main/java/com/google/devtools/build/lib/starlarkdocextract/StarlarkFunctionInfoExtractor.java
@@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.skydoc.rendering; +package com.google.devtools.build.lib.starlarkdocextract; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; @@ -50,34 +50,23 @@ * the original exported function name; the function may have been renamed in the target * Starlark file's scope) * @param fn the function object - * @param withOriginKey set the {@link OriginKey} for the original name and original module where - * the function was defined * @param labelRenderer a string renderer for {@link Label} values in argument defaults and for * the {@link OriginKey}'s file - * @throws com.google.devtools.build.skydoc.rendering.DocstringParseException if the function's - * docstring is malformed + * @throws DocstringParseException if the function's docstring is malformed */ - // TODO(arostovtsev): remove withOriginKey parameter and always export the origin key after we - // remove the legacy Stardoc extractor. public static StarlarkFunctionInfo fromNameAndFunction( - String functionName, StarlarkFunction fn, boolean withOriginKey, LabelRenderer labelRenderer) + String functionName, StarlarkFunction fn, LabelRenderer labelRenderer) throws DocstringParseException { - return new StarlarkFunctionInfoExtractor(labelRenderer) - .extract(functionName, fn, withOriginKey); + return new StarlarkFunctionInfoExtractor(labelRenderer).extract(functionName, fn); } - private StarlarkFunctionInfo extract( - String functionName, StarlarkFunction fn, boolean withOriginKey) + private StarlarkFunctionInfo extract(String functionName, StarlarkFunction fn) throws DocstringParseException { Map<String, String> paramNameToDocMap = Maps.newLinkedHashMap(); StarlarkFunctionInfo.Builder functionInfoBuilder = StarlarkFunctionInfo.newBuilder().setFunctionName(functionName); - if (withOriginKey) { - functionInfoBuilder.setOriginKey(getFunctionOriginKey(fn)); - } - + functionInfoBuilder.setOriginKey(getFunctionOriginKey(fn)); String doc = fn.getDocumentation(); - if (doc != null) { List<DocstringParseError> parseErrors = Lists.newArrayList(); DocstringInfo docstringInfo = DocstringUtils.parseDocstring(doc, parseErrors);
diff --git a/src/main/java/com/google/devtools/build/skydoc/BUILD b/src/main/java/com/google/devtools/build/skydoc/BUILD deleted file mode 100644 index 6587a02..0000000 --- a/src/main/java/com/google/devtools/build/skydoc/BUILD +++ /dev/null
@@ -1,12 +0,0 @@ -package( - default_applicable_licenses = ["//:license"], - default_visibility = ["//src:__subpackages__"], -) - -filegroup( - name = "srcs", - srcs = glob(["**"]) + [ - "//src/main/java/com/google/devtools/build/skydoc/rendering:srcs", - ], - visibility = ["//src:__subpackages__"], -)
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/AspectInfoWrapper.java b/src/main/java/com/google/devtools/build/skydoc/rendering/AspectInfoWrapper.java deleted file mode 100644 index d553e02..0000000 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/AspectInfoWrapper.java +++ /dev/null
@@ -1,46 +0,0 @@ -// Copyright 2019 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.devtools.build.skydoc.rendering; - -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AspectInfo; -import net.starlark.java.eval.StarlarkCallable; -import net.starlark.java.syntax.Location; - -/** Stores information about a Starlark aspect definition. */ -public class AspectInfoWrapper { - private final StarlarkCallable identifierFunction; - private final Location location; - // Only the Builder is passed to AspectInfoWrapper as the aspect name is not yet available. - private final AspectInfo.Builder aspectInfo; - - public AspectInfoWrapper( - StarlarkCallable identifierFunction, Location location, AspectInfo.Builder aspectInfo) { - this.identifierFunction = identifierFunction; - this.location = location; - this.aspectInfo = aspectInfo; - } - - public StarlarkCallable getIdentifierFunction() { - return identifierFunction; - } - - public Location getLocation() { - return location; - } - - public AspectInfo.Builder getAspectInfo() { - return aspectInfo; - } -}
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/BUILD b/src/main/java/com/google/devtools/build/skydoc/rendering/BUILD deleted file mode 100644 index 88470bf..0000000 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/BUILD +++ /dev/null
@@ -1,50 +0,0 @@ -load("@rules_java//java:defs.bzl", "java_library") - -package( - default_applicable_licenses = ["//:license"], - default_visibility = ["//src:__subpackages__"], -) - -filegroup( - name = "srcs", - srcs = glob(["**"]), - visibility = ["//src:__subpackages__"], -) - -# TODO(arostovtsev): move rendering_util to rules/starlarkdocextract when we remove legacy Stardoc. -java_library( - name = "rendering_util", - srcs = [ - "DocstringParseException.java", - "LabelRenderer.java", - "StarlarkFunctionInfoExtractor.java", - ], - deps = [ - "//src/main/java/com/google/devtools/build/lib/cmdline", - "//src/main/java/net/starlark/java/eval", - "//src/main/java/net/starlark/java/syntax", - "//src/main/protobuf:stardoc_output_java_proto", - "//src/tools/starlark/java/com/google/devtools/starlark/common", - "//third_party:guava", - "//third_party:jsr305", - ], -) - -java_library( - name = "rendering", - srcs = glob( - ["*.java"], - exclude = [ - "DocstringParseException.java", - "LabelRenderer.java", - "StarlarkFunctionInfoExtractor.java", - ], - ), - deps = [ - ":rendering_util", - "//src/main/java/net/starlark/java/eval", - "//src/main/java/net/starlark/java/syntax", - "//src/main/protobuf:stardoc_output_java_proto", - "//third_party:error_prone_annotations", - ], -)
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/ProtoRenderer.java b/src/main/java/com/google/devtools/build/skydoc/rendering/ProtoRenderer.java deleted file mode 100644 index 84d3cdb..0000000 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/ProtoRenderer.java +++ /dev/null
@@ -1,94 +0,0 @@ -// Copyright 2019 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.devtools.build.skydoc.rendering; - -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AspectInfo; -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.ModuleInfo; -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.ProviderInfo; -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.RuleInfo; -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.StarlarkFunctionInfo; -import com.google.errorprone.annotations.CanIgnoreReturnValue; -import java.io.BufferedOutputStream; -import java.io.IOException; -import java.util.Collection; -import java.util.Map; -import net.starlark.java.eval.StarlarkFunction; - -/** Produces skydoc output in proto form. */ -public class ProtoRenderer { - - private final ModuleInfo.Builder moduleInfo; - - public ProtoRenderer() { - this.moduleInfo = ModuleInfo.newBuilder(); - } - - /** Appends {@link RuleInfo} protos to a {@link ModuleInfo.Builder}. */ - @CanIgnoreReturnValue - public ProtoRenderer appendRuleInfos(Collection<RuleInfo> ruleInfos) { - for (RuleInfo ruleInfo : ruleInfos) { - moduleInfo.addRuleInfo(ruleInfo); - } - return this; - } - - /** Appends {@link ProviderInfo} protos to a {@link ModuleInfo.Builder}. */ - @CanIgnoreReturnValue - public ProtoRenderer appendProviderInfos(Collection<ProviderInfo> providerInfos) { - for (ProviderInfo providerInfo : providerInfos) { - moduleInfo.addProviderInfo(providerInfo); - } - return this; - } - - /** Appends {@link StarlarkFunctionInfo} protos to a {@link ModuleInfo.Builder}. */ - @CanIgnoreReturnValue - public ProtoRenderer appendStarlarkFunctionInfos(Map<String, StarlarkFunction> funcInfosMap) - throws DocstringParseException { - for (Map.Entry<String, StarlarkFunction> entry : funcInfosMap.entrySet()) { - StarlarkFunctionInfo funcInfo = - StarlarkFunctionInfoExtractor.fromNameAndFunction( - entry.getKey(), entry.getValue(), /* withOriginKey= */ false, LabelRenderer.DEFAULT); - moduleInfo.addFuncInfo(funcInfo); - } - return this; - } - - /** Appends module docstring protos to a {@link ModuleInfo.Builder}. */ - @CanIgnoreReturnValue - public ProtoRenderer setModuleDocstring(String moduleDoc) { - moduleInfo.setModuleDocstring(moduleDoc); - return this; - } - - /** Outputs the raw form of a {@link ModuleInfo} proto. */ - public void writeModuleInfo(BufferedOutputStream outputStream) throws IOException { - ModuleInfo build = moduleInfo.build(); - build.writeTo(outputStream); - } - - /** Appends {@link AspectInfo} protos to a {@link ModuleInfo.Builder}. */ - @CanIgnoreReturnValue - public ProtoRenderer appendAspectInfos(Collection<AspectInfo> aspectInfos) { - for (AspectInfo aspectInfo : aspectInfos) { - moduleInfo.addAspectInfo(aspectInfo); - } - return this; - } - - public ModuleInfo.Builder getModuleInfo() { - return moduleInfo; - } -}
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/ProviderInfoWrapper.java b/src/main/java/com/google/devtools/build/skydoc/rendering/ProviderInfoWrapper.java deleted file mode 100644 index 9a14f82..0000000 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/ProviderInfoWrapper.java +++ /dev/null
@@ -1,56 +0,0 @@ -// Copyright 2019 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.devtools.build.skydoc.rendering; - -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.ProviderFieldInfo; -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.ProviderInfo; -import java.util.Collection; -import java.util.Optional; -import net.starlark.java.eval.StarlarkCallable; - -/** - * Stores information about a starlark provider definition, comprised of StarlarkCallable identifier - * and a {@link ProviderInfo} proto. - * - * <p>For example, in - * - * <pre>FooInfo = provider(doc = 'My provider', fields = {'bar' : 'a bar'})</pre> - * - * , this contains all information about the definition of FooInfo for purposes of generating its - * documentation, as well as a unique StarlarkCallable identifier. - */ -public class ProviderInfoWrapper { - - private final StarlarkCallable identifier; - // Only the Builder is passed to ProviderInfoWrapper as the provider name is not yet available. - private final ProviderInfo.Builder providerInfo; - - public ProviderInfoWrapper( - StarlarkCallable identifier, - Optional<String> docString, - Collection<ProviderFieldInfo> fieldInfos) { - this.identifier = identifier; - this.providerInfo = ProviderInfo.newBuilder().addAllFieldInfo(fieldInfos); - docString.ifPresent(this.providerInfo::setDocString); - } - - public StarlarkCallable getIdentifier() { - return identifier; - } - - public ProviderInfo.Builder getProviderInfo() { - return providerInfo; - } -}
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/RuleInfoWrapper.java b/src/main/java/com/google/devtools/build/skydoc/rendering/RuleInfoWrapper.java deleted file mode 100644 index 45ad633..0000000 --- a/src/main/java/com/google/devtools/build/skydoc/rendering/RuleInfoWrapper.java +++ /dev/null
@@ -1,47 +0,0 @@ -// Copyright 2018 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.devtools.build.skydoc.rendering; - -import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.RuleInfo; -import net.starlark.java.eval.StarlarkCallable; -import net.starlark.java.syntax.Location; - -/** Stores information about a Starlark rule definition. */ -public class RuleInfoWrapper { - - private final StarlarkCallable identifierFunction; - private final Location location; - // Only the Builder is passed to RuleInfoWrapper as the rule name is not yet available. - private final RuleInfo.Builder ruleInfo; - - public RuleInfoWrapper( - StarlarkCallable identifierFunction, Location location, RuleInfo.Builder ruleInfo) { - this.identifierFunction = identifierFunction; - this.location = location; - this.ruleInfo = ruleInfo; - } - - public StarlarkCallable getIdentifierFunction() { - return identifierFunction; - } - - public Location getLocation() { - return location; - } - - public RuleInfo.Builder getRuleInfo() { - return ruleInfo; - } -}
diff --git a/src/main/protobuf/BUILD b/src/main/protobuf/BUILD index 005b395..3551f24 100644 --- a/src/main/protobuf/BUILD +++ b/src/main/protobuf/BUILD
@@ -321,10 +321,10 @@ packages = [ "//src/main/java/com/google/devtools/build/docgen/...", "//src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract/...", - "//src/main/java/com/google/devtools/build/skydoc/...", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract/...", "//src/test/java/com/google/devtools/build/docgen/...", "//src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/...", - "//src/test/java/com/google/devtools/build/skydoc/...", + "//src/test/java/com/google/devtools/build/lib/starlarkdocextract/...", ], )
diff --git a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD b/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD index f9a6e42..ec0e252 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD +++ b/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/BUILD
@@ -23,19 +23,13 @@ "//src/main/java/com/google/devtools/build/lib/analysis:configured_target", "//src/main/java/com/google/devtools/build/lib/bazel/repository/starlark", "//src/main/java/com/google/devtools/build/lib/cmdline", - "//src/main/java/com/google/devtools/build/lib/rules/starlarkdocextract:moduleinfoextractor", - "//src/main/java/com/google/devtools/build/lib/skyframe:skyframe_cluster", "//src/main/java/com/google/devtools/build/lib/starlarkbuildapi/repository", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:moduleinfoextractor", "//src/main/java/com/google/devtools/build/lib/vfs", - "//src/main/java/com/google/devtools/build/skydoc/rendering:rendering_util", - "//src/main/java/net/starlark/java/eval", - "//src/main/java/net/starlark/java/syntax", "//src/main/protobuf:stardoc_output_java_proto", "//src/test/java/com/google/devtools/build/lib/analysis/util", "//src/test/java/com/google/devtools/build/lib/bazel/bzlmod:util", - "//src/test/java/com/google/devtools/build/lib/starlark/util", "//src/test/java/com/google/devtools/build/lib/testutil", - "//third_party:guava", "//third_party:junit4", "//third_party:truth", "//third_party/protobuf:protobuf_java",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java b/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java index 4bca017..871372c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/StarlarkDocExtractTest.java
@@ -28,6 +28,7 @@ import com.google.devtools.build.lib.bazel.repository.starlark.StarlarkRepositoryModule; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.starlarkbuildapi.repository.RepositoryBootstrap; +import com.google.devtools.build.lib.starlarkdocextract.ModuleInfoExtractor; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AspectInfo;
diff --git a/src/test/java/com/google/devtools/build/lib/starlarkdocextract/BUILD b/src/test/java/com/google/devtools/build/lib/starlarkdocextract/BUILD new file mode 100644 index 0000000..869327d --- /dev/null +++ b/src/test/java/com/google/devtools/build/lib/starlarkdocextract/BUILD
@@ -0,0 +1,45 @@ +load("@rules_java//java:defs.bzl", "java_test") + +package( + default_applicable_licenses = ["//:license"], + default_visibility = ["//src:__subpackages__"], +) + +filegroup( + name = "srcs", + testonly = 0, + srcs = glob(["*"]), + visibility = ["//src:__subpackages__"], +) + +java_test( + name = "LabelRendererTest", + size = "small", + srcs = ["LabelRendererTest.java"], + deps = [ + "//src/main/java/com/google/devtools/build/lib/cmdline", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:labelrenderer", + "//src/main/java/net/starlark/java/eval", + "//third_party:guava", + "//third_party:junit4", + "//third_party:truth", + ], +) + +java_test( + name = "ModuleInfoExtractorTest", + srcs = ["ModuleInfoExtractorTest.java"], + deps = [ + "//src/main/java/com/google/devtools/build/lib/cmdline", + "//src/main/java/com/google/devtools/build/lib/skyframe:skyframe_cluster", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:labelrenderer", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:moduleinfoextractor", + "//src/main/java/net/starlark/java/eval", + "//src/main/java/net/starlark/java/syntax", + "//src/main/protobuf:stardoc_output_java_proto", + "//src/test/java/com/google/devtools/build/lib/starlark/util", + "//third_party:guava", + "//third_party:junit4", + "//third_party:truth", + ], +)
diff --git a/src/test/java/com/google/devtools/build/skydoc/rendering/LabelRendererTest.java b/src/test/java/com/google/devtools/build/lib/starlarkdocextract/LabelRendererTest.java similarity index 98% rename from src/test/java/com/google/devtools/build/skydoc/rendering/LabelRendererTest.java rename to src/test/java/com/google/devtools/build/lib/starlarkdocextract/LabelRendererTest.java index dc536d6..02f81d9 100644 --- a/src/test/java/com/google/devtools/build/skydoc/rendering/LabelRendererTest.java +++ b/src/test/java/com/google/devtools/build/lib/starlarkdocextract/LabelRendererTest.java
@@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.skydoc.rendering; +package com.google.devtools.build.lib.starlarkdocextract; import static com.google.common.truth.Truth.assertThat;
diff --git a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/ModuleInfoExtractorTest.java b/src/test/java/com/google/devtools/build/lib/starlarkdocextract/ModuleInfoExtractorTest.java similarity index 99% rename from src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/ModuleInfoExtractorTest.java rename to src/test/java/com/google/devtools/build/lib/starlarkdocextract/ModuleInfoExtractorTest.java index d5ba40b..67a29a3 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/starlarkdocextract/ModuleInfoExtractorTest.java +++ b/src/test/java/com/google/devtools/build/lib/starlarkdocextract/ModuleInfoExtractorTest.java
@@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.rules.starlarkdocextract; +package com.google.devtools.build.lib.starlarkdocextract; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.extensions.proto.ProtoTruth.assertThat; @@ -25,7 +25,6 @@ import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.skyframe.BzlLoadFunction; import com.google.devtools.build.lib.starlark.util.BazelEvaluationTestCase; -import com.google.devtools.build.skydoc.rendering.LabelRenderer; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AspectInfo; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AttributeInfo; import com.google.devtools.build.skydoc.rendering.proto.StardocOutputProtos.AttributeType;
diff --git a/src/test/java/com/google/devtools/build/skydoc/BUILD b/src/test/java/com/google/devtools/build/skydoc/BUILD deleted file mode 100644 index d9c7308..0000000 --- a/src/test/java/com/google/devtools/build/skydoc/BUILD +++ /dev/null
@@ -1,12 +0,0 @@ -package( - default_testonly = 1, -) - -filegroup( - name = "srcs", - testonly = 0, - srcs = glob(["**"]) + [ - "//src/test/java/com/google/devtools/build/skydoc/rendering:srcs", - ], - visibility = ["//src:__pkg__"], -)
diff --git a/src/test/java/com/google/devtools/build/skydoc/rendering/BUILD b/src/test/java/com/google/devtools/build/skydoc/rendering/BUILD deleted file mode 100644 index 61de9ea..0000000 --- a/src/test/java/com/google/devtools/build/skydoc/rendering/BUILD +++ /dev/null
@@ -1,27 +0,0 @@ -load("@rules_java//java:defs.bzl", "java_test") - -package( - default_applicable_licenses = ["//:license"], - default_visibility = ["//src:__subpackages__"], -) - -filegroup( - name = "srcs", - testonly = 0, - srcs = glob(["*"]), - visibility = ["//src:__subpackages__"], -) - -java_test( - name = "LabelRendererTest", - size = "small", - srcs = ["LabelRendererTest.java"], - deps = [ - "//src/main/java/com/google/devtools/build/lib/cmdline", - "//src/main/java/com/google/devtools/build/skydoc/rendering:rendering_util", - "//src/main/java/net/starlark/java/eval", - "//third_party:guava", - "//third_party:junit4", - "//third_party:truth", - ], -)
diff --git a/src/tools/starlark/java/com/google/devtools/starlark/common/BUILD b/src/tools/starlark/java/com/google/devtools/starlark/common/BUILD index 99feb4f..527097d 100644 --- a/src/tools/starlark/java/com/google/devtools/starlark/common/BUILD +++ b/src/tools/starlark/java/com/google/devtools/starlark/common/BUILD
@@ -5,7 +5,7 @@ srcs = ["DocstringUtils.java"], visibility = [ # For docstring parsing libraries. - "//src/main/java/com/google/devtools/build/skydoc:__subpackages__", + "//src/main/java/com/google/devtools/build/lib/starlarkdocextract:__subpackages__", "//src/tools/skylark/java/com/google/devtools/skylark/skylint:__subpackages__", "//src/tools/skylark/javatests/com/google/devtools/skylark/skylint:__subpackages__", ],