)]}'
{
  "commit": "25f03d88b28efd47fb5cfefb7a4b477454d8a2d6",
  "tree": "a57f9db8c5b1efd6915a4cc43afe7a29258f4751",
  "parents": [
    "9668361ba9db4b3d2b05e5e33e2c82a7f1085f2b"
  ],
  "author": {
    "name": "Ulf Adams",
    "email": "ulfjack@google.com",
    "time": "Mon Jan 25 10:31:46 2016 +0000"
  },
  "committer": {
    "name": "Kristina Chodorow",
    "email": "kchodorow@google.com",
    "time": "Mon Jan 25 16:51:11 2016 +0000"
  },
  "message": "Move analysis root cause tracking to the ConfiguredTargetFunction.\n\nThe main remaining problem with interleaved loading and analysis is error\nhandling. When interleaving, we don\u0027t run a real loading phase anymore, and\nloading errors can occur during the analysis phase, and need to be handled\nthere.\n\nThe plan is to have ConfiguredTargetFunction throw a\nConfiguredValueCreationException with a list of all loading root causes, which\nrequires that we also catch ConfiguredValueCreationException here, which in\nturn breaks analysis root cause handling, as that is currently relying on\nSkyframe root cause tracking.\n\nMoving analysis root cause handling into CTFunction makes it possible to\nsubsequently also implement loading root cause handling here. This is also\nnecessary if we want to have complete root cause handling in the general case:\na target may have any number (and combination) of loading and analysis root\ncauses at the same time.\n\nFor now, we only pass a single analysis root cause, which mirrors the current\nSkyframe-based implementation.\n\n--\nMOS_MIGRATED_REVID\u003d112930871\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "032434d804ca0c579fd09b3080c8cb399b4da9db",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java",
      "new_id": "dca5c79101f369eff803c07e25a34b528a7fa940",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java"
    },
    {
      "type": "modify",
      "old_id": "9b5bdad15c762c040cd52738f705b58b79aee248",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java",
      "new_id": "15498ce490245f09e6d96f3bea43f01d56b1e3f1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/BuildConfigurationFunction.java"
    },
    {
      "type": "modify",
      "old_id": "97b6d36c7588119ad197a23050bb9a8fde75d2d1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java",
      "new_id": "1d6329a6a1aa3a017741cdc6be858a7de283048f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java"
    },
    {
      "type": "modify",
      "old_id": "af8997035b2f3edba4d900a8e9013c5cb22ae2db",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java",
      "new_id": "6d5b0bc61a63ddd846cd967e688d28e89ad9f57b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java"
    }
  ]
}
