)]}'
{
  "commit": "9283dddfbbb72f9d173c22888dfc9c698f26cb85",
  "tree": "a72dfdc8524fe6e977fd99e7ae023db32ddd5a87",
  "parents": [
    "12d9c3e2fbc7a05c1c5e26d731077e9f843c9d53"
  ],
  "author": {
    "name": "John McDole",
    "email": "codefu@google.com",
    "time": "Mon Feb 24 17:07:19 2025 -0800"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "flutter-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Feb 24 17:07:19 2025 -0800"
  },
  "message": "Make Builds Faster\n\nThe Mac builds can take ~45 minutes to build. There are two spots that\ncan be optimized; not blocking on launched builds right away and\ndownloading artifacts in parallel.\n\nThe `collect builds` step can take \u003e25 minutes - during which we could\nbe mounting caches and checking out the tree (~5 minutes).\n\nThe `Download for build*` steps can be very fast in some cases; but they\nare serialized. Ranging between ~5m to ~15m; we could get some wins\nhere.\n\n- Adds two flags:\n  - `delay_collect_builds`: after launching builds; continue setting up\n    the orchestrator before waiting for builds to complete.\n  - `parallel_download_builds`: attempt to download all artifacts in\n    parallel.\n\nThese flags can be added to the top level builder json file\n(example)[https://github.com/flutter/flutter/blob/ebc7d244d365a8bb5ea3b7f1d8c5dc87107ab44f/engine/src/flutter/ci/builders/mac_host_engine.json#L4]\nresponsible for setting up drones:\n\n```json\n  \"luci_flags\": {\n    \"delay_collect_builds\": true,\n    \"parallel_download_builds\": true\n  },\n```\n\nled comment tested with:\n\n```\nled get-builder  \u0027luci.flutter.staging:Mac mac_host_engine\u0027 | led edit -pa git_ref\u003d\u0027refs/pull/164027/head\u0027 | led edit -pa luci_flags\u003d\u0027{\"delay_collect_builds\": true, \"parallel_download_builds\":true}\u0027 | led edit -pa git_url\u003d\u0027https://github.com/flutter/flutter\u0027 | led edit -pa is_fusion\u003d\u0027true\u0027 | led edit-recipe-bundle | led launch\n```\n\nbuild showing both flags working:\nhttps://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac%20mac_host_engine/8/overview\n\nChange-Id: If00f2e5dc56a529fe6904bd85148cb6e86c6d614\nReviewed-on: https://flutter-review.googlesource.com/c/recipes/+/63800\nCommit-Queue: John McDole \u003ccodefu@google.com\u003e\nReviewed-by: Zach Anderson \u003czra@google.com\u003e\nReviewed-by: Matan Lurey \u003cmatanl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6fe15dbbee23935fd708225e07d9aff9578b2d5a",
      "old_mode": 33188,
      "old_path": "recipe_modules/shard_util/__init__.py",
      "new_id": "f8a16bdcf0fca1f83fe0223cebe22387e73658b9",
      "new_mode": 33188,
      "new_path": "recipe_modules/shard_util/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "4c572e16c88b0733ff40797b98d64aac9ddb7e0c",
      "old_mode": 33188,
      "old_path": "recipe_modules/shard_util/api.py",
      "new_id": "257fc9db2bc7f33cf3d7528b85eb2a06e96718ec",
      "new_mode": 33188,
      "new_path": "recipe_modules/shard_util/api.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4bdb11f7cb5494321adf4b9e0fddcdd1810ae43e",
      "new_mode": 33188,
      "new_path": "recipe_modules/shard_util/examples/full.expected/flag_parallel_download_builds.json"
    },
    {
      "type": "modify",
      "old_id": "6b6399356066c46d85a7552737acdbce35719605",
      "old_mode": 33188,
      "old_path": "recipe_modules/shard_util/examples/full.py",
      "new_id": "42330090f6bb433575b2b520202c808432d04f01",
      "new_mode": 33188,
      "new_path": "recipe_modules/shard_util/examples/full.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "693f9f598f6aa89635d0683bd801c5a7397e92d7",
      "new_mode": 33188,
      "new_path": "recipes/engine_v2/engine_v2.expected/delay_collect_builds.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c73cc70d36f81ca3f2037aa53d50b8c432131ec4",
      "new_mode": 33188,
      "new_path": "recipes/engine_v2/engine_v2.expected/parallel_download_builds.json"
    },
    {
      "type": "modify",
      "old_id": "1dd4899398121089c16300d0043d1bdb701e5645",
      "old_mode": 33188,
      "old_path": "recipes/engine_v2/engine_v2.py",
      "new_id": "683229c31f7232ecd7710b8e6c170f677c435fb7",
      "new_mode": 33188,
      "new_path": "recipes/engine_v2/engine_v2.py"
    }
  ]
}
