Skip to content

☂️ [Feature request] Engine repo mono tool #132807

@reidbaker

Description

@reidbaker

The engine is a necessarily complicated product and can be difficult to work in for contributors that do not frequently live in the engine code. Personally I have to open a wiki page or two every time I want to jump in the engine code.

This umbrella issue is to track all work related to building out the feature request for a mono tool designed for contributor and CI to use.

The tool should be:

  1. Written in dart
    • Maximize number of contributors that have high proficiency
    • Runs on every platform we support
  2. Live in the engine repo `script/tool/bin/engine.dart
    • Allows for single repo change
    • Easier to keep up to date
    • Code reviewable
  3. Can build all targets dart run engine.dart build --all
    • At 6 platforms this can be annoying to figure out
  4. Can lint all targets dart run engine.dart lint --all
  5. Can run all unit/(integration?) tests
    • Building is hard enough, understanding how to run all tests few humans know how to do
  6. Used by CI in pre submit
    • Ensures build/lint/test continues to work because if they fail presubmit fails
    • Gives contributors with domain expertise the ability to enforce or exempt code as it makes sense for their area of expertise
  7. The tool itself has unit tests
    • This lets tool contributors and reviewers be more confident in changes
    • The tool unit tests are run as part of presubmit

This is not a new concept for the Dash Team. Flutter tool offers a public implementation of something similar and the packages repo has a contributor focused version of the same principals. This feature request is asking we apply the same idea to engine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: new featureNothing broken; request for a new capabilityc: tech-debtTechnical debt, code quality, testing, etc.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions