)]}'
{
  "commit": "f9cea148d88f2a3570fc2f81a5931f96d20194f1",
  "tree": "5ebc2f1529ef02a06555622a147fc77f85bceb87",
  "parents": [
    "3a817c2e07ebff471f61ca75faeb2db56b58f0cb"
  ],
  "author": {
    "name": "msta",
    "email": "msta@google.com",
    "time": "Tue Jul 21 15:42:29 2026 +1000"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Aug 03 23:13:29 2026 -0700"
  },
  "message": "Implement rule implementation execution.\n\nNote that I\u0027ve had to move frozen rule tests to their own tests\ndirectory. This is because I\u0027ve introduced a dependency chain:\n#[cfg(test)] rule -\u003e testutil -\u003e rule\n\nTests in the tests directory compile against rule, while tests not in\nthat directory compile against #[cfg(test)] rule, which is incompatible\nwith testutil\u0027s rule.\n\nBug: 528225104\nChange-Id: Iee3614fc522580a1114b67d7948252276a6a6964\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/24300\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c8e078a1bc6ac7a1a95cf81ba23d7c71fa14d260",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/Cargo.lock",
      "new_id": "2a744aed80f03d83018f389ecfeebfa8cfe57b5b",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/Cargo.lock"
    },
    {
      "type": "modify",
      "old_id": "f82650a245359be8c504147a93d7459097ff5f49",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/attr/src/ctx.rs",
      "new_id": "833d052e3e5902709cd7ece00e9eece6e21d42a8",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/ctx.rs"
    },
    {
      "type": "modify",
      "old_id": "1729bd7fc7265066277672a14b92fa9fd6cd872a",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/attr/src/lib.rs",
      "new_id": "65ce51b8eae64973c62f791dc63079540b093cdb",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "7f67ad195bcf115a9a494989297608d5a38c4844",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/attr/src/traits.rs",
      "new_id": "894a5ecf274758f5949c8402f8dc08e01778a27b",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/attr/src/traits.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "26ed24be441275be976166d17c76837d1f757a36",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/src/ctx.rs"
    },
    {
      "type": "modify",
      "old_id": "7fdd2770db894ce6c4e8de1ff5aa19d95d7d1d05",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/rule/src/errors.rs",
      "new_id": "335c2f0c563f988a6b5a7e05abdf5a1178fea427",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/src/errors.rs"
    },
    {
      "type": "modify",
      "old_id": "2b5aac07c6c07166408648bbf051d81ce31b8aa5",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/rule/src/frozen_rule.rs",
      "new_id": "cb9442f140b1c92e03153d2a8a3e1c54a18b57b3",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/src/frozen_rule.rs"
    },
    {
      "type": "modify",
      "old_id": "463e03236d87042f82f20fe6d9459eb2d06abe07",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/rule/src/globals.rs",
      "new_id": "d676cfd80f4a94a8973317a5dbf5423c2b39c946",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/src/globals.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e45b35c13b20b4d4fd63c5386980e0de6c48b615",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/src/implementation.rs"
    },
    {
      "type": "modify",
      "old_id": "52fb0906c0a1f2b16e05ab5f8d56008e674678cc",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/rule/src/lib.rs",
      "new_id": "60080fea3cedd56393160443eab866ad6211c3e6",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/src/lib.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f2f8f126bb2cd2fe6d6999187390a9913bce1ce7",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/tests/ctx_super.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45b814f12ca480e0dd6266becd901e4e9731c3fb",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/rule/tests/frozen_rule.rs"
    },
    {
      "type": "modify",
      "old_id": "d3077538f449311e1718506d57cbef5660508fc0",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/Cargo.toml",
      "new_id": "410da8255f503da2df5c8a3b38f256b0204bbb5c",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/Cargo.toml"
    },
    {
      "type": "modify",
      "old_id": "565240d57537bad8c955ff3c8ac7cca6b0152cbc",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/src/assert.rs",
      "new_id": "d8e76810e68e396c90b1386e888c5dd6b7300fd0",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/src/assert.rs"
    },
    {
      "type": "modify",
      "old_id": "ad2004ad753dfbc2eaecb12e432ddfa7d29f68bd",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/src/eval_context.rs",
      "new_id": "3efc0d95ec22b12290f44a9c9362c89e2f8fa0e2",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/src/eval_context.rs"
    },
    {
      "type": "modify",
      "old_id": "78d1e94289f6c212c68cda0a630b18efda2be10b",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/src/session.rs",
      "new_id": "9118d7c8681c9f44955838bccfad55320731fd2b",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/src/session.rs"
    },
    {
      "type": "modify",
      "old_id": "f1a6ee827deb1e98cc9860576bbab1a40c40f842",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/testutils/src/target.rs",
      "new_id": "4889eede845afa3221cabb669608fe1248346542",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/testutils/src/target.rs"
    },
    {
      "type": "modify",
      "old_id": "98863722836557d30a9734cf582c2b8c0fc91633",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/types/src/eval_context.rs",
      "new_id": "f42cbb934d6fe0dbf340de6d558bdd8c69305aa7",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/types/src/eval_context.rs"
    },
    {
      "type": "modify",
      "old_id": "ae22eaf6c0765aa99060e4c740e3902cc5d04911",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/types/src/lib.rs",
      "new_id": "ea3ed1abadf964e7b9e9af0ed1df3abddf8bd57e",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/types/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "98c7b2cdfbea829355c438c7503e99e95348cc74",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/crates/types/src/target_ref.rs",
      "new_id": "f24c7497df40bd7f2de99d51b89557dcf077642c",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/crates/types/src/target_ref.rs"
    },
    {
      "type": "modify",
      "old_id": "6be8bb679c1a4e2911a5648d7f9a5215a8deaacb",
      "old_mode": 33188,
      "old_path": "src/gn/starlark/src/testdata/rules/pure.scl",
      "new_id": "368b3ebbfc48e528c3eef133a2ecab102f3b670b",
      "new_mode": 33188,
      "new_path": "src/gn/starlark/src/testdata/rules/pure.scl"
    }
  ]
}
