From 1ca9fc161b4e11f3001ec522e9e6ce0234f77d73 Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:40:48 +1000 Subject: [PATCH 1/8] fixed deprecation warning --- .../test/method_channel_flutter_appauth_test.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/flutter_appauth_platform_interface/test/method_channel_flutter_appauth_test.dart b/flutter_appauth_platform_interface/test/method_channel_flutter_appauth_test.dart index 1981db55..748fecb2 100644 --- a/flutter_appauth_platform_interface/test/method_channel_flutter_appauth_test.dart +++ b/flutter_appauth_platform_interface/test/method_channel_flutter_appauth_test.dart @@ -8,8 +8,10 @@ void main() { const MethodChannel channel = MethodChannel('crossingthestreams.io/flutter_appauth'); final List log = []; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); + return null; }); tearDown(() { From 920042166db9403b37798bdfb01a9cb6fa94934f Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:41:01 +1000 Subject: [PATCH 2/8] bumped Flutter and SDK constraints --- flutter_appauth/CHANGELOG.md | 5 +++++ flutter_appauth/pubspec.yaml | 6 +++--- flutter_appauth_platform_interface/CHANGELOG.md | 5 +++++ flutter_appauth_platform_interface/pubspec.yaml | 6 +++--- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/flutter_appauth/CHANGELOG.md b/flutter_appauth/CHANGELOG.md index 5f87a255..2ed3e54d 100644 --- a/flutter_appauth/CHANGELOG.md +++ b/flutter_appauth/CHANGELOG.md @@ -1,3 +1,8 @@ +# 7.0.0-dev.1 + +* **Breaking change** Bumped minimum Flutter and Dart SDK constraints to 3.13.0 and 3.1.0 respectively +* Updated error handling to expose more details for each platform. Plugin will now throw `FlutterAppAuthUserCancelledException` when an authorization request has been cancelled as a result of the user closing the browser. For other scenarios the plugin will throw `FlutterAppAuthPlatformException`. See the API docs for both classes for more details on the available details. Both exception classes inherit from `PlatformException` so the changes should be backwards compatible. + # 6.0.6 * [iOS][macOS] bumped AppAuth iOS dependency to 1.7.4 diff --git a/flutter_appauth/pubspec.yaml b/flutter_appauth/pubspec.yaml index 55ee6ddd..d14677be 100644 --- a/flutter_appauth/pubspec.yaml +++ b/flutter_appauth/pubspec.yaml @@ -1,11 +1,11 @@ name: flutter_appauth description: This plugin provides an abstraction around the Android and iOS AppAuth SDKs so it can be used to communicate with OAuth 2.0 and OpenID Connect providers -version: 6.0.6 +version: 7.0.0-dev.1 homepage: https://github.com/MaikuB/flutter_appauth/tree/master/flutter_appauth environment: - sdk: ">=2.17.0 <4.0.0" - flutter: ">=3.0.0" + sdk: ^3.1.0 + flutter: ">=3.13.0" dependencies: flutter: diff --git a/flutter_appauth_platform_interface/CHANGELOG.md b/flutter_appauth_platform_interface/CHANGELOG.md index 2042ca6c..8b51c52c 100644 --- a/flutter_appauth_platform_interface/CHANGELOG.md +++ b/flutter_appauth_platform_interface/CHANGELOG.md @@ -1,3 +1,8 @@ +## [7.0.0-dev.1] + +* **Breaking change** Bumped minimum Flutter and Dart SDK constraints to 3.13.0 and 3.1.0 respectively +* Updated error handling to expose more details for each platform. Plugin will now throw `FlutterAppAuthUserCancelledException` when an authorization request has been cancelled as a result of the user closing the browser. For other scenarios the plugin will throw `FlutterAppAuthPlatformException`. See the API docs for both classes for more details on the available details. Both exception classes inherit from `PlatformException` so the changes should be backwards compatible. + ## [6.0.0] * **Breaking change** Aligned minimum Flutter and Dart SDK constraints to 3.0.0 and 2.17 respectively diff --git a/flutter_appauth_platform_interface/pubspec.yaml b/flutter_appauth_platform_interface/pubspec.yaml index c58f4733..6e5e3609 100644 --- a/flutter_appauth_platform_interface/pubspec.yaml +++ b/flutter_appauth_platform_interface/pubspec.yaml @@ -1,11 +1,11 @@ name: flutter_appauth_platform_interface description: A common platform interface for the flutter_appauth plugin. -version: 6.0.0 +version: 7.0.0-dev.1 homepage: https://github.com/MaikuB/flutter_appauth/tree/master/flutter_appauth_platform_interface environment: - sdk: ">=2.17.0 <4.0.0" - flutter: ">=3.0.0" + sdk: ^3.1.0 + flutter: ">=3.13.0" dependencies: flutter: From b871d7508c5277bc5fb424990be3eccebb517035 Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:50:31 +1000 Subject: [PATCH 3/8] switched to use GitHub actions --- .cirrus.yml | 70 --------- .github/workflows/scripts/install-tools.sh | 2 + .github/workflows/validate.yml | 168 +++++++++++++++++++++ 3 files changed, 170 insertions(+), 70 deletions(-) delete mode 100644 .cirrus.yml create mode 100755 .github/workflows/scripts/install-tools.sh create mode 100644 .github/workflows/validate.yml diff --git a/.cirrus.yml b/.cirrus.yml deleted file mode 100644 index 84920ecb..00000000 --- a/.cirrus.yml +++ /dev/null @@ -1,70 +0,0 @@ -task: - name: Run all unit tests - container: - image: cirrusci/flutter:stable - install_melos_script: - - dart pub global activate melos 2.9.0 - test_script: - - export PATH="$PATH":"$HOME/.pub-cache/bin" - - melos bootstrap - - melos run test:unit --no-select - -task: - name: Build Android example app (stable channel) - container: - image: cirrusci/flutter:stable - pub_cache: - folder: ~/.pub-cache - install_melos_script: - - dart pub global activate melos 2.9.0 - build_script: - - export PATH="$PATH":"$HOME/.pub-cache/bin" - - melos bootstrap - - melos run build:example_android - -task: - name: Build Android example app (3.0.0) - container: - image: cirrusci/flutter:3.0.0 - pub_cache: - folder: ~/.pub-cache - install_melos_script: - - dart pub global activate melos 2.9.0 - build_script: - - export PATH="$PATH":"$HOME/.pub-cache/bin" - - melos bootstrap - - melos run build:example_android - -task: - name: Build iOS example app (stable channel) - macos_instance: - image: ghcr.io/cirruslabs/macos-ventura-xcode:14.2 - pub_cache: - folder: ~/.pub-cache - upgrade_script: - - flutter channel stable - - flutter upgrade - install_melos_script: - - dart pub global activate melos 2.9.0 - build_script: - - export PATH="$PATH":"$HOME/.pub-cache/bin" - - melos bootstrap - - melos run build:example_ios - -task: - name: Build macOS example app (stable channel) - macos_instance: - image: ghcr.io/cirruslabs/macos-ventura-xcode:14.2 - pub_cache: - folder: ~/.pub-cache - upgrade_script: - - flutter channel stable - - flutter upgrade - setup_script: - - flutter config --enable-macos-desktop - install_melos_script: - - dart pub global activate melos 2.9.0 - build_script: - - export PATH="$PATH":"$HOME/.pub-cache/bin" - - melos bootstrap - - melos run build:example_macos diff --git a/.github/workflows/scripts/install-tools.sh b/.github/workflows/scripts/install-tools.sh new file mode 100755 index 00000000..5c08b772 --- /dev/null +++ b/.github/workflows/scripts/install-tools.sh @@ -0,0 +1,2 @@ +dart pub global activate melos +melos bootstrap \ No newline at end of file diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 00000000..e4c74bfa --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,168 @@ +name: validate + +on: + pull_request: + paths-ignore: + - '**.md' + push: + branches: + - master + paths-ignore: + - '**.md' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + java_format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: axel-op/googlejavaformat-action@v3 + with: + args: '--skip-sorting-imports --replace' + + objc_format: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Test + run: | + which clang-format || brew install clang-format + find . -name '*.m' -exec clang-format -i {} \; + find . -path '*/ios/**/*.h' -exec clang-format -i {} \; + find . -path '*/macos/**/*.h' -exec clang-format -i {} \; + git diff --exit-code || (git commit --all -m "Clang Format" && git push) + + swift_format: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Test + run: | + which swiftlint || brew install swiftlint + swiftlint --fix + git diff --exit-code || (git commit --all -m "Swift Format" && git push) + + analyze: + name: Run Dart Analyzer + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Analyze + uses: invertase/github-action-dart-analyzer@v1 + with: + fatal-infos: true + fatal-warnings: true + build_example_android_stable: + name: Build Android example app (stable channel) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Build + run: melos run build:example_android + build_example_android_3_13: + name: Build Android example app (3.13) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + flutter-version: 3.13.0 + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Build + run: melos run build:example_android + build_example_ios_stable: + name: Build iOS example app (stable channel) + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Build + run: melos run build:example_ios + build_example_ios_3_13: + name: Build iOS example app (3.13) + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + flutter-version: 3.13.0 + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Build + run: melos run build:example_ios + build_example_macos_stable: + name: Build macOS example app (stable channel) + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Build + run: melos run build:example_macos + build_example_macos_3_13: + name: Build macOS example app (3.13) + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + flutter-version: 3.13.0 + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Build + run: melos run build:example_macos + unit_tests_dart: + name: Run all unit tests (Dart) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + - name: Install Tools + run: ./.github/workflows/scripts/install-tools.sh + - name: Run Tests + run: melos run test:unit --no-select + + + From a9c02676a13d6ba70ee64acc7ee81aac49ebf15e Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:51:59 +1000 Subject: [PATCH 4/8] removed native code formatting jobs --- .github/workflows/validate.yml | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index e4c74bfa..3bc70236 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -15,36 +15,6 @@ concurrency: cancel-in-progress: true jobs: - java_format: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: axel-op/googlejavaformat-action@v3 - with: - args: '--skip-sorting-imports --replace' - - objc_format: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - name: Test - run: | - which clang-format || brew install clang-format - find . -name '*.m' -exec clang-format -i {} \; - find . -path '*/ios/**/*.h' -exec clang-format -i {} \; - find . -path '*/macos/**/*.h' -exec clang-format -i {} \; - git diff --exit-code || (git commit --all -m "Clang Format" && git push) - - swift_format: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - name: Test - run: | - which swiftlint || brew install swiftlint - swiftlint --fix - git diff --exit-code || (git commit --all -m "Swift Format" && git push) - analyze: name: Run Dart Analyzer runs-on: ubuntu-latest From 17397a670de0af4756845d0de16d9ecece3b5283 Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:53:09 +1000 Subject: [PATCH 5/8] added pubspec.yaml for melos --- pubspec.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 pubspec.yaml diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 00000000..58241fa1 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,6 @@ +name: flutter_appauth_workspace + +environment: + sdk: '>=3.0.0 <4.0.0' +dev_dependencies: + melos: ^6.1.0 From 71315e5d8059fbf1207455d0f1402375a4193bcf Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:55:44 +1000 Subject: [PATCH 6/8] removed lint rules that no longer exist --- analysis_options.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index 847ad100..74a6bb6e 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -31,7 +31,6 @@ analyzer: # Ignore analyzer hints for updating pubspecs when using Future or # Stream and not importing dart:async # Please see https://github.com/flutter/flutter/pull/24528 for details. - sdk_version_async_exported_from_core: ignore exclude: - "bin/cache/**" # the following two are relative to the stocks example and the flutter package respectively @@ -47,7 +46,6 @@ linter: - always_declare_return_types - always_put_control_body_on_new_line # - always_put_required_named_parameters_first # we prefer having parameters in the same order as fields https://github.com/flutter/flutter/issues/10219 - - always_require_non_null_named_parameters - always_specify_types - annotate_overrides # - avoid_annotating_with_dynamic # conflicts with always_specify_types @@ -99,12 +97,10 @@ linter: - hash_and_equals - implementation_imports # - invariant_booleans # too many false positives: https://github.com/dart-lang/linter/issues/811 - - iterable_contains_unrelated_type # - join_return_with_assignment # not yet tested - library_names - library_prefixes - lines_longer_than_80_chars - - list_remove_unrelated_type # - literal_only_boolean_expressions # too many false positives: https://github.com/dart-lang/sdk/issues/34181 - no_adjacent_strings_in_list - no_duplicate_case_values @@ -130,7 +126,6 @@ linter: # - prefer_constructors_over_static_methods # not yet tested - prefer_contains # - prefer_double_quotes # opposite of prefer_single_quotes - - prefer_equal_for_default_values # - prefer_expression_function_bodies # conflicts with https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#consider-using--for-short-functions-and-methods - prefer_final_fields # - prefer_final_in_for_each # not yet tested From 728ea885d38a3d9697fbb87039b877292e831ff2 Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:56:40 +1000 Subject: [PATCH 7/8] updated reference to platform interface --- flutter_appauth/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flutter_appauth/pubspec.yaml b/flutter_appauth/pubspec.yaml index d14677be..5819b70c 100644 --- a/flutter_appauth/pubspec.yaml +++ b/flutter_appauth/pubspec.yaml @@ -10,7 +10,7 @@ environment: dependencies: flutter: sdk: flutter - flutter_appauth_platform_interface: ^6.0.0 + flutter_appauth_platform_interface: ^7.0.0-dev.1 flutter: plugin: From 42a3db8fa78dbff6ce202e126ad105e97f93f716 Mon Sep 17 00:00:00 2001 From: Michael Bui <25263378+MaikuB@users.noreply.github.com> Date: Sun, 4 Aug 2024 20:59:24 +1000 Subject: [PATCH 8/8] updated filters for melos --- melos.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/melos.yaml b/melos.yaml index 19ea76e4..86ea2e47 100644 --- a/melos.yaml +++ b/melos.yaml @@ -6,9 +6,9 @@ command: usePubspecOverrides: true packages: - - flutter_appauth/* - - flutter_appauth_platform_interface/* - - "**/example/*" + - flutter_appauth + - flutter_appauth_platform_interface + - flutter_appauth/example/ ide: intellij: false @@ -20,16 +20,16 @@ scripts: test:unit: description: Run unit tests in a specific package. run: melos exec --concurrency=1 -- "flutter test" - select-package: - dir-exists: + packageFilters: + dirExists: - test build:example_android: run: | melos exec -c 1 -- \ "flutter build apk" description: Build a specific example app for Android. - select-package: - dir-exists: + packageFilters: + dirExists: - android scope: "*example*" build:example_ios: @@ -37,8 +37,8 @@ scripts: melos exec -c 1 -- \ "flutter build ios --no-codesign" description: Build a specific example app for iOS. - select-package: - dir-exists: + packageFilters: + dirExists: - ios scope: "*example*" build:example_macos: @@ -46,8 +46,8 @@ scripts: melos exec -c 1 -- \ "flutter build macos" description: Build a specific example app for macOS. - select-package: - dir-exists: + packageFilters: + dirExists: - macos scope: "*example*" clean: