)]}'
{
  "commit": "05f1980eaee9b196badcf27c13d7e9d4b4eea720",
  "tree": "11f893065fe90d66d44b52b7b7ed0e05b5a4551f",
  "parents": [
    "6f6cc0a0fbadf2825206b7c12b8dfc3b356464ad"
  ],
  "author": {
    "name": "Matan Lurey",
    "email": "matanlurey@users.noreply.github.com",
    "time": "Sat Mar 22 10:48:57 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Mar 22 17:48:57 2025 +0000"
  },
  "message": "Remove Cocoon from `dev/devicelab`, keeping Skia perf stats upload. (#165749)\n\nPartial re-land of https://github.com/flutter/flutter/pull/165628:\n\n- Fixes the mistake that the `Cocoon` class did things that well, were\nnot specific to Cocoon.\n- Renamed to `MetricsResultWriter`, as that is all it does now.\n\n---\n\nCloses https://github.com/flutter/flutter/issues/165618.\n\nThe `devicelab/bin/test_runner.dart upload-metrics` command use to have\n_two_ responsibilities:\n\n- Well, upload test **metrics** (benchmarks) to Skia Perf (it still does\nthat)\n- Upload test **status** to Cocoon (it did until\nhttps://github.com/flutter/flutter/pull/165614)\n\nAs https://github.com/flutter/flutter/pull/165614 proved, this API\npredated the current LUCI setup, where Cocoon itself receives task\nstatus updates from LUCI, and it turns out this entire time, DeviceLab\nwas making (at best) NOP calls, and at worst, causing crashes and\ncorrupt data (https://github.com/flutter/flutter/issues/165610).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7d10c7e4c7fc4b42dc4013c220a1fa4f211bfe9d",
      "old_mode": 33188,
      "old_path": "dev/devicelab/bin/test_runner.dart",
      "new_id": "d3f4ed4f6a3528873dc0d8d412c504b5e545736a",
      "new_mode": 33188,
      "new_path": "dev/devicelab/bin/test_runner.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3ba8522377a81935e225709a49ac91c3ad1ff679",
      "new_mode": 33188,
      "new_path": "dev/devicelab/lib/command/upload_metrics.dart"
    },
    {
      "type": "delete",
      "old_id": "9c156452851d77a1333f519ed7f87604ed05c1bb",
      "old_mode": 33188,
      "old_path": "dev/devicelab/lib/command/upload_results.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "0ad00662c8a065f1591022a22008378a3b29cf57",
      "old_mode": 33188,
      "old_path": "dev/devicelab/lib/framework/cocoon.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4f008a12a0844ced07a4dca8620b472db7e89d7a",
      "new_mode": 33188,
      "new_path": "dev/devicelab/lib/framework/metrics_result_writer.dart"
    },
    {
      "type": "modify",
      "old_id": "13dd86825b3279515e56cfed8293db2c570414bd",
      "old_mode": 33188,
      "old_path": "dev/devicelab/lib/framework/runner.dart",
      "new_id": "85847a3f22358068d4bb9c080ef3d7503448e693",
      "new_mode": 33188,
      "new_path": "dev/devicelab/lib/framework/runner.dart"
    },
    {
      "type": "delete",
      "old_id": "e0c5b1c9db0cb362ddffd3757f349686e4d881db",
      "old_mode": 33188,
      "old_path": "dev/devicelab/test/cocoon_test.dart",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cc506e6ac706f1b3d6e0343b28059076e99829c2",
      "new_mode": 33188,
      "new_path": "dev/devicelab/test/metrics_result_writer_test.dart"
    }
  ]
}
