[dwds] Wait for scripts to be parsed on a hot restart and publish DWDS 25.0.0 (#2667)

Like https://github.com/dart-lang/webdev/issues/2640, we
should wait until scripts are parsed before continuing a hot restart.
Otherwise, metadata can be stale and breakpoints may be placed in the
wrong files.

For now, we only do this in the DDC library bundle format as we don't
have a way to fetch the changed libraries in the AMD format.

- hotReloadSourcesUri is repurposed to be reloadedSourcesUri, which is
a breaking change. This file is now used for both hot restart and hot
reload to detail the changed files across either.
- Injected client is changed to return the mapping within this uri when
a hot reload is executed.
- Completer is added to ChromeProxyService to wait until all scripts are
parsed before recreating the isolate, which will reinitialize all metadata.
- Fix a preexisting race condition where we don't listen for a kIsolateStart
event early enough.

This should help fix the Windows flakes for hot_restart_breakpoints_test.dart.
20 files changed
tree: bb2310f3985eeba1ac21efc945a51060a615cfba
  1. .github/
  2. _analysis_config/
  3. dwds/
  4. example/
  5. fixtures/
  6. frontend_server_client/
  7. frontend_server_common/
  8. test_common/
  9. tool/
  10. webdev/
  11. .gitattributes
  12. .gitignore
  13. AUTHORS
  14. CONTRIBUTING.md
  15. mono_repo.yaml
  16. README.md
README.md

Dart

Packages

PackageDescriptionVersion
dwdsA service that proxies between the Chrome debug protocol and the Dart VM service protocol.pub package
frontend_server_clientClient code to start and interact with the frontend_server compiler from the Dart SDK.pub package
webdevA CLI for Dart web development. Provides an easy and consistent set of features for users and tools to build and deploy web applications with Dart.pub package

Publishing automation

For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.