Skip to content

Conversation

@srujzs
Copy link
Contributor

@srujzs srujzs commented Jan 31, 2025

dart-lang/webdev#2516

  • Updates restart/reload code to accept a resetCompiler boolean to disambiguate between whether this is a full restart and whether to reset the resident compiler.
  • Adds code to call reloadSources in DWDS and handle the response (including any errors).
  • Adds code to invoke reassemble.
  • Adds code to emit a script that DWDS can later consume that contains the changed sources and their associated libraries. This is used to hot reload. The bootstrapper puts this in the global window. DWDS should be updated to accept it in the provider itself. See Pass hot reload/hot restart callbacks and reload sources path to StrategyProviders instead dart-lang/webdev#2584.
  • Adds code to parse module metadata from the frontend server. This is identical to the implementation in DWDS % addressing type-related lints.
  • Adds tests that run the existing hot reload tests but with web. Some modifications are mode, including waiting for Flutter runs to finish executing, and skipping a test that's not possible on the web.

Needs DWDS 24.3.4 to be published first and used before we can land.

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

- Updates restart/reload code to accept a resetCompiler boolean
to disambiguate between whether this is a full restart and whether
to reset the resident compiler.
- Adds code to call reloadSources in DWDS and handle the response
(including any errors).
- Adds code to invoke reassemble.
- Adds code to emit a script that DWDS can later consume that contains
the changed sources and their associated libraries. This is used to
hot reload. The bootstrapper puts this in the global window. DWDS should
be updated to accept it in the provider itself. See
dart-lang/webdev#2584.
- Adds code to parse module metadata from the frontend server. This is
identical to the implementation in DWDS % addressing type-related lints.
- Adds tests that run the existing hot reload tests but with web. Some
modifications are mode, including waiting for Flutter runs to finish
executing, and skipping a test that's not possible on the web.
@srujzs srujzs requested review from bkonyi and nshahan January 31, 2025 05:27
@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Jan 31, 2025
Copy link
Contributor

@nshahan nshahan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much for getting the existing tests running on the web too!

- Move tests to shared common test locations and add a group to
make it clear whether we're running on the web or not.
- Remove dynamic in favor of Object? in module metadata.
- Add constants for field names in module metadata.
- Add documentation for json files and parameters.
- Change named of restart and reload scripts.
@srujzs
Copy link
Contributor Author

srujzs commented Jan 31, 2025

Thanks so much for getting the existing tests running on the web too!

There's one I have yet to add (hot_reload_errors_test) but that'll come when we get the recompile-request change in.

@srujzs srujzs enabled auto-merge February 3, 2025 05:28
@srujzs srujzs added this pull request to the merge queue Feb 3, 2025
Merged via the queue into flutter:master with commit 8e2a6fc Feb 3, 2025
137 of 138 checks passed
@srujzs srujzs deleted the hotreload2 branch February 3, 2025 06:56
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 3, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Feb 3, 2025
Roll Flutter from b007899 to 8e2a6fc (61 revisions)

flutter/flutter@b007899...8e2a6fc

2025-02-03 58529443+srujzs@users.noreply.github.com Implement hot reload using the DDC library bundle format (flutter/flutter#162498)
2025-02-01 jonahwilliams@google.com [Android] add lint ignores to Flutter JNI. (flutter/flutter#162527)
2025-02-01 codefu@google.com Fix `Linux docs_publish` running at head (flutter/flutter#162557)
2025-02-01 bdero@google.com [Flutter GPU] Breaking: Use exceptions for resource creation errors. (flutter/flutter#162104)
2025-02-01 jonahwilliams@google.com [Impeller] Increase conical gradient precision. (flutter/flutter#162543)
2025-01-31 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#162542)
2025-01-31 1961493+harryterkelsen@users.noreply.github.com [web] Gracefully handle empty ui.Vertices (flutter/flutter#162461)
2025-01-31 mdebbar@google.com [web] Remove HTML build artifacts (flutter/flutter#162528)
2025-01-31 bkonyi@google.com [ Tool ] Remove use of globals from widget-preview commands (flutter/flutter#162522)
2025-01-31 jason-simmons@users.noreply.github.com Add a special case for the Fuchsia SDK ftl.fidl file in the license script (flutter/flutter#162423)
2025-01-31 jason-simmons@users.noreply.github.com [Impeller] Remove some unused methods from EntityPassClipStack (flutter/flutter#162478)
2025-01-31 15619084+vashworth@users.noreply.github.com Reenable linux_web_engine mac tests on Mac-14 (flutter/flutter#162409)
2025-01-31 yaostyle@gmail.com Fix NavigationRail examples overflow alignment (flutter/flutter#159937)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from c1dc5033e7c9 to 4bdf90faf708 (1 revision) (flutter/flutter#162511)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from e0941791b86e to c1dc5033e7c9 (1 revision) (flutter/flutter#162504)
2025-01-31 tessertaha@gmail.com [Reland] Fix `Tab` linear and elastic animation blink (#162315) (flutter/flutter#162450)
2025-01-31 120297255+PurplePolyhedron@users.noreply.github.com fix syntax error in comment pseudocode (flutter/flutter#162453)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from ec8c632b8c7f to e0941791b86e (1 revision) (flutter/flutter#162502)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from a9af2a74c5ab to ec8c632b8c7f (2 revisions) (flutter/flutter#162496)
2025-01-31 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#162476)
2025-01-31 stuartmorgan@google.com Document flutter/package deps version policy (flutter/flutter#162492)
2025-01-31 magder@google.com Add iOS tool codeowner (flutter/flutter#162167)
2025-01-31 30870216+gaaclarke@users.noreply.github.com Fixed the text aspect ratio (flutter/flutter#162415)
2025-01-31 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Delete `FlutterCommand.usageValues` (#162468)" (flutter/flutter#162494)
2025-01-31 yjbanov@google.com Add new web contributors to web triage doc. (flutter/flutter#162420)
2025-01-30 matanlurey@users.noreply.github.com Fix the build borked in flutter/flutter#162475. (flutter/flutter#162484)
2025-01-30 engine-flutter-autoroll@skia.org Roll Skia from e6daf687b558 to a9af2a74c5ab (5 revisions) (flutter/flutter#162474)
2025-01-30 codefu@google.com Bump `Linux mac_clang_tidy" to 120m timeout (flutter/flutter#162475)
2025-01-30 andrewrkolos@gmail.com Delete `FlutterCommand.usageValues` (flutter/flutter#162468)
2025-01-30 30870216+gaaclarke@users.noreply.github.com Fixed some floating point inaccuracies in TextContents (flutter/flutter#162351)
2025-01-30 mdebbar@google.com Limit number of retries when downloading the Dart SDK on Windows (flutter/flutter#162411)
2025-01-30 bruno.leroux@gmail.com Add FormField.errorBuilder (flutter/flutter#162255)
2025-01-30 tessertaha@gmail.com Fix `Checkbox` default visual density to meet Material 3 guidelines (flutter/flutter#159081)
2025-01-30 jonahwilliams@google.com [Android] add HC++ platform view class. (flutter/flutter#161829)
2025-01-30 victorsanniay@gmail.com Add tests to confirm CupertinoSliverNavigationBar snaps when partially scrolled in .always bottom mode (flutter/flutter#162425)
2025-01-30 jonahwilliams@google.com [Impeller] Disable Vulkan on Emulators. (flutter/flutter#162454)
2025-01-30 34871572+gmackall@users.noreply.github.com [FGP Kotlin conversion] Convert `Deeplink` and `IntentFilterCheck` (flutter/flutter#161835)
2025-01-30 137522957+ChrisCRCB@users.noreply.github.com fix slider semantic label (flutter/flutter#162304)
2025-01-30 engine-flutter-autoroll@skia.org Roll Skia from f22419dbed05 to e6daf687b558 (37 revisions) (flutter/flutter#162447)
2025-01-30 andrewrkolos@gmail.com Fix `flutter doctor` instructions displayed when `cmdline-tools` (Android SDK) cannot be found (flutter/flutter#162281)
2025-01-30 andrewrkolos@gmail.com remove more (simple) usage of package:usage (flutter/flutter#162354)
2025-01-30 jonahwilliams@google.com [Android] HC++ plumbing. (flutter/flutter#162407)
2025-01-30 43054281+camsim99@users.noreply.github.com Removes dev dependencies from generated plugin registrant for non-Android platforms (flutter/flutter#161828)
2025-01-30 38378650+hgraceb@users.noreply.github.com Fix unexpected shown of Scrollbar (flutter/flutter#159386)
2025-01-30 bkonyi@google.com Roll package:vm_service to 15.0.0 and package:leak_tracker to 10.0.9 (flutter/flutter#162325)
2025-01-30 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from r9Dc5VRF6sE3pJH20... to g6IlaYL1_wNmk3zNj... (flutter/flutter#162427)
...
@srujzs srujzs restored the hotreload2 branch February 3, 2025 21:15
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
Roll Flutter from b007899 to 8e2a6fc (61 revisions)

flutter/flutter@b007899...8e2a6fc

2025-02-03 58529443+srujzs@users.noreply.github.com Implement hot reload using the DDC library bundle format (flutter/flutter#162498)
2025-02-01 jonahwilliams@google.com [Android] add lint ignores to Flutter JNI. (flutter/flutter#162527)
2025-02-01 codefu@google.com Fix `Linux docs_publish` running at head (flutter/flutter#162557)
2025-02-01 bdero@google.com [Flutter GPU] Breaking: Use exceptions for resource creation errors. (flutter/flutter#162104)
2025-02-01 jonahwilliams@google.com [Impeller] Increase conical gradient precision. (flutter/flutter#162543)
2025-01-31 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#162542)
2025-01-31 1961493+harryterkelsen@users.noreply.github.com [web] Gracefully handle empty ui.Vertices (flutter/flutter#162461)
2025-01-31 mdebbar@google.com [web] Remove HTML build artifacts (flutter/flutter#162528)
2025-01-31 bkonyi@google.com [ Tool ] Remove use of globals from widget-preview commands (flutter/flutter#162522)
2025-01-31 jason-simmons@users.noreply.github.com Add a special case for the Fuchsia SDK ftl.fidl file in the license script (flutter/flutter#162423)
2025-01-31 jason-simmons@users.noreply.github.com [Impeller] Remove some unused methods from EntityPassClipStack (flutter/flutter#162478)
2025-01-31 15619084+vashworth@users.noreply.github.com Reenable linux_web_engine mac tests on Mac-14 (flutter/flutter#162409)
2025-01-31 yaostyle@gmail.com Fix NavigationRail examples overflow alignment (flutter/flutter#159937)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from c1dc5033e7c9 to 4bdf90faf708 (1 revision) (flutter/flutter#162511)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from e0941791b86e to c1dc5033e7c9 (1 revision) (flutter/flutter#162504)
2025-01-31 tessertaha@gmail.com [Reland] Fix `Tab` linear and elastic animation blink (#162315) (flutter/flutter#162450)
2025-01-31 120297255+PurplePolyhedron@users.noreply.github.com fix syntax error in comment pseudocode (flutter/flutter#162453)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from ec8c632b8c7f to e0941791b86e (1 revision) (flutter/flutter#162502)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from a9af2a74c5ab to ec8c632b8c7f (2 revisions) (flutter/flutter#162496)
2025-01-31 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#162476)
2025-01-31 stuartmorgan@google.com Document flutter/package deps version policy (flutter/flutter#162492)
2025-01-31 magder@google.com Add iOS tool codeowner (flutter/flutter#162167)
2025-01-31 30870216+gaaclarke@users.noreply.github.com Fixed the text aspect ratio (flutter/flutter#162415)
2025-01-31 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Delete `FlutterCommand.usageValues` (#162468)" (flutter/flutter#162494)
2025-01-31 yjbanov@google.com Add new web contributors to web triage doc. (flutter/flutter#162420)
2025-01-30 matanlurey@users.noreply.github.com Fix the build borked in flutter/flutter#162475. (flutter/flutter#162484)
2025-01-30 engine-flutter-autoroll@skia.org Roll Skia from e6daf687b558 to a9af2a74c5ab (5 revisions) (flutter/flutter#162474)
2025-01-30 codefu@google.com Bump `Linux mac_clang_tidy" to 120m timeout (flutter/flutter#162475)
2025-01-30 andrewrkolos@gmail.com Delete `FlutterCommand.usageValues` (flutter/flutter#162468)
2025-01-30 30870216+gaaclarke@users.noreply.github.com Fixed some floating point inaccuracies in TextContents (flutter/flutter#162351)
2025-01-30 mdebbar@google.com Limit number of retries when downloading the Dart SDK on Windows (flutter/flutter#162411)
2025-01-30 bruno.leroux@gmail.com Add FormField.errorBuilder (flutter/flutter#162255)
2025-01-30 tessertaha@gmail.com Fix `Checkbox` default visual density to meet Material 3 guidelines (flutter/flutter#159081)
2025-01-30 jonahwilliams@google.com [Android] add HC++ platform view class. (flutter/flutter#161829)
2025-01-30 victorsanniay@gmail.com Add tests to confirm CupertinoSliverNavigationBar snaps when partially scrolled in .always bottom mode (flutter/flutter#162425)
2025-01-30 jonahwilliams@google.com [Impeller] Disable Vulkan on Emulators. (flutter/flutter#162454)
2025-01-30 34871572+gmackall@users.noreply.github.com [FGP Kotlin conversion] Convert `Deeplink` and `IntentFilterCheck` (flutter/flutter#161835)
2025-01-30 137522957+ChrisCRCB@users.noreply.github.com fix slider semantic label (flutter/flutter#162304)
2025-01-30 engine-flutter-autoroll@skia.org Roll Skia from f22419dbed05 to e6daf687b558 (37 revisions) (flutter/flutter#162447)
2025-01-30 andrewrkolos@gmail.com Fix `flutter doctor` instructions displayed when `cmdline-tools` (Android SDK) cannot be found (flutter/flutter#162281)
2025-01-30 andrewrkolos@gmail.com remove more (simple) usage of package:usage (flutter/flutter#162354)
2025-01-30 jonahwilliams@google.com [Android] HC++ plumbing. (flutter/flutter#162407)
2025-01-30 43054281+camsim99@users.noreply.github.com Removes dev dependencies from generated plugin registrant for non-Android platforms (flutter/flutter#161828)
2025-01-30 38378650+hgraceb@users.noreply.github.com Fix unexpected shown of Scrollbar (flutter/flutter#159386)
2025-01-30 bkonyi@google.com Roll package:vm_service to 15.0.0 and package:leak_tracker to 10.0.9 (flutter/flutter#162325)
2025-01-30 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from r9Dc5VRF6sE3pJH20... to g6IlaYL1_wNmk3zNj... (flutter/flutter#162427)
...
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
Roll Flutter from b007899 to 8e2a6fc (61 revisions)

flutter/flutter@b007899...8e2a6fc

2025-02-03 58529443+srujzs@users.noreply.github.com Implement hot reload using the DDC library bundle format (flutter/flutter#162498)
2025-02-01 jonahwilliams@google.com [Android] add lint ignores to Flutter JNI. (flutter/flutter#162527)
2025-02-01 codefu@google.com Fix `Linux docs_publish` running at head (flutter/flutter#162557)
2025-02-01 bdero@google.com [Flutter GPU] Breaking: Use exceptions for resource creation errors. (flutter/flutter#162104)
2025-02-01 jonahwilliams@google.com [Impeller] Increase conical gradient precision. (flutter/flutter#162543)
2025-01-31 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#162542)
2025-01-31 1961493+harryterkelsen@users.noreply.github.com [web] Gracefully handle empty ui.Vertices (flutter/flutter#162461)
2025-01-31 mdebbar@google.com [web] Remove HTML build artifacts (flutter/flutter#162528)
2025-01-31 bkonyi@google.com [ Tool ] Remove use of globals from widget-preview commands (flutter/flutter#162522)
2025-01-31 jason-simmons@users.noreply.github.com Add a special case for the Fuchsia SDK ftl.fidl file in the license script (flutter/flutter#162423)
2025-01-31 jason-simmons@users.noreply.github.com [Impeller] Remove some unused methods from EntityPassClipStack (flutter/flutter#162478)
2025-01-31 15619084+vashworth@users.noreply.github.com Reenable linux_web_engine mac tests on Mac-14 (flutter/flutter#162409)
2025-01-31 yaostyle@gmail.com Fix NavigationRail examples overflow alignment (flutter/flutter#159937)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from c1dc5033e7c9 to 4bdf90faf708 (1 revision) (flutter/flutter#162511)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from e0941791b86e to c1dc5033e7c9 (1 revision) (flutter/flutter#162504)
2025-01-31 tessertaha@gmail.com [Reland] Fix `Tab` linear and elastic animation blink (#162315) (flutter/flutter#162450)
2025-01-31 120297255+PurplePolyhedron@users.noreply.github.com fix syntax error in comment pseudocode (flutter/flutter#162453)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from ec8c632b8c7f to e0941791b86e (1 revision) (flutter/flutter#162502)
2025-01-31 engine-flutter-autoroll@skia.org Roll Skia from a9af2a74c5ab to ec8c632b8c7f (2 revisions) (flutter/flutter#162496)
2025-01-31 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#162476)
2025-01-31 stuartmorgan@google.com Document flutter/package deps version policy (flutter/flutter#162492)
2025-01-31 magder@google.com Add iOS tool codeowner (flutter/flutter#162167)
2025-01-31 30870216+gaaclarke@users.noreply.github.com Fixed the text aspect ratio (flutter/flutter#162415)
2025-01-31 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Delete `FlutterCommand.usageValues` (#162468)" (flutter/flutter#162494)
2025-01-31 yjbanov@google.com Add new web contributors to web triage doc. (flutter/flutter#162420)
2025-01-30 matanlurey@users.noreply.github.com Fix the build borked in flutter/flutter#162475. (flutter/flutter#162484)
2025-01-30 engine-flutter-autoroll@skia.org Roll Skia from e6daf687b558 to a9af2a74c5ab (5 revisions) (flutter/flutter#162474)
2025-01-30 codefu@google.com Bump `Linux mac_clang_tidy" to 120m timeout (flutter/flutter#162475)
2025-01-30 andrewrkolos@gmail.com Delete `FlutterCommand.usageValues` (flutter/flutter#162468)
2025-01-30 30870216+gaaclarke@users.noreply.github.com Fixed some floating point inaccuracies in TextContents (flutter/flutter#162351)
2025-01-30 mdebbar@google.com Limit number of retries when downloading the Dart SDK on Windows (flutter/flutter#162411)
2025-01-30 bruno.leroux@gmail.com Add FormField.errorBuilder (flutter/flutter#162255)
2025-01-30 tessertaha@gmail.com Fix `Checkbox` default visual density to meet Material 3 guidelines (flutter/flutter#159081)
2025-01-30 jonahwilliams@google.com [Android] add HC++ platform view class. (flutter/flutter#161829)
2025-01-30 victorsanniay@gmail.com Add tests to confirm CupertinoSliverNavigationBar snaps when partially scrolled in .always bottom mode (flutter/flutter#162425)
2025-01-30 jonahwilliams@google.com [Impeller] Disable Vulkan on Emulators. (flutter/flutter#162454)
2025-01-30 34871572+gmackall@users.noreply.github.com [FGP Kotlin conversion] Convert `Deeplink` and `IntentFilterCheck` (flutter/flutter#161835)
2025-01-30 137522957+ChrisCRCB@users.noreply.github.com fix slider semantic label (flutter/flutter#162304)
2025-01-30 engine-flutter-autoroll@skia.org Roll Skia from f22419dbed05 to e6daf687b558 (37 revisions) (flutter/flutter#162447)
2025-01-30 andrewrkolos@gmail.com Fix `flutter doctor` instructions displayed when `cmdline-tools` (Android SDK) cannot be found (flutter/flutter#162281)
2025-01-30 andrewrkolos@gmail.com remove more (simple) usage of package:usage (flutter/flutter#162354)
2025-01-30 jonahwilliams@google.com [Android] HC++ plumbing. (flutter/flutter#162407)
2025-01-30 43054281+camsim99@users.noreply.github.com Removes dev dependencies from generated plugin registrant for non-Android platforms (flutter/flutter#161828)
2025-01-30 38378650+hgraceb@users.noreply.github.com Fix unexpected shown of Scrollbar (flutter/flutter#159386)
2025-01-30 bkonyi@google.com Roll package:vm_service to 15.0.0 and package:leak_tracker to 10.0.9 (flutter/flutter#162325)
2025-01-30 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from r9Dc5VRF6sE3pJH20... to g6IlaYL1_wNmk3zNj... (flutter/flutter#162427)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants