diff --git a/.github/workflows/code_health.yml b/.github/workflows/code_health.yml index 82033bdc0..3eac7a1d0 100644 --- a/.github/workflows/code_health.yml +++ b/.github/workflows/code_health.yml @@ -27,7 +27,7 @@ jobs: cache: true - uses: bluefireteam/melos-action@v3 with: - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: "Run Analyze" run: melos run analyze @@ -41,7 +41,7 @@ jobs: cache: true - uses: bluefireteam/melos-action@v3 with: - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: "Pub Check" run: | melos exec -c 1 --no-private --ignore="*example*" -- \ @@ -57,7 +57,7 @@ jobs: cache: true - uses: bluefireteam/melos-action@v3 with: - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: "flutter pub get" run: | melos exec -c 1 --scope="*example*" -- \ @@ -74,7 +74,7 @@ jobs: cache: true - uses: bluefireteam/melos-action@v3 with: - melos-version: "3.0.1" + melos-version: "^7.5.0" - uses: Homebrew/actions/setup-homebrew@master - name: "Install Tools" run: | @@ -105,12 +105,14 @@ jobs: with: go-version: "^1.13.1" - run: go install github.com/google/addlicense@latest - - name: Install Dart - uses: dart-lang/setup-dart@v1 + - uses: subosito/flutter-action@v2 + with: + channel: "stable" + cache: true - name: Install Melos uses: bluefireteam/melos-action@v3 with: run-bootstrap: false - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: Check license header run: melos run check-license-header diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a28a7ab2a..9d7a6bc66 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -67,7 +67,7 @@ jobs: - uses: bluefireteam/melos-action@720a109b686f61979b4f9f0d14f582ab1637647e with: run-bootstrap: false - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: "Bootstrap package" run: melos bootstrap --scope tests # needed because twitter_login plugin doesn't have a namespace defined and he hasn't released a new version yet: https://github.com/0maru/twitter_login/issues/139 @@ -146,7 +146,7 @@ jobs: - uses: bluefireteam/melos-action@720a109b686f61979b4f9f0d14f582ab1637647e with: run-bootstrap: false - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: "Bootstrap package" run: melos bootstrap --scope tests - name: Clean up previous build artifacts @@ -225,7 +225,7 @@ jobs: - uses: bluefireteam/melos-action@720a109b686f61979b4f9f0d14f582ab1637647e with: run-bootstrap: false - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: "Bootstrap package" run: melos bootstrap --scope tests - name: "Build Application" @@ -260,7 +260,7 @@ jobs: cache: true - uses: bluefireteam/melos-action@720a109b686f61979b4f9f0d14f582ab1637647e with: - melos-version: "3.0.1" + melos-version: "^6.3.3" - name: 'Build Test Applications' run: | cd packages/firebase_ui_auth/example diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index d7dba0842..39013acb4 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -51,7 +51,7 @@ jobs: cache: true - uses: bluefireteam/melos-action@v3 with: - melos-version: "3.0.1" + melos-version: "^7.5.0" - name: Run unit tests on Chrome if: matrix.target == 'html' diff --git a/melos.yaml b/melos.yaml deleted file mode 100644 index 3f11f361c..000000000 --- a/melos.yaml +++ /dev/null @@ -1,163 +0,0 @@ -name: FirebaseUI -repository: https://github.com/firebase/FirebaseUI-Flutter - -packages: - - packages/* - - packages/*/example - - tests - -command: - version: - linkToCommits: true - workspaceChangelog: true - changelogCommitBodies: - include: true - - bootstrap: - runPubGetInParallel: false - usePubspecOverrides: true - -scripts: - lint: - run: melos run analyze && melos run format - description: Run all static analysis checks. - - analyze: - run: | - melos exec -- dart analyze . --fatal-infos - description: | - Run `dart analyze` in all packages. - - format: - run: | - dart pub global run flutter_plugin_tools format && swiftformat . - description: | - Formats the code of all packages (Java, Objective-C, and Dart). - - Requires `flutter_plugin_tools` (`pub global activate flutter_plugin_tools`). - - Requires `git`. - - Requires `clang-format` (can be installed via Brew on MacOS). - - Requires `swiftformat` (can be installed via Brew on macOS). - - test: - run: | - melos run test:unit:all - description: | - Run all tests available. - - test:unit:all: - run: | - melos run test:unit --no-select && \ - melos run test:unit:web --no-select - description: Run unit tests for all packages. - packageFilters: - dirExists: - - test - - test:unit: - run: | - melos exec -c 6 --fail-fast -- "flutter test" - description: Run `flutter test` for a specific package. - packageFilters: - dirExists: - - test - - test:unit:web: - run: | - melos exec -c 1 --fail-fast -- "flutter test --platform=chrome" - description: Run `flutter test --platform=chrome`. - packageFilters: - dirExists: - - test - - test:build:web: - run: | - melos exec -c 1 --fail-fast -- \ - "cd example && flutter build web" - description: | - Build all example apps for web platform - packageFilters: - dirExists: - - example - - test:e2e: - working-directory: tests - run: cd tests && flutter test integration_test/firebase_ui_test.dart -r github -d - - # Additional cleanup lifecycle script, executed when `melos clean` is run. - postclean: > - melos exec -c 6 -- "flutter clean" - - add-license-header: - # If you add here another --ignore flag, add it also to - # "check-license-header". - run: | - addlicense -f header_template.txt \ - --ignore "**/*.yml" \ - --ignore "**/*.yaml" \ - --ignore "**/*.xml" \ - --ignore "**/*.g.dart" \ - --ignore "**/*.sh" \ - --ignore "**/*.html" \ - --ignore "**/*.js" \ - --ignore "**/*.ts" \ - --ignore "**/*.g.h" \ - --ignore "**/*.g.m" \ - --ignore "**/*.rb" \ - --ignore "**/*.txt" \ - --ignore "**/*.cmake" \ - --ignore "**/Runner/AppDelegate.swift" \ - --ignore "**/Runner/MainFlutterWindow.swift" \ - --ignore "**/Runner/Runner-Bridging-Header.h" \ - --ignore "**/Runner/AppDelegate.h" \ - --ignore "**/Runner/AppDelegate.m" \ - --ignore "**/Runner/main.m" \ - --ignore "**/MainActivity.kt" \ - --ignore "**/MainActivity.java" \ - --ignore "**/FlutterMultiDexApplication.java" \ - --ignore "**/GeneratedPluginRegistrant.swift" \ - --ignore "**/Pods/**" \ - --ignore "**/flutter/generated_plugin_registrant.h" \ - --ignore "**/flutter/generated_plugin_registrant.cc" \ - . - description: Add a license header to all necessary files. - - check-license-header: - # If you add here another --ignore flag, add it also to - # "add-license-header". - run: | - addlicense -f header_template.txt \ - --check \ - --ignore "**/*.yml" \ - --ignore "**/*.yaml" \ - --ignore "**/*.xml" \ - --ignore "**/*.g.dart" \ - --ignore "**/*.sh" \ - --ignore "**/*.html" \ - --ignore "**/*.js" \ - --ignore "**/*.ts" \ - --ignore "**/*.g.h" \ - --ignore "**/*.g.m" \ - --ignore "**/*.rb" \ - --ignore "**/*.txt" \ - --ignore "**/*.cmake" \ - --ignore "**/Runner/**/*" \ - --ignore "**/MainActivity.kt" \ - --ignore "**/MainActivity.java" \ - --ignore "**/FlutterMultiDexApplication.java" \ - --ignore "**/GeneratedPluginRegistrant.swift" \ - --ignore "**/Pods/**" \ - --ignore "**/flutter/generated_plugin_registrant.*" \ - --ignore "**/example/windows/**/*" \ - --ignore "**/Flutter/**/*" \ - --ignore "**/build/**/*" \ - --ignore "**/.dart_tool/**/*" \ - --ignore "**/flutter/plugins/**/*" \ - --ignore "**/build.gradle" \ - --ignore "**/settings.gradle" \ - . - description: Add a license header to all necessary files. - - emulator:start: - run: firebase emulators:start --only firestore,auth,functions,storage,database --project flutterfire-e2e-tests --import=./emulators-data --export-on-exit=./emulators-data - update-dependencies: - run: dart scripts/update_dependencies.dart \ No newline at end of file diff --git a/packages/firebase_ui_auth/example/pubspec.yaml b/packages/firebase_ui_auth/example/pubspec.yaml index d05b5a3bf..d79075e00 100644 --- a/packages/firebase_ui_auth/example/pubspec.yaml +++ b/packages/firebase_ui_auth/example/pubspec.yaml @@ -18,7 +18,9 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ^3.5.0 + +resolution: workspace dependencies: app_tracking_transparency: ^2.0.6 @@ -86,4 +88,4 @@ flutter: # weight: 700 # # For details regarding fonts from package dependencies, - # see https://flutter.dev/custom-fonts/#from-packages \ No newline at end of file + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/packages/firebase_ui_auth/lib/src/screens/internal/multi_provider_screen.dart b/packages/firebase_ui_auth/lib/src/screens/internal/multi_provider_screen.dart index 0e08ecca0..4784ceabc 100644 --- a/packages/firebase_ui_auth/lib/src/screens/internal/multi_provider_screen.dart +++ b/packages/firebase_ui_auth/lib/src/screens/internal/multi_provider_screen.dart @@ -22,7 +22,7 @@ abstract class MultiProviderScreen extends Widget { List get providers { if (_providers != null) { - return _providers!; + return _providers; } else { return FirebaseUIAuth.providersFor(auth.app); } diff --git a/packages/firebase_ui_auth/lib/src/screens/internal/provider_screen.dart b/packages/firebase_ui_auth/lib/src/screens/internal/provider_screen.dart index 92adc75c1..0dcae452e 100644 --- a/packages/firebase_ui_auth/lib/src/screens/internal/provider_screen.dart +++ b/packages/firebase_ui_auth/lib/src/screens/internal/provider_screen.dart @@ -16,7 +16,7 @@ abstract class ProviderScreen extends StatelessWidget { /// Current [AuthProvider] that is being used to authenticate the user. T get provider { - if (_provider != null) return _provider!; + if (_provider != null) return _provider; if (_cache.containsKey(T)) { return _cache[T]! as T; } diff --git a/packages/firebase_ui_auth/lib/src/widgets/auth_flow_builder.dart b/packages/firebase_ui_auth/lib/src/widgets/auth_flow_builder.dart index e3cb74b12..c8a3b5690 100644 --- a/packages/firebase_ui_auth/lib/src/widgets/auth_flow_builder.dart +++ b/packages/firebase_ui_auth/lib/src/widgets/auth_flow_builder.dart @@ -220,13 +220,12 @@ class _AuthFlowBuilderState } AuthProvider _createDefaultProvider() { - switch (T) { - case EmailAuthController: - return EmailAuthProvider(); - case PhoneAuthController: - return PhoneAuthProvider(); - default: - throw Exception("Can't create $T provider"); + if (T == EmailAuthController) { + return EmailAuthProvider(); + } else if (T == PhoneAuthController) { + return PhoneAuthProvider(); + } else { + throw Exception("Can't create $T provider"); } } diff --git a/packages/firebase_ui_auth/pubspec.yaml b/packages/firebase_ui_auth/pubspec.yaml index e7f05b1fa..7bd0985ec 100644 --- a/packages/firebase_ui_auth/pubspec.yaml +++ b/packages/firebase_ui_auth/pubspec.yaml @@ -4,9 +4,10 @@ version: 3.0.1 repository: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_auth homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_auth +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: app_links: ^6.4.0 diff --git a/packages/firebase_ui_database/example/pubspec.yaml b/packages/firebase_ui_database/example/pubspec.yaml index 5e468d670..fc953a74b 100644 --- a/packages/firebase_ui_database/example/pubspec.yaml +++ b/packages/firebase_ui_database/example/pubspec.yaml @@ -18,7 +18,9 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ">=2.18.0 <4.0.0" + sdk: ^3.5.0 + +resolution: workspace # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/packages/firebase_ui_database/lib/src/query_builder.dart b/packages/firebase_ui_database/lib/src/query_builder.dart index 957a7d00f..9034eb05e 100644 --- a/packages/firebase_ui_database/lib/src/query_builder.dart +++ b/packages/firebase_ui_database/lib/src/query_builder.dart @@ -470,6 +470,7 @@ class FirebaseDatabaseListView extends FirebaseDatabaseQueryBuilder { addAutomaticKeepAlives: addAutomaticKeepAlives, addRepaintBoundaries: addRepaintBoundaries, addSemanticIndexes: addSemanticIndexes, + // ignore: deprecated_member_use cacheExtent: cacheExtent, semanticChildCount: semanticChildCount, dragStartBehavior: dragStartBehavior, diff --git a/packages/firebase_ui_database/pubspec.yaml b/packages/firebase_ui_database/pubspec.yaml index 036c9f929..7828bbef3 100644 --- a/packages/firebase_ui_database/pubspec.yaml +++ b/packages/firebase_ui_database/pubspec.yaml @@ -3,9 +3,10 @@ description: Pre-built widgets and utilites that make it easy to integrate Fireb version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_database +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: collection: ^1.18.0 diff --git a/packages/firebase_ui_firestore/example/pubspec.yaml b/packages/firebase_ui_firestore/example/pubspec.yaml index 32a7adc52..8345443fd 100644 --- a/packages/firebase_ui_firestore/example/pubspec.yaml +++ b/packages/firebase_ui_firestore/example/pubspec.yaml @@ -18,7 +18,9 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ">=2.18.0 <4.0.0" + sdk: ^3.5.0 + +resolution: workspace # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/packages/firebase_ui_firestore/lib/src/query_builder.dart b/packages/firebase_ui_firestore/lib/src/query_builder.dart index f5ba69107..8358c063c 100644 --- a/packages/firebase_ui_firestore/lib/src/query_builder.dart +++ b/packages/firebase_ui_firestore/lib/src/query_builder.dart @@ -535,6 +535,7 @@ class FirestoreListView extends FirestoreQueryBuilder { addAutomaticKeepAlives: addAutomaticKeepAlives, addRepaintBoundaries: addRepaintBoundaries, addSemanticIndexes: addSemanticIndexes, + // ignore: deprecated_member_use cacheExtent: cacheExtent, semanticChildCount: semanticChildCount, dragStartBehavior: dragStartBehavior, @@ -642,10 +643,12 @@ class FirestoreListView extends FirestoreQueryBuilder { physics: physics, shrinkWrap: shrinkWrap, padding: padding, + // ignore: deprecated_member_use findChildIndexCallback: findChildIndexCallback, addAutomaticKeepAlives: addAutomaticKeepAlives, addRepaintBoundaries: addRepaintBoundaries, addSemanticIndexes: addSemanticIndexes, + // ignore: deprecated_member_use cacheExtent: cacheExtent, dragStartBehavior: dragStartBehavior, keyboardDismissBehavior: keyboardDismissBehavior, diff --git a/packages/firebase_ui_firestore/pubspec.yaml b/packages/firebase_ui_firestore/pubspec.yaml index 03399543d..9399aa399 100644 --- a/packages/firebase_ui_firestore/pubspec.yaml +++ b/packages/firebase_ui_firestore/pubspec.yaml @@ -3,9 +3,10 @@ description: Pre-built widgets and utilites that make it easy to integrate Fireb version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_firestore +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: cloud_firestore: ^6.1.1 diff --git a/packages/firebase_ui_localizations/example/pubspec.yaml b/packages/firebase_ui_localizations/example/pubspec.yaml index 520c33568..1519a630e 100644 --- a/packages/firebase_ui_localizations/example/pubspec.yaml +++ b/packages/firebase_ui_localizations/example/pubspec.yaml @@ -20,7 +20,9 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ">=2.18.0 <4.0.0" + sdk: ^3.5.0 + +resolution: workspace # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/packages/firebase_ui_localizations/example/pubspec_overrides.yaml b/packages/firebase_ui_localizations/example/pubspec_overrides.yaml deleted file mode 100644 index 1e1c6708b..000000000 --- a/packages/firebase_ui_localizations/example/pubspec_overrides.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# melos_managed_dependency_overrides: firebase_ui_auth,firebase_ui_localizations,firebase_ui_oauth,firebase_ui_shared -dependency_overrides: - firebase_ui_auth: - path: ../../firebase_ui_auth - firebase_ui_localizations: - path: .. - firebase_ui_oauth: - path: ../../firebase_ui_oauth - firebase_ui_shared: - path: ../../firebase_ui_shared diff --git a/packages/firebase_ui_localizations/pubspec.yaml b/packages/firebase_ui_localizations/pubspec.yaml index 516e2e094..8d1de2203 100644 --- a/packages/firebase_ui_localizations/pubspec.yaml +++ b/packages/firebase_ui_localizations/pubspec.yaml @@ -3,12 +3,10 @@ description: Localization package for firebase_ui_auth, firebase_ui_firestore an version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_localizations -false_secrets: - - example/** +resolution: workspace environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: flutter: @@ -22,6 +20,9 @@ dev_dependencies: sdk: flutter flutter_lints: ^3.0.1 +false_secrets: + - example/** + # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/firebase_ui_oauth/example/pubspec.yaml b/packages/firebase_ui_oauth/example/pubspec.yaml index a73afcad1..be4e18016 100644 --- a/packages/firebase_ui_oauth/example/pubspec.yaml +++ b/packages/firebase_ui_oauth/example/pubspec.yaml @@ -18,7 +18,9 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: ">=2.18.0 <4.0.0" + sdk: ^3.5.0 + +resolution: workspace # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions diff --git a/packages/firebase_ui_oauth/pubspec.yaml b/packages/firebase_ui_oauth/pubspec.yaml index f8b33d3ae..72dbcf889 100644 --- a/packages/firebase_ui_oauth/pubspec.yaml +++ b/packages/firebase_ui_oauth/pubspec.yaml @@ -3,9 +3,10 @@ description: Firebase UI widgets for authentication & OAuth version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_oauth +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: desktop_webview_auth: ^0.0.16 diff --git a/packages/firebase_ui_oauth_apple/pubspec.yaml b/packages/firebase_ui_oauth_apple/pubspec.yaml index 957054bc3..883000c7d 100644 --- a/packages/firebase_ui_oauth_apple/pubspec.yaml +++ b/packages/firebase_ui_oauth_apple/pubspec.yaml @@ -3,9 +3,10 @@ description: Firebase UI widgets for authentication & OAuth. version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_oauth_apple +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: firebase_auth: ^6.1.3 diff --git a/packages/firebase_ui_oauth_facebook/pubspec.yaml b/packages/firebase_ui_oauth_facebook/pubspec.yaml index 96bd088fb..32d28e487 100644 --- a/packages/firebase_ui_oauth_facebook/pubspec.yaml +++ b/packages/firebase_ui_oauth_facebook/pubspec.yaml @@ -3,9 +3,10 @@ description: Firebase UI widgets for authentication & OAuth. version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_oauth_facebook +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: firebase_auth: ^6.1.3 diff --git a/packages/firebase_ui_oauth_google/pubspec.yaml b/packages/firebase_ui_oauth_google/pubspec.yaml index 1145c091e..ae8638756 100644 --- a/packages/firebase_ui_oauth_google/pubspec.yaml +++ b/packages/firebase_ui_oauth_google/pubspec.yaml @@ -3,9 +3,10 @@ description: Firebase UI widgets for authentication & OAuth. version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_oauth_google +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: firebase_auth: ^6.1.3 diff --git a/packages/firebase_ui_oauth_twitter/pubspec.yaml b/packages/firebase_ui_oauth_twitter/pubspec.yaml index cd951cea8..fcfe28fd6 100644 --- a/packages/firebase_ui_oauth_twitter/pubspec.yaml +++ b/packages/firebase_ui_oauth_twitter/pubspec.yaml @@ -3,9 +3,10 @@ description: Firebase UI widgets for authentication & OAuth. version: 2.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_oauth_twitter +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: flutter: diff --git a/packages/firebase_ui_shared/pubspec.yaml b/packages/firebase_ui_shared/pubspec.yaml index ac84c1853..062a221e0 100644 --- a/packages/firebase_ui_shared/pubspec.yaml +++ b/packages/firebase_ui_shared/pubspec.yaml @@ -3,9 +3,10 @@ description: Abstractions and widgets that are used across Firebase UI packages. version: 1.4.2 homepage: https://github.com/firebase/FirebaseUI-Flutter/packages/firebase_ui_shared +resolution: workspace + environment: - sdk: ">=2.18.0 <4.0.0" - flutter: ">=3.3.0" + sdk: ^3.5.0 dependencies: flutter: diff --git a/packages/firebase_ui_storage/example/pubspec.yaml b/packages/firebase_ui_storage/example/pubspec.yaml index 9fb3344f4..49661026e 100644 --- a/packages/firebase_ui_storage/example/pubspec.yaml +++ b/packages/firebase_ui_storage/example/pubspec.yaml @@ -4,7 +4,9 @@ publish_to: "none" version: 0.1.0 environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ^3.5.0 + +resolution: workspace dependencies: cupertino_icons: ^1.0.6 diff --git a/packages/firebase_ui_storage/lib/src/widgets/list_view.dart b/packages/firebase_ui_storage/lib/src/widgets/list_view.dart index 681744e4e..8bea6aae8 100644 --- a/packages/firebase_ui_storage/lib/src/widgets/list_view.dart +++ b/packages/firebase_ui_storage/lib/src/widgets/list_view.dart @@ -84,6 +84,7 @@ class StorageListView extends StatefulWidget { /// See [SliverChildBuilderDelegate.addSemanticIndexes]. final bool addSemanticIndexes; + // ignore: deprecated_member_use /// See [ScrollView.cacheExtent]. final double? cacheExtent; @@ -204,6 +205,7 @@ class _StorageListViewState extends State { addAutomaticKeepAlives: widget.addAutomaticKeepAlives, addRepaintBoundaries: widget.addRepaintBoundaries, addSemanticIndexes: widget.addSemanticIndexes, + // ignore: deprecated_member_use cacheExtent: widget.cacheExtent, clipBehavior: widget.clipBehavior, controller: widget.controller, diff --git a/packages/firebase_ui_storage/pubspec.yaml b/packages/firebase_ui_storage/pubspec.yaml index 792e2204b..ca6a1661d 100644 --- a/packages/firebase_ui_storage/pubspec.yaml +++ b/packages/firebase_ui_storage/pubspec.yaml @@ -4,9 +4,11 @@ version: 3.0.1 homepage: https://github.com/firebase/FirebaseUI-Flutter/tree/master/packages/firebase_ui_storage/ environment: - sdk: ">=3.0.0 <4.0.0" + sdk: ^3.5.0 flutter: ">=3.10.0" +resolution: workspace + false_secrets: - example/** diff --git a/pubspec.yaml b/pubspec.yaml index 5ba0f2c19..5c47278fd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,182 @@ name: firebase_ui_workspace environment: - sdk: ">=2.18.0 <4.0.0" + sdk: ^3.5.0 + +workspace: + - packages/firebase_ui_auth + - packages/firebase_ui_auth/example + - packages/firebase_ui_database + - packages/firebase_ui_database/example + - packages/firebase_ui_firestore + - packages/firebase_ui_firestore/example + - packages/firebase_ui_localizations + - packages/firebase_ui_localizations/example + - packages/firebase_ui_oauth + - packages/firebase_ui_oauth/example + - packages/firebase_ui_oauth_apple + - packages/firebase_ui_oauth_facebook + - packages/firebase_ui_oauth_google + - packages/firebase_ui_oauth_twitter + - packages/firebase_ui_shared + - packages/firebase_ui_storage + - packages/firebase_ui_storage/example + - tests dev_dependencies: - melos: ^4.0.0 + melos: ^7.5.0 + +melos: + repository: https://github.com/firebase/FirebaseUI-Flutter + + command: + version: + linkToCommits: true + workspaceChangelog: true + changelogCommitBodies: + include: true + + scripts: + lint: + run: melos run analyze && melos run format + description: Run all static analysis checks. + + analyze: + run: | + melos exec -- dart analyze . --fatal-infos + description: | + Run `dart analyze` in all packages. + + format: + run: | + dart pub global run flutter_plugin_tools format && swiftformat . + description: | + Formats the code of all packages (Java, Objective-C, and Dart). + - Requires `flutter_plugin_tools` (`pub global activate flutter_plugin_tools`). + - Requires `git`. + - Requires `clang-format` (can be installed via Brew on MacOS). + - Requires `swiftformat` (can be installed via Brew on macOS). + + test: + run: | + melos run test:unit:all + description: | + Run all tests available. + + test:unit:all: + run: | + melos run test:unit --no-select && \ + melos run test:unit:web --no-select + description: Run unit tests for all packages. + packageFilters: + dirExists: + - test + + test:unit: + run: | + melos exec -c 6 --fail-fast -- "flutter test" + description: Run `flutter test` for a specific package. + packageFilters: + dirExists: + - test + + test:unit:web: + run: | + melos exec -c 1 --fail-fast -- "flutter test --platform=chrome" + description: Run `flutter test --platform=chrome`. + packageFilters: + dirExists: + - test + + test:build:web: + run: | + melos exec -c 1 --fail-fast -- \ + "cd example && flutter build web" + description: | + Build all example apps for web platform + packageFilters: + dirExists: + - example + + test:e2e: + working-directory: tests + run: cd tests && flutter test integration_test/firebase_ui_test.dart -r github -d + + # Additional cleanup lifecycle script, executed when `melos clean` is run. + postclean: > + melos exec -c 6 -- "flutter clean" + + add-license-header: + # If you add here another --ignore flag, add it also to + # "check-license-header". + run: | + addlicense -f header_template.txt \ + --ignore "**/*.yml" \ + --ignore "**/*.yaml" \ + --ignore "**/*.xml" \ + --ignore "**/*.g.dart" \ + --ignore "**/*.sh" \ + --ignore "**/*.html" \ + --ignore "**/*.js" \ + --ignore "**/*.ts" \ + --ignore "**/*.g.h" \ + --ignore "**/*.g.m" \ + --ignore "**/*.rb" \ + --ignore "**/*.txt" \ + --ignore "**/*.cmake" \ + --ignore "**/Runner/AppDelegate.swift" \ + --ignore "**/Runner/MainFlutterWindow.swift" \ + --ignore "**/Runner/Runner-Bridging-Header.h" \ + --ignore "**/Runner/AppDelegate.h" \ + --ignore "**/Runner/AppDelegate.m" \ + --ignore "**/Runner/main.m" \ + --ignore "**/MainActivity.kt" \ + --ignore "**/MainActivity.java" \ + --ignore "**/FlutterMultiDexApplication.java" \ + --ignore "**/GeneratedPluginRegistrant.swift" \ + --ignore "**/Pods/**" \ + --ignore "**/flutter/generated_plugin_registrant.h" \ + --ignore "**/flutter/generated_plugin_registrant.cc" \ + . + description: Add a license header to all necessary files. + + check-license-header: + # If you add here another --ignore flag, add it also to + # "add-license-header". + run: | + addlicense -f header_template.txt \ + --check \ + --ignore "**/*.yml" \ + --ignore "**/*.yaml" \ + --ignore "**/*.xml" \ + --ignore "**/*.g.dart" \ + --ignore "**/*.sh" \ + --ignore "**/*.html" \ + --ignore "**/*.js" \ + --ignore "**/*.ts" \ + --ignore "**/*.g.h" \ + --ignore "**/*.g.m" \ + --ignore "**/*.rb" \ + --ignore "**/*.txt" \ + --ignore "**/*.cmake" \ + --ignore "**/Runner/**/*" \ + --ignore "**/MainActivity.kt" \ + --ignore "**/MainActivity.java" \ + --ignore "**/FlutterMultiDexApplication.java" \ + --ignore "**/GeneratedPluginRegistrant.swift" \ + --ignore "**/Pods/**" \ + --ignore "**/flutter/generated_plugin_registrant.*" \ + --ignore "**/example/windows/**/*" \ + --ignore "**/Flutter/**/*" \ + --ignore "**/build/**/*" \ + --ignore "**/.dart_tool/**/*" \ + --ignore "**/flutter/plugins/**/*" \ + --ignore "**/build.gradle" \ + --ignore "**/settings.gradle" \ + . + description: Add a license header to all necessary files. + + emulator:start: + run: firebase emulators:start --only firestore,auth,functions,storage,database --project flutterfire-e2e-tests --import=./emulators-data --export-on-exit=./emulators-data + update-dependencies: + run: dart scripts/update_dependencies.dart diff --git a/tests/integration_test/firebase_ui_auth/email_form_test.dart b/tests/integration_test/firebase_ui_auth/email_form_test.dart index 90056800e..09a409595 100644 --- a/tests/integration_test/firebase_ui_auth/email_form_test.dart +++ b/tests/integration_test/firebase_ui_auth/email_form_test.dart @@ -39,7 +39,9 @@ void main() { expect(auth.currentUser, isNotNull); }, - skip: isCI && (defaultTargetPlatform == TargetPlatform.macOS || defaultTargetPlatform == TargetPlatform.android), + skip: isCI && + (defaultTargetPlatform == TargetPlatform.macOS || + defaultTargetPlatform == TargetPlatform.android), ); testWidgets( @@ -103,7 +105,9 @@ void main() { await tester.pumpAndSettle(); }, - skip: isCI && (defaultTargetPlatform == TargetPlatform.macOS || defaultTargetPlatform == TargetPlatform.android), + skip: isCI && + (defaultTargetPlatform == TargetPlatform.macOS || + defaultTargetPlatform == TargetPlatform.android), ); testWidgets( diff --git a/tests/integration_test/firebase_ui_auth/phone_verification_test.dart b/tests/integration_test/firebase_ui_auth/phone_verification_test.dart index aef2482c2..d0cdbd0c3 100644 --- a/tests/integration_test/firebase_ui_auth/phone_verification_test.dart +++ b/tests/integration_test/firebase_ui_auth/phone_verification_test.dart @@ -284,7 +284,9 @@ void main() { expect(onPhoneVerifiedCalled, isTrue); }, // passes locally but fails in CI - skip: isCI && (defaultTargetPlatform == TargetPlatform.android || defaultTargetPlatform == TargetPlatform.iOS), + skip: isCI && + (defaultTargetPlatform == TargetPlatform.android || + defaultTargetPlatform == TargetPlatform.iOS), ); }); } diff --git a/tests/integration_test/firebase_ui_database/database_list_view_test.dart b/tests/integration_test/firebase_ui_database/database_list_view_test.dart index 0e4461100..0bd0e12af 100644 --- a/tests/integration_test/firebase_ui_database/database_list_view_test.dart +++ b/tests/integration_test/firebase_ui_database/database_list_view_test.dart @@ -276,7 +276,9 @@ void main() { expect(find.byKey(ValueKey(i.toString())), findsOneWidget); } }, - skip: isCI && (defaultTargetPlatform == TargetPlatform.macOS || defaultTargetPlatform == TargetPlatform.iOS), + skip: isCI && + (defaultTargetPlatform == TargetPlatform.macOS || + defaultTargetPlatform == TargetPlatform.iOS), ); }); } diff --git a/tests/integration_test/firebase_ui_database/firebase_ui_database.dart b/tests/integration_test/firebase_ui_database/firebase_ui_database.dart index f7c0b7129..de6cff67a 100644 --- a/tests/integration_test/firebase_ui_database/firebase_ui_database.dart +++ b/tests/integration_test/firebase_ui_database/firebase_ui_database.dart @@ -10,4 +10,4 @@ Future main() async { group('Real-time Database', () { database_list_view_test.main(); }); -} \ No newline at end of file +} diff --git a/tests/integration_test/firebase_ui_firestore/firestore_query_builder_test.dart b/tests/integration_test/firebase_ui_firestore/firestore_query_builder_test.dart index ca21fda74..f8c397b2d 100644 --- a/tests/integration_test/firebase_ui_firestore/firestore_query_builder_test.dart +++ b/tests/integration_test/firebase_ui_firestore/firestore_query_builder_test.dart @@ -852,7 +852,7 @@ class QueryBuilderSpy extends Mock { QueryBuilderSpy([this._builder]) { if (_builder != null) { when(call(any, any, any)).thenAnswer((realInvocation) { - return _builder!( + return _builder( realInvocation.positionalArguments[0] as BuildContext, realInvocation.positionalArguments[1] as FirestoreQueryBuilderSnapshot, diff --git a/tests/integration_test/firebase_ui_test.dart b/tests/integration_test/firebase_ui_test.dart index 9e2124600..a0a2c4924 100644 --- a/tests/integration_test/firebase_ui_test.dart +++ b/tests/integration_test/firebase_ui_test.dart @@ -17,7 +17,8 @@ import './firebase_ui_oauth_google/firebase_ui_oauth_google_e2e.dart' as firebase_ui_oauth_google_e2e; import './firebase_ui_oauth_twitter/firebase_ui_oauth_twitter_e2e.dart' as firebase_ui_oauth_twitter_e2e; -import './firebase_ui_database/firebase_ui_database.dart' as firebase_ui_database; +import './firebase_ui_database/firebase_ui_database.dart' + as firebase_ui_database; import 'utils.dart'; void main() { diff --git a/tests/integration_test/utils.dart b/tests/integration_test/utils.dart index 0857bcc5d..1336d4e8a 100644 --- a/tests/integration_test/utils.dart +++ b/tests/integration_test/utils.dart @@ -172,8 +172,8 @@ Future> clearCollection( } Future clearReference( - DatabaseReference ref, - ) async { + DatabaseReference ref, +) async { final snapshot = await ref.get(); if (!snapshot.exists) return; await ref.remove(); diff --git a/tests/ios/Podfile b/tests/ios/Podfile index b641e5cda..727a28ef3 100644 --- a/tests/ios/Podfile +++ b/tests/ios/Podfile @@ -29,7 +29,7 @@ flutter_ios_podfile_setup target 'Runner' do use_frameworks! use_modular_headers! - pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '12.6.0' + pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '12.9.0' flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) target 'RunnerTests' do diff --git a/tests/macos/Podfile b/tests/macos/Podfile index 9ba7188bc..d1f9ed664 100644 --- a/tests/macos/Podfile +++ b/tests/macos/Podfile @@ -30,7 +30,7 @@ target 'Runner' do use_frameworks! use_modular_headers! - pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '12.6.0' + pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '12.9.0' flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) target 'RunnerTests' do diff --git a/tests/pubspec.yaml b/tests/pubspec.yaml index d0c0978d4..2ceb83215 100644 --- a/tests/pubspec.yaml +++ b/tests/pubspec.yaml @@ -3,8 +3,10 @@ description: Testing project for firebase_ui publish_to: "none" version: 1.0.0+1 +resolution: workspace + environment: - sdk: ">=3.1.0 <4.0.0" + sdk: ^3.5.0 dependencies: flutter: