)]}'
{
  "commit": "7ba2f7562bb2eaae53e6c7c52ffb2a8b983d50e1",
  "tree": "5a43888fd63cd7d5bfc14c2b64eefc10d7a13fe4",
  "parents": [
    "214a164edc59d133c99bfc814e0e683d29f7cc95"
  ],
  "author": {
    "name": "Moritz",
    "email": "mosum@google.com",
    "time": "Tue Sep 29 12:02:13 2026 +0000"
  },
  "committer": {
    "name": "Moritz",
    "email": "27859082+mosuem@users.noreply.github.com",
    "time": "Fri Oct 09 08:54:30 2026 +0200"
  },
  "message": "[boring] Use package:prebuilt_code_assets in the build and link hooks\n\nReplace the hook helpers for fetching, verifying, building and linking\nwith package:prebuilt_code_assets, which implements the same build modes\nand tree shaking for any package with prebuilt native code. What is\nspecific to package:boring, the release configuration and the CMake\nbuild, is in lib/src/hook_helpers/library.dart, which both hooks and\nthe release tools share.\n\n- tool/precompile_binaries.dart and tool/regenerate_hashes.dart use the\n  package\u0027s CLI runners with the same options, so the binaries workflow\n  is unchanged.\n- test/tree_shaking_test.dart uses its ELF helpers.\n- Drop the dependencies only the replaced helpers used, and with them\n  dart_dependency_validator.yaml, which is no longer needed.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f3556c3222bec7f32b6a471317142bc96ca1d6ba",
      "old_mode": 33188,
      "old_path": "pkgs/boring/CHANGELOG.md",
      "new_id": "2f0280eac8adb526611c526c00e94ac676aa4322",
      "new_mode": 33188,
      "new_path": "pkgs/boring/CHANGELOG.md"
    },
    {
      "type": "delete",
      "old_id": "de98338372c54d098e90da052c4d32cfd249de61",
      "old_mode": 33188,
      "old_path": "pkgs/boring/dart_dependency_validator.yaml",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "35ff8b242158bd879fbba14a510c18b5254b1ec1",
      "old_mode": 33188,
      "old_path": "pkgs/boring/hook/build.dart",
      "new_id": "e40d84ec0a5cff48b98514c6f64f5a1985ff5449",
      "new_mode": 33188,
      "new_path": "pkgs/boring/hook/build.dart"
    },
    {
      "type": "modify",
      "old_id": "398d38ff1fd5fcd9ad07eb4be448fae22467b4e3",
      "old_mode": 33188,
      "old_path": "pkgs/boring/hook/link.dart",
      "new_id": "f65184fda14fe04b8e45427817ca5edbbf8c2e41",
      "new_mode": 33188,
      "new_path": "pkgs/boring/hook/link.dart"
    },
    {
      "type": "delete",
      "old_id": "283a015547087b19e5517d75ad22a1af2d828a4f",
      "old_mode": 33188,
      "old_path": "pkgs/boring/lib/src/hook_helpers/build_options.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "8ddc85355b3bc54efb8646dfda6abc3204236a23",
      "old_mode": 33188,
      "old_path": "pkgs/boring/lib/src/hook_helpers/fetch.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "d42ddbc9cc00f2dc299f813abf0f385646387669",
      "old_mode": 33188,
      "old_path": "pkgs/boring/lib/src/hook_helpers/hashes.dart",
      "new_id": "ef1a408ad87d06fbfca071298d9e810fbcd8770b",
      "new_mode": 33188,
      "new_path": "pkgs/boring/lib/src/hook_helpers/hashes.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f94e7b395805fe3e89ce8d4720ffd0600107c8ee",
      "new_mode": 33188,
      "new_path": "pkgs/boring/lib/src/hook_helpers/library.dart"
    },
    {
      "type": "delete",
      "old_id": "42872096b81f65c3eebb539b8920bdc469b5d2a2",
      "old_mode": 33188,
      "old_path": "pkgs/boring/lib/src/hook_helpers/targets.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "8a8ca799ff55825f3a1e0a564febd9ca75c058ea",
      "old_mode": 33188,
      "old_path": "pkgs/boring/pubspec.yaml",
      "new_id": "de3786dacac42338fa1ca6a5205bda34d499e90e",
      "new_mode": 33188,
      "new_path": "pkgs/boring/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "4f851143e47cb0323cb49a3817182a27cd327122",
      "old_mode": 33188,
      "old_path": "pkgs/boring/test/tree_shaking_test.dart",
      "new_id": "853c31ab3507191225940fde09801fb6a9a6b75b",
      "new_mode": 33188,
      "new_path": "pkgs/boring/test/tree_shaking_test.dart"
    },
    {
      "type": "modify",
      "old_id": "433fcc61f6750c6f3087f06ac7c001e002f5fbfc",
      "old_mode": 33188,
      "old_path": "pkgs/boring/tool/precompile_binaries.dart",
      "new_id": "18663c2af41f62490aecd39df8d83dec76f90493",
      "new_mode": 33188,
      "new_path": "pkgs/boring/tool/precompile_binaries.dart"
    },
    {
      "type": "modify",
      "old_id": "4c98178f27c08688e09a6f1011d0e614f44824e9",
      "old_mode": 33188,
      "old_path": "pkgs/boring/tool/regenerate_hashes.dart",
      "new_id": "981b9b43976d21e47ff1016752fcd5d23ae7a284",
      "new_mode": 33188,
      "new_path": "pkgs/boring/tool/regenerate_hashes.dart"
    }
  ]
}
