)]}'
{
  "commit": "9ae8a6b7d54efd1efa6ceff935ceab02701b4c8e",
  "tree": "e239511fd95239d4b530b1e803a0a8101fc02398",
  "parents": [
    "09b1afbd0df34fb7c97a137a68ac9cbe381733b6"
  ],
  "author": {
    "name": "Pierre-Louis",
    "email": "6655696+guidezpl@users.noreply.github.com",
    "time": "Sat Mar 23 13:05:21 2024 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Mar 23 12:05:21 2024 +0000"
  },
  "message": "Reland #128236 \"Improve build output for all platforms\" (#145495)\n\nReland #128236, reverted in https://github.com/flutter/flutter/pull/143125, https://github.com/flutter/flutter/pull/145261, and https://github.com/flutter/flutter/pull/145487.\r\n\r\nThe errors were raised in post-submit tests on Windows. I have finally obtained a Windows machine to reproduce the errors locally and adjust the test (remove size expectation and rename output `.exe`).\r\n\r\n## Original description\r\n\r\nImproves the build output:\r\n\r\n1. Gives confirmation that the build succeeded, in green\r\n1. Gives the path to the built executable, without a trailing period to make it slightly easier to cmd/ctrl+open\r\n1. Gives the size of the built executable (when the built executable is self contained) \r\n\r\n### `apk`, `appbundle` \r\n\r\n\u003cimg width\u003d\"607\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/ecc52abe-cd2e-4116-b22a-8385ae3e980d\"\u003e\r\n\r\n\u003cimg width\u003d\"634\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/8af8bd33-c0bd-4215-9a06-9652ee019436\"\u003e\r\n\r\n### `macos`, `ios`, `ipa`\r\nBuild executables are self-contained and use a newly introduced `OperatingSystemUtils.getDirectorySize`.\r\n\r\n\u003cimg width\u003d\"514\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/b5918a69-3959-4417-9205-4f501d185257\"\u003e\r\n\r\n\u003cimg width\u003d\"581\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/d72fd420-18cf-4470-9e4b-b6ac10fbcd50\"\u003e\r\n\r\n\u003cimg width\u003d\"616\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/5f235ce1-252a-4c13-898f-139f6c7bc698\"\u003e\r\n\r\n### `windows`, `linux`, and `web`\r\nBuild executables aren\u0027t self-contained, and folder size can sometimes overestimate distribution size, therefore their size isn\u0027t mentioned (see discussion below).\r\n\r\n\u003cimg width\u003d\"647\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/7179e771-1eb7-48f6-b770-975bc073437b\"\u003e\r\n\r\n\u003cimg width\u003d\"658\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/a6801cab-7b5a-4975-a406-f4c9fa44d7a2\"\u003e\r\n\r\n\u003cimg width\u003d\"608\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/ee7c4125-a273-4a65-95d7-ab441edf8ac5\"\u003e\r\n\r\n### Size reporting\r\nWhen applicable, the printed size matches the OS reported size.\r\n\r\n- macOS\r\n    \u003cimg width\u003d\"391\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/881cbfb1-d355-444b-ab44-c1a6343190ce\"\u003e\r\n- Windows\r\n    \u003cimg width\u003d\"338\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/3b806def-3d15-48a9-8a25-df200d6feef7\"\u003e\r\n- Linux   \r\n    \u003cimg width\u003d\"320\" alt\u003d\"image\" src\u003d\"https://github.com/flutter/flutter/assets/6655696/89a4aa3d-2148-4f3b-b231-f93a057fee2b\"\u003e\r\n\r\n## Related issues\r\nPart of #120127\r\nFixes https://github.com/flutter/flutter/issues/121401",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f54d4334b54cbeed62b3326e52aeebf6c3581364",
      "old_mode": 33188,
      "old_path": "dev/devicelab/lib/tasks/run_tests.dart",
      "new_id": "33651ae867dc809fd63269a0000a9959f5d724e2",
      "new_mode": 33188,
      "new_path": "dev/devicelab/lib/tasks/run_tests.dart"
    },
    {
      "type": "modify",
      "old_id": "12a92d4bd812b3f47f1b0de61302933639ffddf9",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/android/gradle.dart",
      "new_id": "78fb5d9f4c514e8fa28100fbd0ac07b1247d8d77",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/android/gradle.dart"
    },
    {
      "type": "modify",
      "old_id": "eb9847cf139750378d5f9d3d353c3f7758357d03",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/base/os.dart",
      "new_id": "c2ecba17d73d3e7998896ea9ae4f02f3f7aebcac",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/base/os.dart"
    },
    {
      "type": "modify",
      "old_id": "019244c4d679957710e76a6c29871cb6928d868e",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/base/utils.dart",
      "new_id": "c942b6813b26b9618d4e37c3d1ebc9551c2701fc",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/base/utils.dart"
    },
    {
      "type": "modify",
      "old_id": "241413f5ef78b1f5973ee1fbb7e502682fc4ebc9",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/build_ios.dart",
      "new_id": "acf34b7c09244aa6b1c609bec5ee7a34efa14ba1",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/build_ios.dart"
    },
    {
      "type": "modify",
      "old_id": "ab3b7eeb62f6c2f4000eb6107e9341850c66e653",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/isolated/resident_web_runner.dart",
      "new_id": "62285209b4f89d147a17ac1ce18d3af581613749",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/isolated/resident_web_runner.dart"
    },
    {
      "type": "modify",
      "old_id": "808130a24fcc72ee4b6b0d5629cdc1b9d560d6e1",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/linux/build_linux.dart",
      "new_id": "1a5e886a7b60423cd02ef630c9302372d19fdba8",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/linux/build_linux.dart"
    },
    {
      "type": "modify",
      "old_id": "146477b63b5c5da6169802cd4aac1d2eb4d8e25a",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/macos/build_macos.dart",
      "new_id": "88cfd375bffb4d77358a2f09b8ceeef5c9afbe15",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/macos/build_macos.dart"
    },
    {
      "type": "modify",
      "old_id": "4e9b38bfec196bc6e73ed47ed57cbc9c28fa5f79",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/resident_runner.dart",
      "new_id": "6679e6549194abc27beb2936653357988a2c1284",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/resident_runner.dart"
    },
    {
      "type": "modify",
      "old_id": "27dedc063bda7137cc4ce3ef14abf8d6287bfc38",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/web/compile.dart",
      "new_id": "f34602158f3e6d311b9472ac2e9ff77890cd1574",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/web/compile.dart"
    },
    {
      "type": "modify",
      "old_id": "813100dd57d775a76aaf1bce6183655b6d99c830",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/windows/build_windows.dart",
      "new_id": "5072be395950280c430a2e676f2aec484d8789b0",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/windows/build_windows.dart"
    },
    {
      "type": "modify",
      "old_id": "9adee59ee04287a712db6c5281ae17f752961bf6",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart",
      "new_id": "238121a6102ab7ac29fcaafed7e09df8d7b93e85",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands.shard/hermetic/build_ios_test.dart"
    },
    {
      "type": "modify",
      "old_id": "a90f414d01d29b10865af6462ae2bd6362249f1c",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart",
      "new_id": "a1a86dc7ec5aa817f9ebc5a91079506f526775b9",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart"
    },
    {
      "type": "modify",
      "old_id": "5232513cdbb9c4a032c28aae5453f4517d463a34",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart",
      "new_id": "666aa2fce9ee0454ac114d36920477216be0cf35",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart"
    },
    {
      "type": "modify",
      "old_id": "d486e6efa8bc6ee26b9e3b88e41e500647966fca",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart",
      "new_id": "6e4a1fa18c5c24b0123621b60e97ef9a8e8cd303",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart"
    },
    {
      "type": "modify",
      "old_id": "15a8ed0e22138a0f8ec0f132c76c9213cd6fe040",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart",
      "new_id": "2cfee6db340e54a654354282b836fb129e856bbb",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart"
    },
    {
      "type": "modify",
      "old_id": "c24f72a65ac0db630a108a2e24b45602b5f1aceb",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart",
      "new_id": "d6a31f3b8ede00f39a96bc78e0c8b6411d024f04",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart"
    },
    {
      "type": "modify",
      "old_id": "ee95332100ef8768612da63980b588dd0da36ee1",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/general.shard/base/os_test.dart",
      "new_id": "1472b87522875973fb8202297a0a4cd2d18f8a9f",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/general.shard/base/os_test.dart"
    },
    {
      "type": "modify",
      "old_id": "3fa94cb1c77b43201a9d8812f829f6d683643ec9",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/general.shard/utils_test.dart",
      "new_id": "da12e4f6814b2320d017c9583ea431430099636e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/general.shard/utils_test.dart"
    },
    {
      "type": "modify",
      "old_id": "1809d3d4c2c980f59e92dbf443bf582f23250633",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/src/fakes.dart",
      "new_id": "feddd15fba2ea18844338ac778ea498fa8ebc64a",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/src/fakes.dart"
    }
  ]
}
