)]}'
{
  "commit": "a38abc864ce67fad39cad7808235b06e10137f7c",
  "tree": "a63f877d39b00323038b9427a4082a6be2f16ca7",
  "parents": [
    "fe73879f951676e33c1f53903e2b69143dd691c8"
  ],
  "author": {
    "name": "Srujan Gaddam",
    "email": "58529443+srujzs@users.noreply.github.com",
    "time": "Thu Jan 09 12:36:43 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jan 09 20:36:43 2025 +0000"
  },
  "message": "Support DDC library bundle format and remove support for DDC module format (#161276)\n\nThis gets us closer to enabling [hot\nreload](https://github.com/dart-lang/sdk/issues/54934) on the web as\nthis format is a prerequisite. Historically, we added support for the\nDDC module format only to enable hot reload, but that format is not\nfeasible for the goal, so we added the DDC library bundle format. The\nDDC library bundle format is currently represented as the combination of\nthe `ddc` module format and `canary`. We no longer need to support the\nold DDC module format.\n\n- Adds build artifacts to build the SDKs for this format (but only in\nsound mode as unsound is unsupported), and removes said artifacts for\nthe DDC module format.\n- Update artifact maps and constants to add the new format and remove\nthe old format.\n- Adds handling of the `canaryFeatures` flag.\n- Update dwds to 24.3.0 and use the new\n`FrontendServerDdcLibraryBundleStrategyProvider`.\n- Add bootstrap code for the new format. Kept DDC module format\nbootstrap code as it\u0027s used internally.\n- Updates tests.\n\nI ran `spinning_square` with the new module format to verify that it can\nrun.\n\n## Pre-launch Checklist\n\n- [X] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [X] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [X] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [X] I signed the [CLA].\n- [X] I listed at least one issue that this PR fixes in the description\nabove.\n- [X] I updated/added relevant documentation (doc comments with `///`).\n- [X] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [ ] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [X] All existing and new tests are passing.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "704c1aa7e02a8f44080df426d92f92c40db4871c",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/web_sdk/BUILD.gn",
      "new_id": "925d6fac451c4dd3d2505420d72f6fede28d8fc9",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/web_sdk/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "0c9239e5d478355f625e26093332103e0d2868c4",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/artifacts.dart",
      "new_id": "d665e5af8668d7132063d4a28e01837913e91d15",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/artifacts.dart"
    },
    {
      "type": "modify",
      "old_id": "fde25bf117f86bdb176d0d9c5bc2ddee10f14388",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/build_info.dart",
      "new_id": "88f46b73e291d0de12ce0b04685141e2071aed3e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/build_info.dart"
    },
    {
      "type": "modify",
      "old_id": "801e01eb89618fa612b43f2b3583c6f80698353e",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/isolated/devfs_web.dart",
      "new_id": "d41853a01fd8731a100fee9b854ec8094c12cfd1",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/isolated/devfs_web.dart"
    },
    {
      "type": "modify",
      "old_id": "0ee93d6d0578cc21f737d352669868be84974827",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/isolated/resident_web_runner.dart",
      "new_id": "f7d12884998c56b60403dc5532304302ec11dcd4",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/isolated/resident_web_runner.dart"
    },
    {
      "type": "modify",
      "old_id": "6e711fb2aaa9a3c060887f3103efd66c302411b1",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/test/flutter_web_platform.dart",
      "new_id": "57c50b6cc7385c2d55ad115e2ec2481eff0f17e5",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/test/flutter_web_platform.dart"
    },
    {
      "type": "modify",
      "old_id": "4351b01227049a38e1be0df81e7dba4280f01b74",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/web/bootstrap.dart",
      "new_id": "633b7ed06dbfa6a93c5c5bbf92bb6c3df4c3d2a4",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/web/bootstrap.dart"
    },
    {
      "type": "modify",
      "old_id": "68fb4a3f13bfe53a30d62b20e706bf4a5524a88a",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/web/compile.dart",
      "new_id": "c7c7aef32164017874b68a8a2e607498c8a77d92",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/web/compile.dart"
    },
    {
      "type": "modify",
      "old_id": "ce33adee7afc65f04a5a4e886763d03fa8ab4a24",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/pubspec.yaml",
      "new_id": "bb460b6a7e285023e9e85511d20e2a09d9259041",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "cb0533c25ed219b2ee50e4d25474cdfe307f46f9",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/commands.shard/hermetic/flutter_web_platform_test.dart",
      "new_id": "101d3380b8a1db31ba78de72fc2b51f1b1f64eb7",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/commands.shard/hermetic/flutter_web_platform_test.dart"
    },
    {
      "type": "modify",
      "old_id": "d3b02aacef5e403b726799981715d6e9c8b03b7d",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/general.shard/artifacts_test.dart",
      "new_id": "6addc3942a620c92c5c6af94cb3d3445c0dddb8b",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/general.shard/artifacts_test.dart"
    },
    {
      "type": "modify",
      "old_id": "aa9f3e8fb96811b7fd67c0db7b302a5c5dc54887",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/general.shard/web/bootstrap_test.dart",
      "new_id": "6b31f0b720fc94ed34fe4343b2aa3ca1aa72abbd",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/general.shard/web/bootstrap_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b583c7e670acfeae598e956a577063bb50209438",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/general.shard/web/devfs_web_ddc_modules_test.dart",
      "new_id": "cecd1ad062c46f87f11fba7e6e1ca641fa5324f3",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/general.shard/web/devfs_web_ddc_modules_test.dart"
    },
    {
      "type": "modify",
      "old_id": "2e868d4bf39689ffb7f9dda6631c0694322c244f",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/test/general.shard/web/devfs_web_test.dart",
      "new_id": "cc6f6724bf167d15ac26d1ccc0023f78b8b984ff",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/test/general.shard/web/devfs_web_test.dart"
    }
  ]
}
