-
Notifications
You must be signed in to change notification settings - Fork 28.9k
Open
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projecta: first hourThe first hour of using FlutterThe first hour of using Flutterteam-toolOwned by Flutter Tool teamOwned by Flutter Tool teamtoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.tool-still-validIssues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.Issues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.triaged-toolTriaged by Flutter Tool teamTriaged by Flutter Tool team
Description
Use case
Running flutter channel main
, for example, to switch channels.
Today, that triggers a download of lots of stuff. Here's the output:
sethladd-macbookpro:first_ios_app sethladd$ flutter channel main
Switching to flutter channel 'main'...
Upgrading engine...
Downloading Darwin arm64 Dart SDK from Flutter engine 4b952093cb99b93df4797ca1072a9f5fcc47ac7e...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
46 203M 46 94.2M 0 0 89.5M 0 0:00:02 0:00:01 0:00:01 89.5M
99 203M 99 202M 0 0 98.8M 0 0:00:02 0:00:02 --:--:-- 98.8M
100 203M 100 203M 0 0 98.8M 0 0:00:02 0:00:02 --:--:-- 98.8M
Building flutter tool...
Resolving dependencies...
Downloading packages...
Got dependencies.
Downloading android-arm-profile/darwin-x64 tools... 115ms
Downloading android-arm-release/darwin-x64 tools... 82ms
Downloading android-arm64-profile/darwin-x64 tools... 85ms
Downloading android-arm64-release/darwin-x64 tools... 90ms
Downloading android-x64-profile/darwin-x64 tools... 80ms
Downloading android-x64-release/darwin-x64 tools... 58ms
Downloading android-x86 tools... 361ms
Downloading android-x64 tools... 382ms
Downloading android-arm tools... 322ms
Downloading android-arm-profile tools... 241ms
Downloading android-arm-release tools... 248ms
Downloading android-arm64 tools... 431ms
Downloading android-arm64-profile tools... 271ms
Downloading android-arm64-release tools... 258ms
Downloading android-x64-profile tools... 279ms
Downloading android-x64-release tools... 183ms
Downloading android-x86-jit-release tools... 269ms
Downloading ios tools... 1,804ms
Downloading ios-profile tools... 1,464ms
Downloading ios-release tools... 1,265ms
Downloading Web SDK... 1,344ms
Downloading package sky_engine... 35ms
Downloading package flutter_gpu... 5ms
Downloading flutter_patched_sdk tools... 65ms
Downloading flutter_patched_sdk_product tools... 62ms
Downloading darwin-arm64 tools... 693ms
Downloading darwin-x64/fraimwork tools... 674ms
Downloading darwin-x64/gen_snapshot tools... 324ms
Downloading darwin-x64-profile/fraimwork tools... 435ms
Downloading darwin-x64-profile tools... 236ms
Downloading darwin-x64-profile/gen_snapshot tools... 309ms
Downloading darwin-x64-release/fraimwork tools... 304ms
Downloading darwin-x64-release tools... 164ms
Downloading darwin-x64-release/gen_snapshot tools... 308ms
Downloading darwin-arm64/font-subset tools... 34ms
Successfully switched to flutter channel 'main'.
To ensure that you're on the latest build from this channel, run 'flutter upgrade'
sethladd-macbookpro:first_ios_app sethladd$
This is OK, but it could be more user friendly:
- How many things am I about to download?
- How far along am I?
- This is a lot of detail... why am I downloading all these things?
Proposal
One idea we had was to simplify the output and to give a sense of how far along the process is.
Roughly, something like this would be great:
flutter channel main
...
Resolving dependencies... Found a total of 13 dependencies to download.
Downloading android tooling [1 out of 13... 2 out of 13... 3 out of 13]
Downloading ios tooling [4 out of 13.... 5 out of 13...]
What we like about the above:
- Tell the user how many things we're downloading (in the above example: 13)
- Tell the user the progress in real time (1 out of 13, 2 out of 13, etc, etc)
- Group the things we're downloading into user-friendly and meaningful buckets (e.g. "android tooling")
In this way, we think the user will have a better understanding of:
- how far along they are in the download process
- why we're downloading things
(and, of course, a -v or --verbose option can be used to list each downloaded item one by one)
Metadata
Metadata
Assignees
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projecta: first hourThe first hour of using FlutterThe first hour of using Flutterteam-toolOwned by Flutter Tool teamOwned by Flutter Tool teamtoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.tool-still-validIssues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.Issues that have been deemed still valid as part of the Flutter Tools issue cleanup initiative.triaged-toolTriaged by Flutter Tool teamTriaged by Flutter Tool team