The set of commands in the flutter/packages repo tooling has grown organically over time as we've added more functionality, and it's becoming cumbersome to run all relevant commands. The commands are also inconsistently grouped; e.g., native-test runs native tests for any platform, but native analysis/lint commands are all separate and bespoke.
The native/Dart distinction is also one that doesn't need to be made at the command level, and could instead be done with flags.
Concrete suggestions:
For some of these, we'd need to figure out how to manage output summaries when mulitple tests are run, but that should be doable within the existing error collection/summary system the tooling has.
We'll need to have enough flag options that we can continue to keep some of the steps more fine-grained in CI. That will be especially true of anything where we have exclusion files, because we don't want to have to exclude a whole category of tests just to exclude a specific subset.
The set of commands in the flutter/packages repo tooling has grown organically over time as we've added more functionality, and it's becoming cumbersome to run all relevant commands. The commands are also inconsistently grouped; e.g.,
native-testruns native tests for any platform, but native analysis/lint commands are all separate and bespoke.The native/Dart distinction is also one that doesn't need to be made at the command level, and could instead be done with flags.
Concrete suggestions:
analyze,lint-android,xcode-analyze) into a singleanalyzecommand with--<platform>and--dartflags.gradle-check,podspec-check) into a single command.analyzeas well?custom-test,dart-test,native-test,drive-examples) into a single command.firebase-test-labin this command.pubspec-check,readme-check,repo-package-info-check) into a single command.For some of these, we'd need to figure out how to manage output summaries when mulitple tests are run, but that should be doable within the existing error collection/summary system the tooling has.
We'll need to have enough flag options that we can continue to keep some of the steps more fine-grained in CI. That will be especially true of anything where we have exclusion files, because we don't want to have to exclude a whole category of tests just to exclude a specific subset.