-
Notifications
You must be signed in to change notification settings - Fork 29k
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-plugins
format (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.gradle
for 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 generate
command is non-operable - The
flutter_gen
package is output as source instead of as a synthetic package withpackage_config.json
overrides
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
UIAutomator
support 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_dependencies
from release-mode apps #56591