Skip to content

webdev daemon should use app.progress instead of daemon.logMessage for build progress #219

@DanTup

Description

@DanTup

Currently webdev daemon writes all build progress as daemon.logMessage events. Many of these would work better as app.progress events since they're already used to show nice progress notifications when building Flutter apps.

For example, here's a webdev daemon build:

[9:30:35 AM]: <== [{"event":"daemon.connected","params":{"version":"0.4.2","pid":18674}}]
[9:30:36 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":"Connecting to the build daemon..."}}]
[9:30:37 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":"Generating build script..."}}]
[9:30:37 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":"Generating build script completed, took 366ms"}}]
[9:30:37 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":""}}]
[9:30:37 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":"Starting daemon..."}}]
[9:30:39 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":"BuildDefinition: Initializing inputs"}}]
[9:30:39 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":"BuildDefinition: Reading cached asset graph..."}}]
[9:30:39 AM]: <== [{"event":"daemon.logMessage","params":{"level":"INFO","message":"BuildDefinition: Reading cached asset graph completed, took 368ms"}}]

And here's a Flutter build:

[9:09:12 AM]: <== [{"event":"daemon.connected","params":{"version":"0.4.2","pid":14493}}]
[9:09:12 AM]: <== [{"event":"app.start","params":{"appId":"f7f9f43e-4003-4e5f-aff2-f97b7d8e5459","deviceId":"1DD6786B-37D4-4355-AA15-B818A87A18B4","directory":"/Users/dantup/Dev/Google/flutter/examples/flutter_gallery","supportsRestart":true,"launchMode":"run"}}]
[9:09:12 AM]: <== Launching lib/main.dart on iPhone XS Max in debug mode...
[9:09:16 AM]: <== [{"event":"app.progress","params":{"appId":"f7f9f43e-4003-4e5f-aff2-f97b7d8e5459","id":"0","progressId":null,"message":"Running Xcode build..."}}]
[9:09:21 AM]: <== [{"event":"app.progress","params":{"appId":"f7f9f43e-4003-4e5f-aff2-f97b7d8e5459","id":"0","progressId":null,"finished":true}}]
[9:09:21 AM]: <== Xcode build done.                                            4.8s
[9:09:26 AM]: <== [{"event":"app.debugPort","params":{"appId":"f7f9f43e-4003-4e5f-aff2-f97b7d8e5459","port":52628,"wsUri":"ws://127.0.0.1:52628/ws","baseUri":"file:///Users/dantup/Library/Developer/CoreSimulator/Devices/1DD6786B-37D4-4355-AA15-B818A87A18B4/data/Containers/Data/Application/504526A6-634C-4B7B-B6B5-22DE55D3FE3F/tmp/flutter_gallerybZpreZ/flutter_gallery/"}}]
[9:09:27 AM]: <== [{"event":"app.progress","params":{"appId":"f7f9f43e-4003-4e5f-aff2-f97b7d8e5459","id":"1","progressId":null,"message":"Syncing files to device iPhone XS Max..."}}]
[9:09:30 AM]: <== [{"event":"app.progress","params":{"appId":"f7f9f43e-4003-4e5f-aff2-f97b7d8e5459","id":"1","progressId":null,"finished":true}}]
[9:09:30 AM]: <== [{"event":"app.started","params":{"appId":"f7f9f43e-4003-4e5f-aff2-f97b7d8e5459"}}]

In VS Code, daemon.logMessage isn't currently surfaced anywhere (though I'll fix this, and make it work similar to Flutter's non-JSON stdout output, going to the debug console), but the app.progress notifications are used to show the progress of a build/launch in a progress notification:

Screenshot 2019-03-19 at 9 26 29 am

If we could change webdev daemon's progress notifications (all the ones that appear twice, the second one with "Completed" on the end) to app.progress, then we'd get the same sort of build notifications for webdev without additional work.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions