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 [email protected] Implement hot reload using the DDC library bundle format (flutter/flutter#162498)
2025-02-01 [email protected] [Android] add lint ignores to Flutter JNI. (flutter/flutter#162527)
2025-02-01 [email protected] Fix `Linux docs_publish` running at head (flutter/flutter#162557)
2025-02-01 [email protected] [Flutter GPU] Breaking: Use exceptions for resource creation errors. (flutter/flutter#162104)
2025-02-01 [email protected] [Impeller] Increase conical gradient precision. (flutter/flutter#162543)
2025-01-31 [email protected] Roll pub packages (flutter/flutter#162542)
2025-01-31 [email protected] [web] Gracefully handle empty ui.Vertices (flutter/flutter#162461)
2025-01-31 [email protected] [web] Remove HTML build artifacts (flutter/flutter#162528)
2025-01-31 [email protected] [ Tool ] Remove use of globals from widget-preview commands (flutter/flutter#162522)
2025-01-31 [email protected] Add a special case for the Fuchsia SDK ftl.fidl file in the license script (flutter/flutter#162423)
2025-01-31 [email protected] [Impeller] Remove some unused methods from EntityPassClipStack (flutter/flutter#162478)
2025-01-31 [email protected] Reenable linux_web_engine mac tests on Mac-14 (flutter/flutter#162409)
2025-01-31 [email protected] Fix NavigationRail examples overflow alignment (flutter/flutter#159937)
2025-01-31 [email protected] Roll Skia from c1dc5033e7c9 to 4bdf90faf708 (1 revision) (flutter/flutter#162511)
2025-01-31 [email protected] Roll Skia from e0941791b86e to c1dc5033e7c9 (1 revision) (flutter/flutter#162504)
2025-01-31 [email protected] [Reland] Fix `Tab` linear and elastic animation blink (#162315) (flutter/flutter#162450)
2025-01-31 [email protected] fix syntax error in comment pseudocode (flutter/flutter#162453)
2025-01-31 [email protected] Roll Skia from ec8c632b8c7f to e0941791b86e (1 revision) (flutter/flutter#162502)
2025-01-31 [email protected] Roll Skia from a9af2a74c5ab to ec8c632b8c7f (2 revisions) (flutter/flutter#162496)
2025-01-31 [email protected] Roll pub packages (flutter/flutter#162476)
2025-01-31 [email protected] Document flutter/package deps version policy (flutter/flutter#162492)
2025-01-31 [email protected] Add iOS tool codeowner (flutter/flutter#162167)
2025-01-31 [email protected] 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 [email protected] Add new web contributors to web triage doc. (flutter/flutter#162420)
2025-01-30 [email protected] Fix the build borked in flutter/flutter#162475. (flutter/flutter#162484)
2025-01-30 [email protected] Roll Skia from e6daf687b558 to a9af2a74c5ab (5 revisions) (flutter/flutter#162474)
2025-01-30 [email protected] Bump `Linux mac_clang_tidy" to 120m timeout (flutter/flutter#162475)
2025-01-30 [email protected] Delete `FlutterCommand.usageValues` (flutter/flutter#162468)
2025-01-30 [email protected] Fixed some floating point inaccuracies in TextContents (flutter/flutter#162351)
2025-01-30 [email protected] Limit number of retries when downloading the Dart SDK on Windows (flutter/flutter#162411)
2025-01-30 [email protected] Add FormField.errorBuilder (flutter/flutter#162255)
2025-01-30 [email protected] Fix `Checkbox` default visual density to meet Material 3 guidelines (flutter/flutter#159081)
2025-01-30 [email protected] [Android] add HC++ platform view class. (flutter/flutter#161829)
2025-01-30 [email protected] Add tests to confirm CupertinoSliverNavigationBar snaps when partially scrolled in .always bottom mode (flutter/flutter#162425)
2025-01-30 [email protected] [Impeller] Disable Vulkan on Emulators. (flutter/flutter#162454)
2025-01-30 [email protected] [FGP Kotlin conversion] Convert `Deeplink` and `IntentFilterCheck` (flutter/flutter#161835)
2025-01-30 [email protected] fix slider semantic label (flutter/flutter#162304)
2025-01-30 [email protected] Roll Skia from f22419dbed05 to e6daf687b558 (37 revisions) (flutter/flutter#162447)
2025-01-30 [email protected] Fix `flutter doctor` instructions displayed when `cmdline-tools` (Android SDK) cannot be found (flutter/flutter#162281)
2025-01-30 [email protected] remove more (simple) usage of package:usage (flutter/flutter#162354)
2025-01-30 [email protected] [Android] HC++ plumbing. (flutter/flutter#162407)
2025-01-30 [email protected] Removes dev dependencies from generated plugin registrant for non-Android platforms (flutter/flutter#161828)
2025-01-30 [email protected] Fix unexpected shown of Scrollbar (flutter/flutter#159386)
2025-01-30 [email protected] Roll package:vm_service to 15.0.0 and package:leak_tracker to 10.0.9 (flutter/flutter#162325)
2025-01-30 [email protected] 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 [email protected] Implement hot reload using the DDC library bundle format (flutter/flutter#162498)
2025-02-01 [email protected] [Android] add lint ignores to Flutter JNI. (flutter/flutter#162527)
2025-02-01 [email protected] Fix `Linux docs_publish` running at head (flutter/flutter#162557)
2025-02-01 [email protected] [Flutter GPU] Breaking: Use exceptions for resource creation errors. (flutter/flutter#162104)
2025-02-01 [email protected] [Impeller] Increase conical gradient precision. (flutter/flutter#162543)
2025-01-31 [email protected] Roll pub packages (flutter/flutter#162542)
2025-01-31 [email protected] [web] Gracefully handle empty ui.Vertices (flutter/flutter#162461)
2025-01-31 [email protected] [web] Remove HTML build artifacts (flutter/flutter#162528)
2025-01-31 [email protected] [ Tool ] Remove use of globals from widget-preview commands (flutter/flutter#162522)
2025-01-31 [email protected] Add a special case for the Fuchsia SDK ftl.fidl file in the license script (flutter/flutter#162423)
2025-01-31 [email protected] [Impeller] Remove some unused methods from EntityPassClipStack (flutter/flutter#162478)
2025-01-31 [email protected] Reenable linux_web_engine mac tests on Mac-14 (flutter/flutter#162409)
2025-01-31 [email protected] Fix NavigationRail examples overflow alignment (flutter/flutter#159937)
2025-01-31 [email protected] Roll Skia from c1dc5033e7c9 to 4bdf90faf708 (1 revision) (flutter/flutter#162511)
2025-01-31 [email protected] Roll Skia from e0941791b86e to c1dc5033e7c9 (1 revision) (flutter/flutter#162504)
2025-01-31 [email protected] [Reland] Fix `Tab` linear and elastic animation blink (#162315) (flutter/flutter#162450)
2025-01-31 [email protected] fix syntax error in comment pseudocode (flutter/flutter#162453)
2025-01-31 [email protected] Roll Skia from ec8c632b8c7f to e0941791b86e (1 revision) (flutter/flutter#162502)
2025-01-31 [email protected] Roll Skia from a9af2a74c5ab to ec8c632b8c7f (2 revisions) (flutter/flutter#162496)
2025-01-31 [email protected] Roll pub packages (flutter/flutter#162476)
2025-01-31 [email protected] Document flutter/package deps version policy (flutter/flutter#162492)
2025-01-31 [email protected] Add iOS tool codeowner (flutter/flutter#162167)
2025-01-31 [email protected] 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 [email protected] Add new web contributors to web triage doc. (flutter/flutter#162420)
2025-01-30 [email protected] Fix the build borked in flutter/flutter#162475. (flutter/flutter#162484)
2025-01-30 [email protected] Roll Skia from e6daf687b558 to a9af2a74c5ab (5 revisions) (flutter/flutter#162474)
2025-01-30 [email protected] Bump `Linux mac_clang_tidy" to 120m timeout (flutter/flutter#162475)
2025-01-30 [email protected] Delete `FlutterCommand.usageValues` (flutter/flutter#162468)
2025-01-30 [email protected] Fixed some floating point inaccuracies in TextContents (flutter/flutter#162351)
2025-01-30 [email protected] Limit number of retries when downloading the Dart SDK on Windows (flutter/flutter#162411)
2025-01-30 [email protected] Add FormField.errorBuilder (flutter/flutter#162255)
2025-01-30 [email protected] Fix `Checkbox` default visual density to meet Material 3 guidelines (flutter/flutter#159081)
2025-01-30 [email protected] [Android] add HC++ platform view class. (flutter/flutter#161829)
2025-01-30 [email protected] Add tests to confirm CupertinoSliverNavigationBar snaps when partially scrolled in .always bottom mode (flutter/flutter#162425)
2025-01-30 [email protected] [Impeller] Disable Vulkan on Emulators. (flutter/flutter#162454)
2025-01-30 [email protected] [FGP Kotlin conversion] Convert `Deeplink` and `IntentFilterCheck` (flutter/flutter#161835)
2025-01-30 [email protected] fix slider semantic label (flutter/flutter#162304)
2025-01-30 [email protected] Roll Skia from f22419dbed05 to e6daf687b558 (37 revisions) (flutter/flutter#162447)
2025-01-30 [email protected] Fix `flutter doctor` instructions displayed when `cmdline-tools` (Android SDK) cannot be found (flutter/flutter#162281)
2025-01-30 [email protected] remove more (simple) usage of package:usage (flutter/flutter#162354)
2025-01-30 [email protected] [Android] HC++ plumbing. (flutter/flutter#162407)
2025-01-30 [email protected] Removes dev dependencies from generated plugin registrant for non-Android platforms (flutter/flutter#161828)
2025-01-30 [email protected] Fix unexpected shown of Scrollbar (flutter/flutter#159386)
2025-01-30 [email protected] Roll package:vm_service to 15.0.0 and package:leak_tracker to 10.0.9 (flutter/flutter#162325)
2025-01-30 [email protected] 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 [email protected] Implement hot reload using the DDC library bundle format (flutter/flutter#162498)
2025-02-01 [email protected] [Android] add lint ignores to Flutter JNI. (flutter/flutter#162527)
2025-02-01 [email protected] Fix `Linux docs_publish` running at head (flutter/flutter#162557)
2025-02-01 [email protected] [Flutter GPU] Breaking: Use exceptions for resource creation errors. (flutter/flutter#162104)
2025-02-01 [email protected] [Impeller] Increase conical gradient precision. (flutter/flutter#162543)
2025-01-31 [email protected] Roll pub packages (flutter/flutter#162542)
2025-01-31 [email protected] [web] Gracefully handle empty ui.Vertices (flutter/flutter#162461)
2025-01-31 [email protected] [web] Remove HTML build artifacts (flutter/flutter#162528)
2025-01-31 [email protected] [ Tool ] Remove use of globals from widget-preview commands (flutter/flutter#162522)
2025-01-31 [email protected] Add a special case for the Fuchsia SDK ftl.fidl file in the license script (flutter/flutter#162423)
2025-01-31 [email protected] [Impeller] Remove some unused methods from EntityPassClipStack (flutter/flutter#162478)
2025-01-31 [email protected] Reenable linux_web_engine mac tests on Mac-14 (flutter/flutter#162409)
2025-01-31 [email protected] Fix NavigationRail examples overflow alignment (flutter/flutter#159937)
2025-01-31 [email protected] Roll Skia from c1dc5033e7c9 to 4bdf90faf708 (1 revision) (flutter/flutter#162511)
2025-01-31 [email protected] Roll Skia from e0941791b86e to c1dc5033e7c9 (1 revision) (flutter/flutter#162504)
2025-01-31 [email protected] [Reland] Fix `Tab` linear and elastic animation blink (#162315) (flutter/flutter#162450)
2025-01-31 [email protected] fix syntax error in comment pseudocode (flutter/flutter#162453)
2025-01-31 [email protected] Roll Skia from ec8c632b8c7f to e0941791b86e (1 revision) (flutter/flutter#162502)
2025-01-31 [email protected] Roll Skia from a9af2a74c5ab to ec8c632b8c7f (2 revisions) (flutter/flutter#162496)
2025-01-31 [email protected] Roll pub packages (flutter/flutter#162476)
2025-01-31 [email protected] Document flutter/package deps version policy (flutter/flutter#162492)
2025-01-31 [email protected] Add iOS tool codeowner (flutter/flutter#162167)
2025-01-31 [email protected] 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 [email protected] Add new web contributors to web triage doc. (flutter/flutter#162420)
2025-01-30 [email protected] Fix the build borked in flutter/flutter#162475. (flutter/flutter#162484)
2025-01-30 [email protected] Roll Skia from e6daf687b558 to a9af2a74c5ab (5 revisions) (flutter/flutter#162474)
2025-01-30 [email protected] Bump `Linux mac_clang_tidy" to 120m timeout (flutter/flutter#162475)
2025-01-30 [email protected] Delete `FlutterCommand.usageValues` (flutter/flutter#162468)
2025-01-30 [email protected] Fixed some floating point inaccuracies in TextContents (flutter/flutter#162351)
2025-01-30 [email protected] Limit number of retries when downloading the Dart SDK on Windows (flutter/flutter#162411)
2025-01-30 [email protected] Add FormField.errorBuilder (flutter/flutter#162255)
2025-01-30 [email protected] Fix `Checkbox` default visual density to meet Material 3 guidelines (flutter/flutter#159081)
2025-01-30 [email protected] [Android] add HC++ platform view class. (flutter/flutter#161829)
2025-01-30 [email protected] Add tests to confirm CupertinoSliverNavigationBar snaps when partially scrolled in .always bottom mode (flutter/flutter#162425)
2025-01-30 [email protected] [Impeller] Disable Vulkan on Emulators. (flutter/flutter#162454)
2025-01-30 [email protected] [FGP Kotlin conversion] Convert `Deeplink` and `IntentFilterCheck` (flutter/flutter#161835)
2025-01-30 [email protected] fix slider semantic label (flutter/flutter#162304)
2025-01-30 [email protected] Roll Skia from f22419dbed05 to e6daf687b558 (37 revisions) (flutter/flutter#162447)
2025-01-30 [email protected] Fix `flutter doctor` instructions displayed when `cmdline-tools` (Android SDK) cannot be found (flutter/flutter#162281)
2025-01-30 [email protected] remove more (simple) usage of package:usage (flutter/flutter#162354)
2025-01-30 [email protected] [Android] HC++ plumbing. (flutter/flutter#162407)
2025-01-30 [email protected] Removes dev dependencies from generated plugin registrant for non-Android platforms (flutter/flutter#161828)
2025-01-30 [email protected] Fix unexpected shown of Scrollbar (flutter/flutter#159386)
2025-01-30 [email protected] Roll package:vm_service to 15.0.0 and package:leak_tracker to 10.0.9 (flutter/flutter#162325)
2025-01-30 [email protected] 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