)]}'
{
  "commit": "60fccab3869360abcf2df7e3606efd82658806f6",
  "tree": "4035e2f8c149a68648454312e88eb88215680a4c",
  "parents": [
    "d243fa3aff46bb865dbe9d3eb99b97abb135c86b"
  ],
  "author": {
    "name": "bazel.build machine account",
    "email": "ci.bazel@gmail.com",
    "time": "Thu Oct 08 22:02:29 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Oct 08 22:02:29 2026 +0000"
  },
  "message": "[9.4.0] Download top-level source files also without merged analysis and execution (#31489) (#31636)\n\n### Description\n\nThe handler that downloads the outputs of top-level targets at the end\nof a build is now registered regardless of whether analysis and\nexecution are merged.\n\n### Motivation\n\nWithout `--experimental_merged_skyframe_analysis_execution`, the outputs\nof top-level targets are downloaded when the actions that produce them\nare finalized. A source file of a repo that is served from the remote\nrepo contents cache has no such action, so it was never downloaded:\n`bazel run @my_repo//:tool.sh` reported a successful build and then\nfailed to execute the file.\n`testRunSourceExecutableWithoutMergedAnalysisAndExecution` reproduces\nthis.\n\nFor derived outputs, the handler finds the files already downloaded and\nonly has to check their presence.\n\nWork towards #31456\n\n### Build API Changes\n\nNo\n\n### Release Notes\n\nRELNOTES: None\n\nCloses #31489\n\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/bazelbuild/bazel/pull/31489\nfrom fmeum:rrcc-toplevel-source-outputs\n22fdd51f0121ec6e53384c3e9e066496f359060d\nPiperOrigin-RevId: 995700533\nChange-Id: Ie7e4b7b6c0c2947b21845c75ccccc3f64a946e31\n\nCommit\nhttps://github.com/bazelbuild/bazel/commit/7cb306b47fad1c353208822e37f9e78902e5e39f\n\nCo-authored-by: Fabian Meumertzheim \u003cfabian@meumertzhe.im\u003e\nCo-authored-by: Ian (Hee) Cha \u003cheec@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "633cae1f61fe7a2e913a68939a9b4e426e0ad5a3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java",
      "new_id": "8a39021e05803571cb6c0ceb078f9d87cad3e0e5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java"
    },
    {
      "type": "modify",
      "old_id": "f3678371128711608d0f8798cb6b6e76c6dc6ca6",
      "old_mode": 33188,
      "old_path": "src/test/py/bazel/bzlmod/remote_repo_contents_cache_test.py",
      "new_id": "5985685d6ba8701d78d09a6fc9b13f3c95853b7c",
      "new_mode": 33188,
      "new_path": "src/test/py/bazel/bzlmod/remote_repo_contents_cache_test.py"
    }
  ]
}
