Skip to content

Add Flame engine to the registry#489

Open
spydon wants to merge 5 commits into
flutter:mainfrom
spydon:add-flame-tests
Open

Add Flame engine to the registry#489
spydon wants to merge 5 commits into
flutter:mainfrom
spydon:add-flame-tests

Conversation

@spydon

@spydon spydon commented Jul 3, 2026

Copy link
Copy Markdown

Adds the Flame engine to the customer test registry so that its tests run as a presubmit against flutter/flutter framework changes.

How it works

Flame is a monorepo managed as a pub workspace, so the update step (flutter pub get at the repo root) resolves every member package in one go. The test command runs scripts/customer_testing.dart in the Flame repository, which works identically on every platform (no separate .sh/.bat needed):

  • flutter analyze --no-fatal-infos runs over the whole workspace on every platform.
  • The full per-package flutter test suites (27 packages) run on Linux only, because Flame's golden and rendering tests are platform-sensitive. This mirrors how flutter/packages handles its own registry entry.

Notes for reviewers

  • The pinned revision points at the branch commit of test: Add customer_testing script for the flutter/tests registry flame-engine/flame#3941, which adds scripts/customer_testing.dart. Once that PR merges I'll update the SHA here to the resulting main commit before this lands.
  • Flame's full suite (~300 test files) is larger than a few-seconds suite. Analyze is fast on all platforms; the Linux test run is where the bulk of the time goes. Happy to trim the package set if the total runtime is a concern.
  • An earlier attempt to register Flame lived on the old master branch and predates pub workspaces (it relied on melos bootstrap); this replaces that approach.

Locally verified that root flutter pub get resolves the workspace, the analyze pass is clean over the whole tree, and per-package flutter test works.

Runs Flame's tests (https://github.com/flame-engine/flame) as a presubmit
against flutter/flutter. Flame is a pub workspace; scripts/customer_testing.dart
runs flutter analyze over the whole workspace on every platform and the
per-package test suites on Linux only (goldens are platform-sensitive).
@spydon spydon force-pushed the add-flame-tests branch from f4427ce to 4bcacf5 Compare July 3, 2026 10:27
spydon added a commit to flame-engine/flame that referenced this pull request Jul 3, 2026
## Description

Adds `scripts/customer_testing.dart` so that Flame can be registered in
the [flutter/tests
registry](https://github.com/flutter/tests/tree/main/registry).

The registry runs downstream packages' tests as a presubmit against
`flutter/flutter` framework changes, so that breaking changes to the
framework that would affect Flame are caught early (and Flame's code can
be auto-migrated via `dart fix`).

A companion PR is open against `flutter/tests`: flutter/tests#489. It
adds a `registry/flame.test` entry pinned to the commit of this PR that
invokes the script via `dart run scripts/customer_testing.dart`.

## Why a single Dart script

The registry guarantees `dart` on the path, and a single Dart file is
inherently cross-platform, so there's no need for the separate
`.sh`/`.bat` pair the registry template otherwise expects. It also
matches the existing `scripts/test_formatter.dart`.

## Behavior

- Flame is a pub workspace, so the registry's `update` step (`flutter
pub get` at the repo root) resolves every member package.
- `flutter analyze --no-fatal-infos` runs over the whole workspace on
**every platform**.
- The full per-package `flutter test` suites run on **Linux only**,
since golden and rendering tests are platform-sensitive. This mirrors
how `flutter/packages` handles its own registry entry.

Locally verified: root `flutter pub get` resolves the workspace, the
script's analyze pass is clean over the whole tree, and per-package
`flutter test` works.
Comment thread registry/flame.test Outdated
spydon added a commit to supabase/supabase-flutter that referenced this pull request Jul 6, 2026
## What

Adds `scripts/customer_testing.dart`, the entry point invoked by the
[flutter/tests](https://github.com/flutter/tests) registry to run this
repository's tests as a presubmit against `flutter/flutter` framework
changes.

This is the supabase-flutter counterpart of what Flame did in
[flutter/tests#489](flutter/tests#489). A
companion PR to `flutter/tests` adds the
`registry/supabase_flutter.test` entry that clones this repo at a pinned
commit and runs this script.

## What the script does

1. `flutter analyze --no-fatal-infos` over the whole pub workspace
(covers every member package).
2. `flutter test` in `packages/supabase_flutter`.

Only `supabase_flutter` is exercised because it is hermetic (mock/stub
based). The other packages' tests require a live Supabase backend and
are therefore not eligible for the registry, which requires hermetic
tests (no network, no spawned services).

## Why

So that Flutter framework regressions affecting `supabase_flutter` are
caught upstream, before they reach a stable Flutter release.

## Notes

- The registry only honors changes here once the pinned commit in the
flutter/tests entry is updated (revision bumps are periodic PRs to
flutter/tests).
- Verified locally: `dart run scripts/customer_testing.dart` passes
(analyze clean, 57 tests pass).


Part of SDK-1216
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant