Use dependabot multi-directory configuration for Android package updates (#8048)
Follow up to https://github.com/flutter/packages/pull/8036#issuecomment-2465781953.
[Multi-directory config](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#directories) allows duplicated dependabot configs can be removed in favor of one that specifies multiple directories. Update Android packages so the same gradle dependencies can be updated all at once across packages.
> The directories option in the dependabot.yml file allows you to apply Dependabot updates to multiple directories at the same time.
It's unclear whether this is a good idea.
> I'm a bit skeptical that grouping all the non-example ones together will be easier in practice, since usually some plugins are fine and some need changes, but I know the current system has some issues too.
https://github.com/flutter/packages/pull/8036#pullrequestreview-2424660637
The consensus seems to be we should try it, and revert or adjust if it makes the current system worse.
Part of https://github.com/flutter/flutter/issues/148098
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 32e197c..22d824f 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -17,6 +17,7 @@
- "team: infra"
- "autosubmit"
+ # Android example apps.
- package-ecosystem: "gradle"
directories:
- /packages/animations/example/android/app
@@ -74,10 +75,31 @@
- dependency-name: "*"
update-types: ["version-update:semver-minor", "version-update:semver-patch"]
+ # Android packages (excluding example apps).
- package-ecosystem: "gradle"
- directory: "/packages/camera/camera_android/android"
+ directories:
+ - /packages/camera/camera_android/android
+ - /packages/camera/camera_android_camerax/android
+ - /packages/espresso/android
+ - /packages/file_selector/file_selector_android/android
+ - /packages/flutter_plugin_android_lifecycle/android
+ - /packages/google_maps_flutter/google_maps_flutter_android/android
+ - /packages/google_sign_in/google_sign_in_android/android
+ - /packages/in_app_purchase/in_app_purchase_android/android
+ - /packages/interactive_media_ads/android
+ - /packages/image_picker/image_picker/android
+ - /packages/image_picker/image_picker_android/android
+ - /packages/local_auth/local_auth_android/android
+ - /packages/path_provider/path_provider_android/android
+ - /packages/pigeon/platform_tests/test_plugin/android
+ - /packages/pigeon/platform_tests/alternate_language_test_plugin/android
+ - /packages/quick_actions/quick_actions_android/android
+ - /packages/shared_preferences/shared_preferences_android/android
+ - /packages/url_launcher/url_launcher_android/android
+ - /packages/video_player/video_player_android/android
+ - /packages/webview_flutter/webview_flutter_android/android
commit-message:
- prefix: "[camera]"
+ prefix: "[gradle]"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
@@ -93,342 +115,3 @@
- dependency-name: "org.robolectric:*"
update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - package-ecosystem: "gradle"
- directory: "/packages/camera/camera_android_camerax/android"
- commit-message:
- prefix: "[camera]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/espresso/android"
- commit-message:
- prefix: "[espresso]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/file_selector/file_selector_android/android"
- commit-message:
- prefix: "[file_selector]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/flutter_plugin_android_lifecycle/android"
- commit-message:
- prefix: "[lifecycle]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/google_maps_flutter/google_maps_flutter_android/android"
- commit-message:
- prefix: "[google_maps]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/google_sign_in/google_sign_in_android/android"
- commit-message:
- prefix: "[sign_in]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/in_app_purchase/in_app_purchase_android/android"
- commit-message:
- prefix: "[in_app_pur]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/interactive_media_ads/android"
- commit-message:
- prefix: "[interactive_media_ads]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/image_picker/image_picker_android/android"
- commit-message:
- prefix: "[image_picker]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/local_auth/local_auth_android/android"
- commit-message:
- prefix: "[local_auth]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/path_provider/path_provider_android/android"
- commit-message:
- prefix: "[path_provider]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/pigeon/platform_tests/test_plugin/android"
- commit-message:
- prefix: "[pigeon]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/pigeon/platform_tests/alternate_language_test_plugin/android"
- commit-message:
- prefix: "[pigeon]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/quick_actions/quick_actions_android/android"
- commit-message:
- prefix: "[quick_actions]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/shared_preferences/shared_preferences_android/android"
- commit-message:
- prefix: "[shared_pref]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/url_launcher/url_launcher_android/android"
- commit-message:
- prefix: "[url_launcher]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/video_player/video_player_android/android"
- commit-message:
- prefix: "[video_player]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
-
- - package-ecosystem: "gradle"
- directory: "/packages/webview_flutter/webview_flutter_android/android"
- commit-message:
- prefix: "[webview]"
- schedule:
- interval: "weekly"
- open-pull-requests-limit: 10
- ignore:
- - dependency-name: "com.android.tools.build:gradle"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "junit:junit"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.mockito:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "androidx.test:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- - dependency-name: "org.robolectric:*"
- update-types: ["version-update:semver-minor", "version-update:semver-patch"]