fix: isolate bzl_libary targets for //lib/private:*.bzl i //lib/private/docs package so that platform_utils dep on @local_config_platform//:constraints doesn't leak unless downstream consumer is generating docs (#254)

diff --git a/lib/private/docs/BUILD.bazel b/lib/private/docs/BUILD.bazel
new file mode 100644
index 0000000..5098630
--- /dev/null
+++ b/lib/private/docs/BUILD.bazel
@@ -0,0 +1,210 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+
+# `bzl_library` targets for `//lib/private:*.bzl` are in this package so that `:platform_utils` dep on
+# `@local_config_platform//:constraints` doesn't leak unless downstream consumer is generating docs.
+# That dep requires the downstream WORKSPACE to set `override_local_config_platform = True` in
+# `aspect_bazel_lib_dependencies`.
+
+package(default_visibility = ["//lib:__pkg__"])
+
+bzl_library(
+    name = "copy_common",
+    srcs = ["//lib/private:copy_common.bzl"],
+)
+
+bzl_library(
+    name = "platform_utils",
+    srcs = ["//lib/private:platform_utils.bzl"],
+    deps = ["@local_config_platform//:constraints"],
+)
+
+bzl_library(
+    name = "copy_file",
+    srcs = ["//lib/private:copy_file.bzl"],
+    deps = [
+        ":copy_common",
+        ":directory_path",
+        ":platform_utils",
+    ],
+)
+
+bzl_library(
+    name = "copy_directory",
+    srcs = ["//lib/private:copy_directory.bzl"],
+    deps = [
+        ":copy_common",
+        ":platform_utils",
+    ],
+)
+
+bzl_library(
+    name = "copy_to_directory",
+    srcs = ["//lib/private:copy_to_directory.bzl"],
+    deps = [
+        ":copy_common",
+        ":directory_path",
+        ":glob_match",
+        ":output_files",
+        ":paths",
+        ":platform_utils",
+        "@bazel_skylib//lib:paths",
+    ],
+)
+
+bzl_library(
+    name = "copy_to_bin",
+    srcs = ["//lib/private:copy_to_bin.bzl"],
+    deps = [
+        ":copy_file",
+        "@bazel_skylib//lib:paths",
+    ],
+)
+
+bzl_library(
+    name = "params_file",
+    srcs = ["//lib/private:params_file.bzl"],
+    deps = [":expand_locations"],
+)
+
+bzl_library(
+    name = "paths",
+    srcs = ["//lib/private:paths.bzl"],
+    deps = ["@bazel_skylib//lib:paths"],
+)
+
+bzl_library(
+    name = "docs",
+    srcs = ["//lib/private:docs.bzl"],
+    deps = [
+        "//lib:write_source_files",
+        "@io_bazel_stardoc//stardoc:stardoc_lib",
+    ],
+)
+
+bzl_library(
+    name = "expand_locations",
+    srcs = ["//lib/private:expand_locations.bzl"],
+    deps = [
+        "@bazel_skylib//lib:paths",
+    ],
+)
+
+bzl_library(
+    name = "expand_template",
+    srcs = ["//lib/private:expand_template.bzl"],
+    deps = [
+        ":expand_locations",
+        "@bazel_skylib//lib:dicts",
+    ],
+)
+
+bzl_library(
+    name = "expand_variables",
+    srcs = ["//lib/private:expand_variables.bzl"],
+    deps = [
+        "@bazel_skylib//lib:paths",
+    ],
+)
+
+bzl_library(
+    name = "utils",
+    srcs = ["//lib/private:utils.bzl"],
+)
+
+bzl_library(
+    name = "jq",
+    srcs = ["//lib/private:jq.bzl"],
+    deps = ["//lib:stamping"],
+)
+
+bzl_library(
+    name = "local_config_platform",
+    srcs = ["//lib/private:local_config_platform.bzl"],
+)
+
+bzl_library(
+    name = "write_source_file",
+    srcs = ["//lib/private:write_source_file.bzl"],
+    deps = [
+        ":directory_path",
+        ":output_files",
+        "//lib:utils",
+    ],
+)
+
+bzl_library(
+    name = "fail_with_message_test",
+    srcs = ["//lib/private:fail_with_message_test.bzl"],
+)
+
+bzl_library(
+    name = "glob_match",
+    srcs = ["//lib/private:glob_match.bzl"],
+)
+
+bzl_library(
+    name = "directory_path",
+    srcs = ["//lib/private:directory_path.bzl"],
+    deps = ["//lib:utils"],
+)
+
+bzl_library(
+    name = "output_files",
+    srcs = ["//lib/private:output_files.bzl"],
+    deps = ["//lib:utils"],
+)
+
+bzl_library(
+    name = "diff_test",
+    srcs = ["//lib/private:diff_test.bzl"],
+)
+
+bzl_library(
+    name = "run_binary",
+    srcs = ["//lib/private:run_binary.bzl"],
+    deps = [
+        ":expand_locations",
+        ":expand_variables",
+        "//lib:stamping",
+        "@bazel_skylib//lib:dicts",
+    ],
+)
+
+bzl_library(
+    name = "patch",
+    srcs = ["//lib/private:patch.bzl"],
+    deps = [":repo_utils"],
+)
+
+bzl_library(
+    name = "host_repo",
+    srcs = ["//lib/private:host_repo.bzl"],
+    deps = [":repo_utils"],
+)
+
+bzl_library(
+    name = "jq_toolchain",
+    srcs = ["//lib/private:jq_toolchain.bzl"],
+    deps = [":repo_utils"],
+)
+
+bzl_library(
+    name = "repo_utils",
+    srcs = ["//lib/private:repo_utils.bzl"],
+)
+
+bzl_library(
+    name = "stamping",
+    srcs = ["//lib/private:stamping.bzl"],
+)
+
+bzl_library(
+    name = "yq",
+    srcs = ["//lib/private:yq.bzl"],
+)
+
+bzl_library(
+    name = "yq_toolchain",
+    srcs = ["//lib/private:yq_toolchain.bzl"],
+    deps = [":repo_utils"],
+)