[Bazel/C++] Factor out stubs, io, and testing libraries. (#9980)

This change creates packages under src/google/protobuf/{io,stubs,testing} and moves build definitions there. Future changes will handle .../util and .../compiler, and finally src/google/protobuf.
diff --git a/BUILD.bazel b/BUILD.bazel
index e8a26c5..2e355e1 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -21,11 +21,35 @@
 ################################################################################
 
 cc_library(
+    name = "port_def",
+    hdrs = ["src/google/protobuf/port.h"],
+    includes = ["src"],
+    textual_hdrs = [
+        "src/google/protobuf/port_def.inc",
+        "src/google/protobuf/port_undef.inc",
+    ],
+    visibility = ["//:__subpackages__"],
+)
+
+cc_library(
+    name = "arena",
+    srcs = [
+        "src/google/protobuf/arena.cc",
+        "src/google/protobuf/arena_impl.h",
+        "src/google/protobuf/arenaz_sampler.h",
+    ],
+    hdrs = ["src/google/protobuf/arena.h"],
+    visibility = ["//:__subpackages__"],
+    deps = [
+        "//src/google/protobuf/stubs:lite",
+    ],
+)
+
+cc_library(
     name = "protobuf_lite",
     srcs = [
         # AUTOGEN(protobuf_lite_srcs)
         "src/google/protobuf/any_lite.cc",
-        "src/google/protobuf/arena.cc",
         "src/google/protobuf/arenastring.cc",
         "src/google/protobuf/arenaz_sampler.cc",
         "src/google/protobuf/extension_set.cc",
@@ -34,27 +58,11 @@
         "src/google/protobuf/generated_message_util.cc",
         "src/google/protobuf/implicit_weak_message.cc",
         "src/google/protobuf/inlined_string_field.cc",
-        "src/google/protobuf/io/coded_stream.cc",
-        "src/google/protobuf/io/io_win32.cc",
-        "src/google/protobuf/io/strtod.cc",
-        "src/google/protobuf/io/zero_copy_stream.cc",
-        "src/google/protobuf/io/zero_copy_stream_impl.cc",
-        "src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
         "src/google/protobuf/map.cc",
         "src/google/protobuf/message_lite.cc",
         "src/google/protobuf/parse_context.cc",
         "src/google/protobuf/repeated_field.cc",
         "src/google/protobuf/repeated_ptr_field.cc",
-        "src/google/protobuf/stubs/bytestream.cc",
-        "src/google/protobuf/stubs/common.cc",
-        "src/google/protobuf/stubs/int128.cc",
-        "src/google/protobuf/stubs/status.cc",
-        "src/google/protobuf/stubs/statusor.cc",
-        "src/google/protobuf/stubs/stringpiece.cc",
-        "src/google/protobuf/stubs/stringprintf.cc",
-        "src/google/protobuf/stubs/structurally_valid.cc",
-        "src/google/protobuf/stubs/strutil.cc",
-        "src/google/protobuf/stubs/time.cc",
         "src/google/protobuf/wire_format_lite.cc",
     ],
     hdrs = glob([
@@ -65,6 +73,11 @@
     includes = ["src/"],
     linkopts = LINK_OPTS,
     visibility = ["//visibility:public"],
+    deps = [
+        ":arena",
+        "//src/google/protobuf/io",
+        "//src/google/protobuf/stubs:lite",
+    ],
 )
 
 cc_library(
@@ -87,16 +100,12 @@
         "src/google/protobuf/generated_message_bases.cc",
         "src/google/protobuf/generated_message_reflection.cc",
         "src/google/protobuf/generated_message_tctable_full.cc",
-        "src/google/protobuf/io/gzip_stream.cc",
-        "src/google/protobuf/io/printer.cc",
-        "src/google/protobuf/io/tokenizer.cc",
         "src/google/protobuf/map_field.cc",
         "src/google/protobuf/message.cc",
         "src/google/protobuf/reflection_ops.cc",
         "src/google/protobuf/service.cc",
         "src/google/protobuf/source_context.pb.cc",
         "src/google/protobuf/struct.pb.cc",
-        "src/google/protobuf/stubs/substitute.cc",
         "src/google/protobuf/text_format.cc",
         "src/google/protobuf/timestamp.pb.cc",
         "src/google/protobuf/type.pb.cc",
@@ -132,10 +141,14 @@
     includes = ["src/"],
     linkopts = LINK_OPTS,
     visibility = ["//visibility:public"],
-    deps = [":protobuf_lite"] + select({
-        "//build_defs:config_msvc": [],
-        "//conditions:default": ["@zlib//:zlib"],
-    }),
+    deps = [
+        ":protobuf_lite",
+        "//src/google/protobuf/io",
+        "//src/google/protobuf/io:gzip_stream",
+        "//src/google/protobuf/io:printer",
+        "//src/google/protobuf/io:tokenizer",
+        "//src/google/protobuf/stubs",
+    ],
 )
 
 # This provides just the header files for use in projects that need to build
@@ -447,7 +460,9 @@
 
 filegroup(
     name = "testdata",
-    srcs = glob(["src/google/protobuf/testdata/**/*"]),
+    srcs = glob(["src/google/protobuf/testdata/**/*"]) + [
+        "src/google/protobuf/descriptor.cc",
+    ],
     visibility = [
         "//:__subpackages__",
         "@upb//:__subpackages__",
@@ -631,8 +646,6 @@
     "src/google/protobuf/reflection_tester.cc",
     "src/google/protobuf/test_util.cc",
     "src/google/protobuf/test_util.inc",
-    "src/google/protobuf/testing/file.cc",
-    "src/google/protobuf/testing/googletest.cc",
 ]
 
 cc_binary(
@@ -642,30 +655,17 @@
         # AUTOGEN(test_plugin_srcs)
         "src/google/protobuf/compiler/mock_code_generator.cc",
         "src/google/protobuf/compiler/test_plugin.cc",
-        "src/google/protobuf/testing/file.cc",
     ],
+    copts = COPTS,
     deps = [
         ":protobuf",
         ":protoc_lib",
+        "//src/google/protobuf/testing",
         "@com_google_googletest//:gtest",
     ],
 )
 
 cc_test(
-    name = "win32_test",
-    srcs = ["src/google/protobuf/io/io_win32_unittest.cc"],
-    tags = [
-        "manual",
-        "windows",
-    ],
-    deps = [
-        ":protobuf_lite",
-        "@com_google_googletest//:gtest",
-        "@com_google_googletest//:gtest_main",
-    ],
-)
-
-cc_test(
     name = "protobuf_test",
     srcs = COMMON_TEST_SRCS + [
         # AUTOGEN(test_srcs)
@@ -699,11 +699,6 @@
         "src/google/protobuf/generated_message_reflection_unittest.cc",
         "src/google/protobuf/generated_message_tctable_lite_test.cc",
         "src/google/protobuf/inlined_string_field_unittest.cc",
-        "src/google/protobuf/io/coded_stream_unittest.cc",
-        "src/google/protobuf/io/io_win32_unittest.cc",
-        "src/google/protobuf/io/printer_unittest.cc",
-        "src/google/protobuf/io/tokenizer_unittest.cc",
-        "src/google/protobuf/io/zero_copy_stream_unittest.cc",
         "src/google/protobuf/map_field_test.cc",
         "src/google/protobuf/map_test.cc",
         "src/google/protobuf/map_test.inc",
@@ -718,17 +713,6 @@
         "src/google/protobuf/reflection_ops_unittest.cc",
         "src/google/protobuf/repeated_field_reflection_unittest.cc",
         "src/google/protobuf/repeated_field_unittest.cc",
-        "src/google/protobuf/stubs/bytestream_unittest.cc",
-        "src/google/protobuf/stubs/common_unittest.cc",
-        "src/google/protobuf/stubs/int128_unittest.cc",
-        "src/google/protobuf/stubs/status_test.cc",
-        "src/google/protobuf/stubs/statusor_test.cc",
-        "src/google/protobuf/stubs/stringpiece_unittest.cc",
-        "src/google/protobuf/stubs/stringprintf_unittest.cc",
-        "src/google/protobuf/stubs/structurally_valid_unittest.cc",
-        "src/google/protobuf/stubs/strutil_unittest.cc",
-        "src/google/protobuf/stubs/template_util_unittest.cc",
-        "src/google/protobuf/stubs/time_test.cc",
         "src/google/protobuf/text_format_unittest.cc",
         "src/google/protobuf/unknown_field_set_unittest.cc",
         "src/google/protobuf/util/delimited_message_util_test.cc",
@@ -758,6 +742,7 @@
         # Files for csharp_bootstrap_unittest.cc.
         "//conformance:all_files",
         ":test_plugin",
+        ":testdata",
     ] + glob([
         "src/google/protobuf/**/*",
     ]) + glob(
@@ -776,12 +761,10 @@
         ":cc_test_protos",
         ":protobuf",
         ":protoc_lib",
+        "//src/google/protobuf/testing",
         "@com_google_googletest//:gtest",
         "@com_google_googletest//:gtest_main",
-    ] + select({
-        "//build_defs:config_msvc": [],
-        "//conditions:default": ["@zlib//:zlib"],
-    }),
+    ],
 )
 
 ################################################################################
@@ -930,15 +913,15 @@
 
 proto_library(
     name = "test_messages_proto2_proto",
-    strip_import_prefix = "src",
     srcs = ["src/google/protobuf/test_messages_proto2.proto"],
+    strip_import_prefix = "src",
     visibility = ["//visibility:public"],
 )
 
 proto_library(
     name = "test_messages_proto3_proto",
-    strip_import_prefix = "src",
     srcs = ["src/google/protobuf/test_messages_proto3.proto"],
+    strip_import_prefix = "src",
     visibility = ["//visibility:public"],
     deps = [
         ":any_proto",
@@ -1021,8 +1004,8 @@
         "src/google/protobuf/unittest_import_public_lite.proto",
         "src/google/protobuf/unittest_lite.proto",
     ],
-    visibility = ["//java/kotlin-lite:__subpackages__"],
     strip_import_prefix = "src",
+    visibility = ["//java/kotlin-lite:__subpackages__"],
 )
 
 proto_library(
@@ -1033,8 +1016,8 @@
         "src/google/protobuf/unittest_import.proto",
         "src/google/protobuf/unittest_import_public.proto",
     ],
-    visibility = ["//java/kotlin:__subpackages__"],
     strip_import_prefix = "src",
+    visibility = ["//java/kotlin:__subpackages__"],
 )
 
 proto_library(
@@ -1044,11 +1027,11 @@
         "src/google/protobuf/unittest_import_public.proto",
         "src/google/protobuf/unittest_proto3.proto",
     ],
+    strip_import_prefix = "src",
     visibility = [
         "//java/kotlin:__subpackages__",
         "//java/kotlin-lite:__subpackages__",
     ],
-    strip_import_prefix = "src",
 )
 
 ################################################################################
