)]}'
{
  "commit": "dc8b2e9a40770dde7638898bf3e3573eb51a79f8",
  "tree": "4ec53fe63861f5de8275953552aaabf3fd0b00a3",
  "parents": [
    "8529746358ff5d88dc7ddf584a85ba0aa1a269a8"
  ],
  "author": {
    "name": "janakr",
    "email": "janakr@google.com",
    "time": "Fri Aug 18 22:52:37 2017 +0200"
  },
  "committer": {
    "name": "Damien Martin-Guillerez",
    "email": "dmarting@google.com",
    "time": "Mon Aug 21 14:16:06 2017 +0200"
  },
  "message": "Initial (partial) implementation of configured target query. Activated by passing the --post_build_query flag to a build command, with a query expression as the argument. Bazel then executes this query on the configured target graph as constructed by the build command.\n\nSince the prepare graph -\u003e query workflow is how SkyQueryEnvironment works, this is mostly just copying that.\n\nMain missing features/code cleanups:\n* Recursive target patterns (/...) are not supported.\n* There is no way to specify the configuration of the targets in your query.\n* Configuration output is totally opaque (just the hash, or null if no configuration).\n* More generally, no output options.\n* Some features (visibility, label attrs) not supported.\n* No edge filtering (host deps, implicit deps).\n* Aspects are totally ignored.\n* Graceful failure on errors, edge cases, incompatible flags (like the TAP flags that discard edges).\n* Code hygiene issues (calling test-only method to get to Skyframe graph, some code duplication across ConfiguredTargetQueryEnvironment and SkyQueryEnvironment).\n\nMost of the features I plan to leave to rules-side people, since I think they won\u0027t be too hard for a general Blaze developer to implement, and designing the right features and user interfaces for these things is better left to the rules side.\n\nPiperOrigin-RevId: 165747829\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cff45726089b5f576ddede02fe3b02de054f2e79",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java",
      "new_id": "75ba13177a30eb92b0f4eaa2ed4597373821fb2c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java"
    },
    {
      "type": "modify",
      "old_id": "127b01d026358c7ef7ae8ed50fe0e67ba16cf28f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java",
      "new_id": "d04e23b0977153b0184da53ad5456603795a66ae",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java"
    },
    {
      "type": "modify",
      "old_id": "a2babbc9eff11f99d300e7bd916e8cd0ced99dba",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java",
      "new_id": "bb890cbe59622b13ecece7be00cd1c6111df84d6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java"
    },
    {
      "type": "modify",
      "old_id": "72fb496fbe5b24ee81beefe559c69d6bd608df50",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/query2/BUILD",
      "new_id": "968d550a420fa7967c0ae4741b36e61248cf4db5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/BUILD"
    },
    {
      "type": "modify",
      "old_id": "d345a271949e270d21e0f0ffcd69d48f5fad0f8c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/query2/BlazeTargetAccessor.java",
      "new_id": "1579483001390c7f01642cb84f95709687219321",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/BlazeTargetAccessor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d60fc75c07bd87c60017a04de07643b8f44f8d5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetAccessor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3628a76ad1f5a09305ed847206bb4116b477ce6e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java"
    },
    {
      "type": "modify",
      "old_id": "383a28ffb8a3ac0d577fa5449ee88c5916bf47ec",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java",
      "new_id": "0fb0283594240a458bc9dac54b0bc552ff4e05f7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/SkyQueryEnvironment.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "002b9c0197d2ed2cab6063fca7f666fc5e58abad",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/query2/SkyQueryUtils.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "42029c15d967ea8086f06cb51376aaa69d364512",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutorWrappingWalkableGraph.java"
    }
  ]
}
