)]}'
{
  "commit": "19281424d4eeefb3c4342431703534c47d260bfb",
  "tree": "2748540c2a96bc642b0176622b70fe7d318166c0",
  "parents": [
    "97be95a7273c9ff2e650634fb1817a01d52df404"
  ],
  "author": {
    "name": "Sylvain Defresne",
    "email": "sdefresne@chromium.org",
    "time": "Fri Aug 01 10:40:16 2025 +0200"
  },
  "committer": {
    "name": "GN LUCI",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Aug 01 01:51:13 2025 -0700"
  },
  "message": "[Apple] Allow passing a manifest to the post-processing script\n\nWhen modifying the list of dependencies, it was possible to break\na build from scratch but not an incremental build. This is because\nthe bundles generate by create_bundle(...) targets are assembled\nin multiple steps (each of them copying a single file).\n\nThis incremental construction prevented detecting that a file was\npresent in the bundle only by virtue of being added in a previous\nbuild.\n\nTo detect this, allow to invoke the post-processing script with a\nmanifest (a list of all the files that should be present in the\nbundle). The post-processing is then free to use the manifest as\nit wants to either report an error if unexpected files are found\nor by deleting them.\n\nUpdate the sample project to use a post-processing script that\nfail if there are any unexpected files (as an exemple of how to\nuse the manifest).\n\nBug: 408138713\nChange-Id: I4ef09536d775e10de0aaf4bf3fe39bdb4af0ab7f\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/19561\nCommit-Queue: Sylvain Defresne \u003csdefresne@chromium.org\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b6b4b78b1a869a793bf20df05970d4445b18f98d",
      "old_mode": 33188,
      "old_path": "docs/reference.md",
      "new_id": "ea95bc801fec5d784f7d4a46d77252e7dac6ecdc",
      "new_mode": 33188,
      "new_path": "docs/reference.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1cb77710891d8c9296a90638d6153362d7f72244",
      "new_mode": 33188,
      "new_path": "examples/ios/build/config/ios/scripts/check-manifest.py"
    },
    {
      "type": "modify",
      "old_id": "1e7b73d11f9c23897287b65831740e83c23ec224",
      "old_mode": 33188,
      "old_path": "examples/ios/build/config/ios/templates/ios_binary_bundle.gni",
      "new_id": "65775a0225f1b64d3c54d4e17f886cfd41a2da55",
      "new_mode": 33188,
      "new_path": "examples/ios/build/config/ios/templates/ios_binary_bundle.gni"
    },
    {
      "type": "modify",
      "old_id": "f98093e8e28db8db6d528f6eecadab52e78e7650",
      "old_mode": 33188,
      "old_path": "misc/emacs/gn-mode.el",
      "new_id": "f72493aaefd91601baf4d16e7790113999c57296",
      "new_mode": 33188,
      "new_path": "misc/emacs/gn-mode.el"
    },
    {
      "type": "modify",
      "old_id": "86f7abf9b3387ae3d42eadf190e03ca77b5438a8",
      "old_mode": 33188,
      "old_path": "src/gn/bundle_data.cc",
      "new_id": "2653d3a0021e7a9db66dd05fb0c99f8bbf9374ef",
      "new_mode": 33188,
      "new_path": "src/gn/bundle_data.cc"
    },
    {
      "type": "modify",
      "old_id": "2e036943398f809b806bdbc0ee3c2271cc1a078c",
      "old_mode": 33188,
      "old_path": "src/gn/bundle_data.h",
      "new_id": "59e1f2de6fb1919d1f63512e5c0339d4e357e37c",
      "new_mode": 33188,
      "new_path": "src/gn/bundle_data.h"
    },
    {
      "type": "modify",
      "old_id": "516aa0ae6b17324433644c08900b12fe7da363bb",
      "old_mode": 33188,
      "old_path": "src/gn/create_bundle_target_generator.cc",
      "new_id": "c4c2ac42f92ca52a201c33a10e1baccec4696f44",
      "new_mode": 33188,
      "new_path": "src/gn/create_bundle_target_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "c713368335d90756e5264662ec05525aa7b002b6",
      "old_mode": 33188,
      "old_path": "src/gn/create_bundle_target_generator.h",
      "new_id": "81d49479d03f1c6ac78ecb0c4115f66cec9d41b6",
      "new_mode": 33188,
      "new_path": "src/gn/create_bundle_target_generator.h"
    },
    {
      "type": "modify",
      "old_id": "819dc8946950ae4abd2b3a872cf5e008d334d9b3",
      "old_mode": 33188,
      "old_path": "src/gn/functions_target.cc",
      "new_id": "9a19c410203b3af9f2d24b07b17ccf5bcf61ac0c",
      "new_mode": 33188,
      "new_path": "src/gn/functions_target.cc"
    },
    {
      "type": "modify",
      "old_id": "09299c7e818a181b17f9dd490773d6467854afd0",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer.cc",
      "new_id": "b3a15baec046e703b50b910657ceb2fdd614a09a",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "ee27557e82f0ccc4a63dfbfa36ea441268c763d8",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer.h",
      "new_id": "6b5d6cc2b4d38cc8a28a1ecb3855f88add17d01b",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer.h"
    },
    {
      "type": "modify",
      "old_id": "31b3b0dadebe5febf60b5c25aae380698cd5d8ac",
      "old_mode": 33188,
      "old_path": "src/gn/variables.cc",
      "new_id": "1754172bc03f47b32a3c790ab2e70aa732c5825d",
      "new_mode": 33188,
      "new_path": "src/gn/variables.cc"
    },
    {
      "type": "modify",
      "old_id": "a9ed6c4440ac7356859c35aba9c99544194db8a3",
      "old_mode": 33188,
      "old_path": "src/gn/variables.h",
      "new_id": "b4d28626755d905edd0a8f0a3667ed3a1db2e54e",
      "new_mode": 33188,
      "new_path": "src/gn/variables.h"
    }
  ]
}
