)]}'
{
  "commit": "9ece3f5254c273cb46606a6571963f931c3b012d",
  "tree": "7d9ccae2e9e22b472c62c21f584bfff7f6ff9e84",
  "parents": [
    "1740f5c25bcac5a650ee3d1c1ec22bfa25fcd756"
  ],
  "author": {
    "name": "Peter Collingbourne",
    "email": "pcc@google.com",
    "time": "Tue Apr 21 17:24:19 2026 -0700"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri May 01 13:41:52 2026 -0700"
  },
  "message": "Fix toolchain dependencies not triggering rebuilds in Ninja\n\nGN previously emitted order-only dependencies on toolchain dependencies\n(via the .inputdeps.stamp file). This meant that if the toolchain changed,\ntargets compiled by it were not rebuilt.\n\nThis change modifies WriteInputDepsStampOrPhonyAndGetDep (WIDSOPAGD)\nto return implicit dependencies separately from order-only\ndependencies. Toolchain dependencies are now returned as implicit\ndependencies, which ensures that Ninja triggers a rebuild when the\ntoolchain changes.\n\nAll target writers have been updated to write the result of WIDSOPAGD as\neither implicit or order-only dependencies. The action target writer is\na special case, because before this change it would write the result of\nWIDSOPAGD as an implicit dependency, unlike all other target writers,\nwhich would write it as an order-only dependency. This means that before\nthis change, all dependencies returned by WIDSOPAGD were implicit\ndependencies for action targets. Because scripts may depend on this\nbehavior, any phony targets created by WIDSOPAGD for action targets have\nonly implicit dependencies.\n\nBug: 40643484\nChange-Id: Iae5dbf87cd67ecd5c9d0f6138f17085233c844b3\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/22000\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nCommit-Queue: Peter Collingbourne \u003cpcc@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3aa56862042fd3008d18b753c6bd238d8c7cbe5b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_action_target_writer.cc",
      "new_id": "0d01d07dad9dd3523b24f64cbe9862ca18b42266",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_action_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "4ba173360b5c3eadb8aa218db0c6f9886f6dafa7",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_bundle_data_target_writer.cc",
      "new_id": "d6c2e560470154061e64e767c05ed49b5e3e7d2c",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_bundle_data_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "5346e06ae14929964ce92fadf86a99fda9dbc7ad",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.cc",
      "new_id": "fdc02b1da0014c6bdd5ec2434a56bbf764b0575b",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "0952c6ffa29521b87504ed9baee956909d7e6fd2",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_copy_target_writer.cc",
      "new_id": "16fca067757388e42e8f9881459ae3f63e0323f6",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_copy_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "da7da59f71f9f4d4a24942e886c17ab217777135",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_copy_target_writer_unittest.cc",
      "new_id": "6fc5e438fcde63d63cd2bdfa8b60ea96a3cc26c2",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_copy_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "b3a15baec046e703b50b910657ceb2fdd614a09a",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer.cc",
      "new_id": "ca305e6aed9c655adc74407148dcd3c6773efc4b",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "6b5d6cc2b4d38cc8a28a1ecb3855f88add17d01b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer.h",
      "new_id": "7d603a09714d301e3431b90519d557b4f22b3eef",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "3dfd6a3fe5cef3ff19ecdf35e293bd86cb2afc4e",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer_unittest.cc",
      "new_id": "7aa13136cc42e7d683e1ca82a546dea8edb2f380",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "e9b44e8927f754a6afe0d11adaafc73d763158e9",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_rust_binary_target_writer.cc",
      "new_id": "b77157a705eeeeed9ab07c5cd837ac2f2646fe0d",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_rust_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "9b456284ecd07a1673e4e61eac948ddf00fcb358",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer.cc",
      "new_id": "affc7d6fd4bdf2ebd34eb43738f71d620d37610e",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "0936033e7df9abad062742c56a47b5cfb24c6fbf",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer.h",
      "new_id": "2da7e76b1cb831721a66b0363183b365f31934fa",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "317ce2a972f7ca5bf3029febecfc6e626501f1e4",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer_unittest.cc",
      "new_id": "cd4a5e4346a37560edfedfb8fe8e9a2df4d4ddf0",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer_unittest.cc"
    }
  ]
}
