)]}'
{
  "commit": "a17bd9a216fa6f6643f8e62fa891d713dcff4127",
  "tree": "38c4360e0ff1d0b5a427b5f2f515d8a19809dbea",
  "parents": [
    "ff028f2fb402f0dbdcc2b4e80192c032f827065e"
  ],
  "author": {
    "name": "Tony Liao",
    "email": "tonyliaoss@google.com",
    "time": "Wed Aug 26 11:56:20 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Aug 26 15:23:08 2026 -0700"
  },
  "message": "Support plug-and-play monolithic Docker testing across Bazel build definitions.\n\nTo support the multi-language monolithic test container (introduced in build-support#199), Protocol Buffers needs to build and test cleanly under wildcard target expansion (`bazel test //...`) in fully hermetic, isolated container environments.\n\nCurrently, executing `bazel test //...` out-of-the-box in containerized toolchains encounters multiple analysis, runtime, and environment errors:\n- Leaked internal Google3 labels and repo-relative paths in Starlark macros cause target analysis failures when exported to OSS.\n- Containerized runtime runners lack environment isolation (e.g., .NET CLI attempting to write to restricted home paths, non-standard Python interpreter paths), causing sandboxed execution failures.\n- Starlark C++ proto aspects crash when analyzing headerless/empty proto libraries.\n- Legacy network-dependent tests and deprecated blocklist targets break offline test suites during wildcard evaluation.\n\nThis change updates the build definitions, test runner scripts, and Copybara export rules so that the entire test suite resolves hermetically and passes seamlessly in both local container environments and CI workflows without external dependencies or manual overrides.\n\nPiperOrigin-RevId: 971417242\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "69fa449dd96e2405945b2e4cff2fd0ab8b102097",
      "old_mode": 33188,
      "old_path": ".bazelignore",
      "new_id": "2738ca30273c69b4ab23d09885be90d7debaebdf",
      "new_mode": 33188,
      "new_path": ".bazelignore"
    },
    {
      "type": "modify",
      "old_id": "19eb7055f69b6be2660481f88802d48809bf8e4a",
      "old_mode": 33188,
      "old_path": "bazel/private/oss/cc_proto_library.bzl",
      "new_id": "9a48292c701474defe18a9428895aa3a7ba91f87",
      "new_mode": 33188,
      "new_path": "bazel/private/oss/cc_proto_library.bzl"
    },
    {
      "type": "modify",
      "old_id": "8591747933a432a21a9520ce1156414118be7aad",
      "old_mode": 33188,
      "old_path": "build_defs/BUILD.bazel",
      "new_id": "5efc30f29a2917b7eb9332b9d075ac5155b86c3b",
      "new_mode": 33188,
      "new_path": "build_defs/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e3d4c6777081ca78f05a1154bfb656ae2d4b8808",
      "old_mode": 33261,
      "old_path": "conformance/bazel_conformance_test_runner.sh",
      "new_id": "bb88a91d37dee2ba064d37c292803351d7ae37f9",
      "new_mode": 33261,
      "new_path": "conformance/bazel_conformance_test_runner.sh"
    },
    {
      "type": "modify",
      "old_id": "2ef5f4484a22771118613253e5caec5540ce372b",
      "old_mode": 33188,
      "old_path": "conformance/defs.bzl",
      "new_id": "969733c9b4573335e27b37eea0f953e0aafe69c8",
      "new_mode": 33188,
      "new_path": "conformance/defs.bzl"
    },
    {
      "type": "modify",
      "old_id": "4bca560c65134d69f4b61b67ccba06ac897fb2ea",
      "old_mode": 33188,
      "old_path": "csharp/BUILD.bazel",
      "new_id": "adafe75c140a711a2da3b98c6707a558e6fc0f31",
      "new_mode": 33188,
      "new_path": "csharp/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "ae5d92da381f0a2392d22985cfcd06c7ac19caca",
      "old_mode": 33188,
      "old_path": "csharp/compatibility_tests/v3.0.0/BUILD.bazel",
      "new_id": "3ffdccc1718b2fa79de12f7991d693a0341fd6ba",
      "new_mode": 33188,
      "new_path": "csharp/compatibility_tests/v3.0.0/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "59e1ec0293a0a313375d078434cfa4d37d4cf8a3",
      "old_mode": 33188,
      "old_path": "csharp/protos/unittest_deep_dependencies/generate_protos.bzl",
      "new_id": "c99a2f1c6b179e10aaa48f286e49b169cdf31ed0",
      "new_mode": 33188,
      "new_path": "csharp/protos/unittest_deep_dependencies/generate_protos.bzl"
    },
    {
      "type": "modify",
      "old_id": "93298dfeabc9504dcd4cf92ed6785c032fbdc7a6",
      "old_mode": 33188,
      "old_path": "csharp/src/Google.Protobuf.Conformance/BUILD.bazel",
      "new_id": "5650484d3700c514aca0ef611f75d9ec3a793ae3",
      "new_mode": 33188,
      "new_path": "csharp/src/Google.Protobuf.Conformance/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8e5c666792c402d5bea0f725062af04a4a702bca",
      "old_mode": 33188,
      "old_path": "editions/BUILD",
      "new_id": "9d467a6b890a6f3b99e4f834656d01634855f65f",
      "new_mode": 33188,
      "new_path": "editions/BUILD"
    },
    {
      "type": "modify",
      "old_id": "f0cbde962600badb2359de71c5ba845489d0f4a2",
      "old_mode": 33261,
      "old_path": "upb/bazel/private/oss/amalgamate.py",
      "new_id": "436760bfbd15e6d710f1e4d40b264b76f1bf657e",
      "new_mode": 33261,
      "new_path": "upb/bazel/private/oss/amalgamate.py"
    }
  ]
}
