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__",
     ],