)]}'
{
  "commit": "4ae85387e69db73e507b4f18b36d3e2f799e5d34",
  "tree": "2e0595ed4cf6193f24fe7e733bd547dbf0c76f88",
  "parents": [
    "a24d1bc30ded24af0fd33646dcbd62a9a07e98b7"
  ],
  "author": {
    "name": "Philipp Schrader",
    "email": "philipp.schrader@gmail.com",
    "time": "Wed Jul 27 08:29:08 2022 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jul 27 08:29:08 2022 -0700"
  },
  "message": "Prevent aspects from executing on incompatible targets (#15984)\n\n* Prevent aspects from executing on incompatible targets\r\n\r\nThis patch prevents aspect functions from being evaluated when their\r\nassociated targets are incompatible. Otherwise aspects can generate\r\nerrors that should never be printed at all. For example, an aspect\r\nevaluating an incompatible target may generate errors about missing\r\nproviders. This is not the desired behaviour.\r\n\r\nThe implementation in this patch short-circuits the `AspectValue`\r\ncreation if the associated target is incompatible.\r\n\r\nI had tried to add an `IncompatiblePlatformProvider` to the\r\ncorresponding `ConfiguredAspect` instance, but then Bazel\r\ncomplained about having duplicate `IncompatiblePlatformProvider`\r\ninstances.\r\n\r\nFixes  #15271\r\n\r\n(cherry picked from commit 6d71850f6d5e9989826114395d58377769f44e4b)\r\n\r\n* Fix build and test\r\n\r\nCo-authored-by: kshyanashree \u003c109167932+kshyanashree@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2633d473afdea4779f0440f88f10b559bd493b99",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java",
      "new_id": "bb0446dba09d9bc645117e048f9ac0741d527def",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java"
    },
    {
      "type": "modify",
      "old_id": "468b1290e45e5b021d85193706990be4f92cd3db",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/BUILD",
      "new_id": "e8b8287413765dbde37c9b74904a87eb30a44dfe",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/BUILD"
    },
    {
      "type": "modify",
      "old_id": "fd432689c736be6112cbb8b40482b4be37f145b7",
      "old_mode": 33261,
      "old_path": "src/test/shell/integration/target_compatible_with_test.sh",
      "new_id": "d00895b6e302e4d87b871bffc0025cc303a86e62",
      "new_mode": 33261,
      "new_path": "src/test/shell/integration/target_compatible_with_test.sh"
    }
  ]
}