diff --git a/kokoro/linux/bazel/build.sh b/kokoro/linux/bazel/build.sh
index a338a99..18a2e3a 100755
--- a/kokoro/linux/bazel/build.sh
+++ b/kokoro/linux/bazel/build.sh
@@ -32,7 +32,10 @@
   //:protoc \
   //:protobuf \
   //:protobuf_python \
-  //:protobuf_test
+  //:protobuf_test \
+  //src/google/protobuf/io:all \
+  //src/google/protobuf/stubs:all \
+  //src/google/protobuf/testing:all
 trap - EXIT
 
 pushd examples
diff --git a/kokoro/linux/bazel_distcheck/build.sh b/kokoro/linux/bazel_distcheck/build.sh
index 740a4ab..26fe113 100755
--- a/kokoro/linux/bazel_distcheck/build.sh
+++ b/kokoro/linux/bazel_distcheck/build.sh
@@ -20,6 +20,9 @@
   //java:tests
   //python:all
   //:protobuf_test
+  //src/google/protobuf/io:all
+  //src/google/protobuf/stubs:all
+  //src/google/protobuf/testing:all
   @com_google_protobuf_examples//...
 )
 
diff --git a/pkg/BUILD.bazel b/pkg/BUILD.bazel
index e489944..2139412 100644
--- a/pkg/BUILD.bazel
+++ b/pkg/BUILD.bazel
@@ -99,6 +99,7 @@
 # TODO: these will eventually replace autotools for release artifact packaging.
 ################################################################################
 
