Skip to content

[packages] Simplify repo tool command set #173413

Description

@stuartmorgan-g

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:

  • Combine all code analysis (analyze, lint-android, xcode-analyze) into a single analyze command with --<platform> and --dart flags.
  • Combine all build analysis (gradle-check, podspec-check) into a single command.
    • Consider making these part of analyze as well?
  • Combine testing (custom-test, dart-test, native-test, drive-examples) into a single command.
    • Consider including firebase-test-lab in this command.
  • Combine a lot of the metadata checks (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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: contributor-productivityTeam-specific productivity, code health, technical debt.p: toolingAffects the flutter_plugin_tools packagepackageflutter/packages repository. See also p: labels.team-ecosystemOwned by Ecosystem teamtriaged-ecosystemTriaged by Ecosystem team

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions