diff --git a/melos.yaml b/melos.yaml index 222dac10463f..75c6507d9c80 100644 --- a/melos.yaml +++ b/melos.yaml @@ -4,6 +4,10 @@ packages: - packages/** scripts: + lint:all: + run: melos run analyze && melos run format + description: Run all static analysis checks + analyze: run: | melos exec -c 5 --fail-fast -- \ @@ -19,29 +23,64 @@ scripts: - Requires `flutter_plugin_tools` (`pub global activate flutter_plugin_tools`). - Requires `clang-format` (can be installed via Brew on macOS). + build:all: + run: | + melos run build:example_ios_pub --no-select && melos run build:example_android_pub --no-select && melos bootstrap + description: Build all example apps (currently ios and android, macos requires flutter channel master) + build:example_android: run: | - melos exec -c 1 --fail-fast -- \ + melos exec -c 6 --fail-fast -- \ "flutter build apk --no-pub" description: Build a specific example app for Android. select-package: dir-exists: - android - scope: '*example*' + scope: "*example*" + ignore: "*firebase_ml_custom*" + + # melos bootstrap does not generate all files generated by a build that runs + # `pub get`, and `flutter drive` does not either, so it is still necessary to + # build sometimes without the `--no-pub` switch. Careful: `melos bootstrap` after. + build:example_android_pub: + run: | + melos exec -c 6 --fail-fast -- \ + "flutter build apk" + description: Build a specific example app for Android. + select-package: + dir-exists: + - android + scope: "*example*" + ignore: "*firebase_ml_custom*" build:example_ios: run: | - melos exec -c 1 --fail-fast -- \ + melos exec -c 6 --fail-fast -- \ "flutter build ios --no-codesign --no-pub" description: Build a specific example app for iOS. select-package: dir-exists: - ios - scope: '*example*' + scope: "*example*" + ignore: "*firebase_ml_custom*" + + # melos bootstrap does not generate all files generated by a build that runs + # `pub get`, and `flutter drive` does not either, so it is still necessary to + # build sometimes without the `--no-pub` switch. Careful: `melos bootstrap` after. + build:example_ios_pub: + run: | + melos exec -c 6 --fail-fast -- \ + "flutter build ios --no-codesign" + description: Build a specific example app for iOS. + select-package: + dir-exists: + - ios + scope: "*example*" + ignore: "*firebase_ml_custom*" build:example_macos: run: | - melos exec -c 1 --fail-fast -- \ + melos exec -c 6 --fail-fast -- \ "flutter build macos --no-pub" description: | Build a specific example app for macOS. @@ -50,19 +89,23 @@ scripts: select-package: dir-exists: - macos - scope: '*example*' + scope: "*example*" + + test:all: + run: melos run test --no-select && melos run test:mobile_e2e --no-select + description: Run all tests available on stable channel test: run: | - melos exec -c 1 --fail-fast -- \ + melos exec -c 6 --fail-fast -- \ "flutter test --no-pub" description: Run `flutter test` for a specific package. select-package: dir-exists: - test ignore: - - '*web*' - - '*example*' + - "*web*" + - "*example*" test:web: run: | @@ -72,19 +115,23 @@ scripts: select-package: dir-exists: - test - scope: '*web*' + scope: "*web*" test:mobile_e2e: run: | melos exec -c 1 --fail-fast -- \ - "flutter drive --no-pub --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart" + "flutter drive --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart" description: | Run all Android or iOS test driver e2e tests in a specific example app. - Requires an Android emulator or iOS simulator. select-package: dir-exists: - test_driver - scope: '*example*' + scope: "*example*" + ignore: + - "*firebase_ml_custom*" + - "*firebase_ml_vision*" + - "*firebase_admob*" test:web_e2e: run: | @@ -99,7 +146,7 @@ scripts: dir-exists: - web - test_driver - scope: '*example*' + scope: "*example*" test:macos_e2e: run: | @@ -113,11 +160,19 @@ scripts: dir-exists: - macos - test_driver - scope: '*example*' + scope: "*example*" + + # Clean things very deeply, can be used to establish "pristine checkout" status + clean:deep: > + git clean -x -d -f -q # Additional cleanup lifecycle script, executed when `melos clean` is ran. postclean: > - melos exec -c 5 -- "flutter clean" + melos exec -c 6 -- "flutter clean" + + # Run all targets generally exected in CI for a full local quality check + qualitycheck: > + melos run clean:deep && melos clean && melos bootstrap && melos run lint:all && melos run build:all && melos run test:all dev_dependencies: pedantic: 1.8.0 diff --git a/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml b/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml index 3d0857988739..c1d96d5d7312 100644 --- a/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml +++ b/packages/firebase_messaging/firebase_messaging_platform_interface/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: plugin_platform_interface: ^1.0.0 dev_dependencies: - firebase_core_platform_interface: ">=2.0.0 <2.1.0" + firebase_core_platform_interface: ^2.0.0 pedantic: ^1.8.0 flutter_test: sdk: flutter diff --git a/packages/firebase_ml_vision/android/build.gradle b/packages/firebase_ml_vision/android/build.gradle index 3d4064a9384a..05eecc2543da 100644 --- a/packages/firebase_ml_vision/android/build.gradle +++ b/packages/firebase_ml_vision/android/build.gradle @@ -32,8 +32,18 @@ android { disable 'InvalidPackage' } dependencies { - api 'com.google.firebase:firebase-ml-vision:20.0.0' - implementation 'com.google.firebase:firebase-common:16.1.0' + implementation platform("com.google.firebase:firebase-bom:25.13.0") + implementation 'com.google.firebase:firebase-common' + api "com.google.firebase:firebase-ml-vision" + + implementation 'com.google.android.gms:play-services-vision:20.1.1' + implementation 'com.google.android.gms:play-services-vision-common:19.1.1' + implementation 'com.google.android.gms:play-services-vision-face-contour-internal:16.0.3' + implementation 'com.google.android.gms:play-services-vision-image-labeling-internal:16.0.5' + implementation 'com.google.android.gms:play-services-vision-image-label:18.0.5' + implementation 'com.google.firebase:firebase-ml-vision-face-model:20.0.2' + implementation 'com.google.firebase:firebase-ml-model-interpreter:22.0.4' + implementation 'androidx.annotation:annotation:1.0.0' implementation 'androidx.exifinterface:exifinterface:1.0.0' } diff --git a/packages/firebase_ml_vision/example/android/app/build.gradle b/packages/firebase_ml_vision/example/android/app/build.gradle index f0816d5b369e..973a5aff6a17 100644 --- a/packages/firebase_ml_vision/example/android/app/build.gradle +++ b/packages/firebase_ml_vision/example/android/app/build.gradle @@ -47,8 +47,17 @@ android { } dependencies { - api 'com.google.firebase:firebase-ml-vision-image-label-model:17.0.2' - api 'com.google.firebase:firebase-ml-vision-face-model:17.0.2' + + implementation platform("com.google.firebase:firebase-bom:25.13.0") + implementation "com.google.firebase:firebase-ml-vision" + + implementation 'com.google.android.gms:play-services-vision:20.1.1' + implementation 'com.google.android.gms:play-services-vision-common:19.1.1' + implementation 'com.google.android.gms:play-services-vision-face-contour-internal:16.0.3' + implementation 'com.google.android.gms:play-services-vision-image-labeling-internal:16.0.5' + implementation 'com.google.android.gms:play-services-vision-image-label:18.0.5' + implementation 'com.google.firebase:firebase-ml-vision-face-model:20.0.2' + implementation 'com.google.firebase:firebase-ml-model-interpreter:22.0.4' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:rules:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'