+
 pkg_filegroup(
     name = "dist_common",
     srcs = [
@@ -108,6 +109,9 @@
         "//benchmarks:all_dist_files",
         "//build_defs:dist_files",
         "//conformance:all_dist_files",
+        "//src/google/protobuf/io:dist_files",
+        "//src/google/protobuf/stubs:dist_files",
+        "//src/google/protobuf/testing:dist_files",
         "@com_google_protobuf_examples//:dist_files",
     ],
 )
@@ -357,10 +361,14 @@
         "//build_defs:config_msvc": [],
         "//conditions:default": ["-lpthread"],
     }),
-    deps = [
-        "//:protobuf_lite",
-    ],
     tags = ["manual"],
+    deps = [
+        "//:arena",
+        "//:protobuf_lite",
+        "//src/google/protobuf/io",
+        "//src/google/protobuf/io:io_win32",
+        "//src/google/protobuf/stubs:lite",
+    ],
 )
 
 cc_dist_library(
@@ -372,11 +380,19 @@
             "-lpthread",
         ],
     }),
+    tags = ["manual"],
     deps = [
+        "//:arena",
         "//:protobuf",
         "//:protobuf_lite",
+        "//src/google/protobuf/io",
+        "//src/google/protobuf/io:gzip_stream",
+        "//src/google/protobuf/io:io_win32",
+        "//src/google/protobuf/io:printer",
+        "//src/google/protobuf/io:tokenizer",
+        "//src/google/protobuf/stubs",
+        "//src/google/protobuf/stubs:lite",
     ],
