-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Description
In the arc of work around excluding dev_dependencies-based plugins from release-mode apps, we have run into multiple snags:
- Android Flutter apps still support the (legacy)
.flutter-pluginsformat (deprecated since 2019) - We need to be able to deduce what plugins should only be hooked up/built in non-production mode
For (1), we planned to announce a deprecation, give users a flag, and upgrade our own infrastructure:
- Deprecation: https://docs.flutter.dev/release/breaking-changes/flutter-plugins-configuration.
- Flag: Add
--no-emit-legacy-flutter-plugins(which does not write.flutter-plugins) #157532 - Upgrade: Update
settings.gradlefor example apps to remove.flutter-plugins#157660
For (2), we ran into #102983 and #73870; where the historic flutter_gen synthetic package is being now overridden by dart pub deps --json, which is being used to figure out which packages come (strictly) from dev_dependencies.
@jonahwilliams's suggestion is to change the flag (--no-emit-legacy-flutter-plugins) to --implicit-pubspec-resolution (name TBD).
The flag would imply:
- We no longer generate
.flutter-plugins - The
flutter generatecommand is non-operable - The
flutter_genpackage is output as source instead of as a synthetic package withpackage_config.jsonoverrides
Background
In Q4, we're updating package:integration_test support to support more native UI interaction and assertions:
- Add and augment "native app/view" functionality
- Allow taking screenshot on mobile devices and emulators
- Add functionality for interacting with/dismissing permission dialogs
- Ensure there is sufficient extensibility for external customers
There are two major arcs of work being worked on right now:
-
@johnmccutchan is adding Android
UIAutomatorsupport via an integration test plugin:
Add dependency on androidx.test.uiautomator to integration_test #157370. -
@matanlurey is making sure testing-only plugins (i.e.
integration_test_plugin) are not bundled in a release of an app:
Strip plugins created fromdev_dependenciesfrom release-mode apps #56591