)]}'
{
  "commit": "a5dde12b0d945b54967969fafa4d5e40692f9a44",
  "tree": "e54d7df89ed2e8ac95a3bd636826f876dd91d8a4",
  "parents": [
    "d228ca0f8e7c89e321047e5f7f2722b5e8c70425"
  ],
  "author": {
    "name": "Googler",
    "email": "chiwang@google.com",
    "time": "Thu May 04 08:59:07 2023 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu May 04 09:01:45 2023 -0700"
  },
  "message": "Download toplevel artifacts within spawn execution\n\nso that after action execution, the outputs are already downloaded.\n\nWe have three types of downloads:\n  1. Download within spawn execution: the download is part of the spawn execution. Similar to normal build that, during the spawn execution, outputs are written to local file system. Metadata are not injected to skyframe, but instead, are calculated, e.g RegularFileArtifactValue.\n  2. For action that doesn\u0027t have spawn, e.g. SymlinkAction, the download is part of action finlization before injecting metadata into skyframe.\n  3. Download afterwards: the download is not part of the spawn execution. During spawn execution, metadata of outputs are injected into skyframe as RemoteFileArtifactValue. Dynamic execution, for example, can then request the downloads later.\n\nPiperOrigin-RevId: 529423585\nChange-Id: If78663e22f0d36d621ffb35331c7ae08dc79fccd\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "196ce11371d6dc26ad8bdf9c62d43faf246035a7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/RemoteArtifactChecker.java",
      "new_id": "af13fedf81f624410ff6cb35ad32b08fdd6e35ef",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/RemoteArtifactChecker.java"
    },
    {
      "type": "modify",
      "old_id": "b165c42f6baef7e9bfc8901a40b64f4c02f49146",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/AbstractActionInputPrefetcher.java",
      "new_id": "20d8a331cfda5d4acf7306051ca8bafc7e6a7b9d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/AbstractActionInputPrefetcher.java"
    },
    {
      "type": "modify",
      "old_id": "61d722400073c0a9489e37dcedf2d36fa30573d5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java",
      "new_id": "df57599c3a083772d113001c8da268995ed0d50b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteActionContextProvider.java"
    },
    {
      "type": "modify",
      "old_id": "e3ab7382e96f70a6d2c28ba2b2b37302f421f949",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteActionFileSystem.java",
      "new_id": "295c70ec7771f8024c7884ba239ce5dd5c446161",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteActionFileSystem.java"
    },
    {
      "type": "modify",
      "old_id": "8f8874e5c416b6e5bbafc39534e005e716d28cd6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java",
      "new_id": "0923429a757d3b7a5ed1fcac75982da7738b5f61",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteExecutionService.java"
    },
    {
      "type": "modify",
      "old_id": "6180167256d5c96f4675fcf29b29b9f90c6dd268",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java",
      "new_id": "60a7c3550b7a566f6d30db75cf5a0b90a6b788c2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java"
    },
    {
      "type": "modify",
      "old_id": "8418237e9697b59aa87cdd139e0cbd207d46980a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteOutputChecker.java",
      "new_id": "3ac336ca321b92b2f261cd1b8adaa9b81790d07d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteOutputChecker.java"
    },
    {
      "type": "modify",
      "old_id": "03048b8defd623b267e5416f478a85c94fab053f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteOutputService.java",
      "new_id": "996d1ca65616bcbd1619a77484528dc1bf1f5f9d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/remote/RemoteOutputService.java"
    },
    {
      "type": "modify",
      "old_id": "6b37fd0dd102c274a17cc241313ead816fba4455",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java",
      "new_id": "954a87c473e573693244204fb44b3397f2f67089",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "f87ab8b508998dbdd645486c545af23f7b9bfd20",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/vfs/OutputService.java",
      "new_id": "840a6aa142b4b8b5ce57c694c6fbef7aeaf11718",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/vfs/OutputService.java"
    },
    {
      "type": "modify",
      "old_id": "c869f6088be1e2e7b802b760cbf92abdbc9904e9",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/actions/ActionCacheCheckerTest.java",
      "new_id": "9ae6943597daa07211de878e8cdb63abf0756197",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/actions/ActionCacheCheckerTest.java"
    },
    {
      "type": "modify",
      "old_id": "cedd01510f042712160ad7e15cd5f6a9f543e98a",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/BUILD",
      "new_id": "a010b14eb4341d11a4a5073142bd2a563cd56791",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/BUILD"
    },
    {
      "type": "modify",
      "old_id": "d07d0e4bf690b6e32ac7d021f0c805c6e635c5cb",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTest.java",
      "new_id": "a1aa27e55735793cc2f98059e0fe6d278565c99e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTest.java"
    },
    {
      "type": "modify",
      "old_id": "83bb5b43e23cd2aa7563d1451a767c2505e4a0f8",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTestBase.java",
      "new_id": "a34b117934b03d043b43a6858d966da355b06eaf",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/BuildWithoutTheBytesIntegrationTestBase.java"
    },
    {
      "type": "modify",
      "old_id": "32f6a0f6c55cb453c65ae674781669c0b0b6043f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteActionFileSystemTest.java",
      "new_id": "3f585c11e9ccdbd917d71f3a1b46203b1109a184",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteActionFileSystemTest.java"
    },
    {
      "type": "modify",
      "old_id": "12e8de9fe9e28f491c5b617f67e815aa3c100e11",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteExecutionServiceTest.java",
      "new_id": "61a16d74b33e13b1cd5102de06e2816fab653741",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteExecutionServiceTest.java"
    },
    {
      "type": "modify",
      "old_id": "318f1bd87e918ead23ad8186ffc12afbe3fb0f91",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java",
      "new_id": "22c5ff7bb04a7b083b3e96ff5b20705d00ceaba7",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnCacheTest.java"
    },
    {
      "type": "modify",
      "old_id": "ca4e6ec2d3a01fe648e0288de96dc0a993e4987f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java",
      "new_id": "e7e22a90ead9f40db22ce5c6cc3fb5124c54b2bd",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java"
    },
    {
      "type": "modify",
      "old_id": "11a14cba5a7ff20425ce97d19149379c90ed4cff",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerWithGrpcRemoteExecutorTest.java",
      "new_id": "86c7faf2e88c26c0c90ee94e2cdecf81cedeb141",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerWithGrpcRemoteExecutorTest.java"
    }
  ]
}