-    tags = ["manual"],
 )
 
 ################################################################################
diff --git a/src/Makefile.am b/src/Makefile.am
index 9033a46..89ac8fe 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -554,10 +554,12 @@
   google/protobuf/compiler/ruby/ruby_generated_pkg_implicit.proto \
   google/protobuf/compiler/ruby/ruby_generated_pkg_implicit_pb.rb \
   google/protobuf/compiler/zip_output_unittest.sh              \
+  google/protobuf/io/BUILD.bazel                               \
   google/protobuf/io/gzip_stream.h                             \
   google/protobuf/io/gzip_stream_unittest.sh                   \
   google/protobuf/io/package_info.h                            \
   google/protobuf/package_info.h                               \
+  google/protobuf/stubs/BUILD.bazel                            \
   google/protobuf/test_messages_proto2.proto                   \
   google/protobuf/test_messages_proto3.proto                   \
   google/protobuf/testdata/bad_utf8_string                     \
@@ -573,6 +575,7 @@
   google/protobuf/testdata/text_format_unittest_data_pointy_oneof.txt \
   google/protobuf/testdata/text_format_unittest_extensions_data.txt \
   google/protobuf/testdata/text_format_unittest_extensions_data_pointy.txt \
+  google/protobuf/testing/BUILD.bazel                          \
   google/protobuf/util/package_info.h                          \
   libprotobuf-lite.map                                         \
   libprotobuf.map                                              \
diff --git a/src/google/protobuf/io/BUILD.bazel b/src/google/protobuf/io/BUILD.bazel
new file mode 100644
index 0000000..98b4e34
--- /dev/null
+++ b/src/google/protobuf/io/BUILD.bazel
@@ -0,0 +1,146 @@
+# Protobuf IO library.
+
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
+load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS")
+
+package(
+    default_visibility = ["//visibility:public"],
+)
+
+cc_library(
+    name = "io",
+    srcs = [
+        "coded_stream.cc",
+        "zero_copy_stream.cc",
+        "zero_copy_stream_impl.cc",
+        "zero_copy_stream_impl_lite.cc",
+    ],
+    hdrs = [
+        "coded_stream.h",
+        "zero_copy_stream.h",
+        "zero_copy_stream_impl.h",
+        "zero_copy_stream_impl_lite.h",
+    ],
+    copts = COPTS,
+    include_prefix = "google/protobuf/io",
+    deps = [
+        ":io_win32",
+        "//:arena",
+        "//src/google/protobuf/stubs:lite",
+    ],
+)
+
+cc_library(
+    name = "printer",
+    srcs = ["printer.cc"],
+    hdrs = ["printer.h"],
+    copts = COPTS + select({
+        "//build_defs:config_msvc": [],
+        "//conditions:default": ["-Wno-maybe-uninitialized"],
+    }),
+    include_prefix = "google/protobuf/io",
+    deps = [
+        ":io",
+        "//src/google/protobuf/stubs",
+    ],
+)
+
+cc_library(
+    name = "tokenizer",
+    srcs = [
+        "strtod.cc",
+        "tokenizer.cc",
+    ],
+    hdrs = [
+        "strtod.h",
+        "tokenizer.h",
+    ],
+    copts = COPTS,
+    include_prefix = "google/protobuf/io",
+    deps = [
+        ":io",
+        "//src/google/protobuf/stubs",
+    ],
+)
+
+cc_library(
+    name = "gzip_stream",
+    srcs = ["gzip_stream.cc"],
+    hdrs = ["gzip_stream.h"],
+    copts = COPTS + select({
+        "//build_defs:config_msvc": [],
+        "//conditions:default": ["-Wno-maybe-uninitialized"],
+    }),
+    include_prefix = "google/protobuf/io",
+    deps = [
+        ":io",
+        "//src/google/protobuf/stubs",
+    ] + select({
+        "//build_defs:config_msvc": [],
+        "//conditions:default": ["@zlib//:zlib"],
+    }),
+)
+
+cc_library(
+    name = "io_win32",
+    srcs = ["io_win32.cc"],
+    hdrs = ["io_win32.h"],
+    copts = COPTS,
+    include_prefix = "google/protobuf/io",
+    visibility = ["//pkg:__pkg__"],
+    deps = [
+        "//:arena",
+        "//src/google/protobuf/stubs:lite",
+    ],
+)
+
+cc_test(
+    name = "io_test",
+    srcs = [
+        "coded_stream_unittest.cc",
+        "printer_unittest.cc",
+        "tokenizer_unittest.cc",
+        "zero_copy_stream_unittest.cc",
+    ],
+    copts = COPTS + select({
+        "//build_defs:config_msvc": [],
+        "//conditions:default": ["-Wno-maybe-uninitialized"],
+    }),
+    data = [
+        "//:testdata",
+    ],
+    deps = [
+        ":gzip_stream",
+        ":io",
+        "//:protobuf",
+        "//src/google/protobuf/testing",
+        "@com_google_googletest//:gtest",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+cc_test(
+    name = "win32_test",
+    srcs = ["io_win32_unittest.cc"],
+    tags = [
+        "manual",
+        "windows",
+    ],
+    deps = [
+        "//:protobuf_lite",
+        "@com_google_googletest//:gtest",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+################################################################################
+# Distribution packaging
+################################################################################
+
+pkg_files(
+    name = "dist_files",
+    srcs = glob(["**/*"]),
+    strip_prefix = strip_prefix.from_root(""),
+    visibility = ["//pkg:__pkg__"],
+)
diff --git a/src/google/protobuf/stubs/BUILD.bazel b/src/google/protobuf/stubs/BUILD.bazel
new file mode 100644
index 0000000..b2a3ff6
--- /dev/null
+++ b/src/google/protobuf/stubs/BUILD.bazel
@@ -0,0 +1,138 @@
+# Protobuf stubs library.
+#   These are utilities that mirror the behavior of internal Google code.
+
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
+load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS")
+
+package(
+    default_visibility = ["//:__subpackages__"],
+)
+
+cc_library(
+    name = "lite",
+    srcs = [
+        "bytestream.cc",
+        "common.cc",
+        "int128.cc",
+        "status.cc",
+        "statusor.cc",
+        "stringpiece.cc",
+        "stringprintf.cc",
+        "structurally_valid.cc",
+        "strutil.cc",
+        "time.cc",
+    ],
+    hdrs = [
+        "bytestream.h",
+        "callback.h",
+        "casts.h",
+        "common.h",
+        "hash.h",
+        "int128.h",
+        "logging.h",
+        "macros.h",
+        "map_util.h",
+        "mathutil.h",
+        "mutex.h",
+        "once.h",
+        "platform_macros.h",
+        "port.h",
+        "status.h",
+        "status_macros.h",
+        "statusor.h",
+        "stl_util.h",
+        "stringpiece.h",
+        "stringprintf.h",
+        "strutil.h",
+        "template_util.h",
+        "time.h",
+    ],
+    copts = COPTS,
+    include_prefix = "google/protobuf/stubs",
+    linkopts = LINK_OPTS,
+    deps = ["//:port_def"],
+)
+
+cc_library(
+    name = "stubs",
+    srcs = [
+        "substitute.cc",
+    ],
+    hdrs = [
+        "substitute.h",
+    ],
+    copts = COPTS,
+    include_prefix = "google/protobuf/stubs",
+    textual_hdrs = [
+        "bytestream.h",
+        "callback.h",
+        "casts.h",
+        "common.h",
+        "hash.h",
+        "int128.h",
+        "logging.h",
+        "macros.h",
+        "map_util.h",
+        "mathutil.h",
+        "mutex.h",
+        "once.h",
+        "platform_macros.h",
+        "port.h",
+        "status.h",
+        "status_macros.h",
+        "statusor.h",
+        "stl_util.h",
+        "stringpiece.h",
+        "stringprintf.h",
+        "strutil.h",
+        "template_util.h",
+        "time.h",
+    ],
+    deps = [
+        ":lite",
+        "//:port_def",
+    ],
+)
+
+cc_test(
+    name = "stubs_test",
+    srcs = [
+        "bytestream_unittest.cc",
+        "common_unittest.cc",
+        "int128_unittest.cc",
+        "status_test.cc",
+        "statusor_test.cc",
+        "stringpiece_unittest.cc",
+        "stringprintf_unittest.cc",
+        "structurally_valid_unittest.cc",
+        "strutil_unittest.cc",
+        "template_util_unittest.cc",
+        "time_test.cc",
+    ],
+    copts = COPTS + select({
+        "//build_defs:config_msvc": [],
+        "//conditions:default": [
+            "-Wno-deprecated-declarations",
+        ],
+    }),
+    linkopts = LINK_OPTS,
+    deps = [
+        ":lite",
+        ":stubs",
+        "//src/google/protobuf/testing",
+        "@com_google_googletest//:gtest",
+        "@com_google_googletest//:gtest_main",
+    ],
+)
+
+################################################################################
+# Distribution packaging
+################################################################################
+
+pkg_files(
+    name = "dist_files",
+    srcs = glob(["**/*"]),
+    strip_prefix = strip_prefix.from_root(""),
+    visibility = ["//pkg:__pkg__"],
+)
diff --git a/src/google/protobuf/testing/BUILD.bazel b/src/google/protobuf/testing/BUILD.bazel
new file mode 100644
index 0000000..323f472
--- /dev/null
+++ b/src/google/protobuf/testing/BUILD.bazel
@@ -0,0 +1,41 @@
+# Protobuf testing support.
+#   This package contains testonly utilities used in C++ unit tests.
+
+load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
+load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
+load("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS")
+
+package(default_visibility = ["//:__subpackages__"])
+
+cc_library(
+    name = "testing",
+    testonly = 1,
+    srcs = [
+        "file.cc",
+        "googletest.cc",
+    ],
+    hdrs = [
+        "file.h",
+        "googletest.h",
+    ],
+    copts = COPTS,
+    include_prefix = "google/protobuf/testing",
+    linkopts = LINK_OPTS,
+    deps = [
+        "//:protobuf_lite",  # for ShutdownProtobufLibrary
+        "//src/google/protobuf/io",
+        "//src/google/protobuf/stubs:lite",
+        "@com_google_googletest//:gtest",
+    ],
+)
+
+################################################################################
+# Distribution packaging
+################################################################################
+
+pkg_files(
+    name = "dist_files",
+    srcs = glob(["**/*"]),
+    strip_prefix = strip_prefix.from_root(""),
+    visibility = ["//pkg:__pkg__"],
+)