diff --git a/.fvmrc b/.fvmrc index 4cfa3d5..c0ef54d 100644 --- a/.fvmrc +++ b/.fvmrc @@ -1,3 +1,3 @@ { - "flutter": "3.29.0" + "flutter": "3.32.0" } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index e40d819..ed80efd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,5 @@ { - "dart.flutterSdkPath": ".fvm/versions/3.29.0", + "dart.flutterSdkPath": ".fvm/versions/3.32.0", "search.exclude": { "**/.fvm": true, "**/*.g.dart": true diff --git a/packages/netglade_analysis/CHANGELOG.md b/packages/netglade_analysis/CHANGELOG.md index 9aaf9a9..b176534 100644 --- a/packages/netglade_analysis/CHANGELOG.md +++ b/packages/netglade_analysis/CHANGELOG.md @@ -1,4 +1,13 @@ ## 17.0.0 +- Require Dart 3.8.0 (Flutter 3.32.0) or later +- Adhere to Dart lints 3.7.0 + - Add unnecessary_underscores + - Add strict_top_level_inference + - Remove package_api_docs + - Remove unsafe_html +- Adhere to Dart lints 3.8.0 + - Add use_null_aware_elements + - Add unnecessary_ignore - Adhere to DCM 1.28.1 - Add avoid-recursive-tostring - Add avoid-enum-values-by-index diff --git a/packages/netglade_analysis/lib/dcm.yaml b/packages/netglade_analysis/lib/dcm.yaml index a433178..e5897e3 100644 --- a/packages/netglade_analysis/lib/dcm.yaml +++ b/packages/netglade_analysis/lib/dcm.yaml @@ -1,4 +1,4 @@ -# version 1.27.0 - https://dcm.dev/changelog +# version 1.28.1 - https://dcm.dev/changelog dart_code_metrics: rules: ### Common @@ -156,7 +156,9 @@ dart_code_metrics: - avoid-suspicious-super-overrides - avoid-throw-in-catch-block - avoid-throw-objects-without-tostring - - avoid-top-level-members-in-tests + - avoid-top-level-members-in-tests: + include: + - test/**/*_test.dart # - avoid-type-casts # needed when working with JSONs - avoid-unassigned-late-fields - avoid-unassigned-stream-subscriptions diff --git a/packages/netglade_analysis/lib/lints.yaml b/packages/netglade_analysis/lib/lints.yaml index c11afa3..5f9789e 100644 --- a/packages/netglade_analysis/lib/lints.yaml +++ b/packages/netglade_analysis/lib/lints.yaml @@ -16,7 +16,11 @@ analyzer: deprecated_member_use_from_same_package: warning record_literal_one_positional_no_trailing_comma: error -# version 3.6.0 - https://github.com/dart-lang/sdk/blob/main/pkg/linter/CHANGELOG.md +formatter: + page_width: 120 + trailing_commas: preserve + +# version 3.8.0 - https://github.com/dart-lang/sdk/blob/main/pkg/linter/CHANGELOG.md linter: rules: ### ERROR @@ -54,10 +58,10 @@ linter: - throw_in_finally - unnecessary_statements - unrelated_type_equality_checks - - unsafe_html + # - unsafe_variance # ! experimental - use_build_context_synchronously - use_key_in_widget_constructors - # - use_truncating_division # ! unreleased + - use_truncating_division - valid_regexps ### STYLE @@ -78,7 +82,7 @@ linter: - avoid_field_initializers_in_const_classes - avoid_final_parameters - avoid_function_literals_in_foreach_calls - # - avoid_futureor_void # ! unreleased + # - avoid_futureor_void # ! experimental # - avoid_implementing_value_types - avoid_init_to_null - avoid_js_rounded_ints @@ -141,11 +145,11 @@ linter: - null_check_on_nullable_type_parameter - null_closures - omit_local_variable_types - # - omit_obvious_local_variable_types # ! unreleased + # - omit_obvious_local_variable_types # ! experimental + # - omit_obvious_property_types # ! experimental - one_member_abstracts - only_throw_errors - overridden_fields - # - package_api_docs - package_prefixed_library_names - parameter_assignments # - prefer_adjacent_string_concatenation # we don't like adjacent strings @@ -195,13 +199,16 @@ linter: - sort_child_properties_last # - sort_constructors_first - sort_unnamed_constructors_first - # - specify_nonobvious_local_variable_types # ! undreleased + # - specify_nonobvious_local_variable_types # ! experimental + # - specify_nonobvious_property_types # ! experimental + - strict_top_level_inference - tighten_type_of_initializing_formals - type_annotate_public_apis - type_init_formals - type_literal_in_constant_pattern - unawaited_futures - unintended_html_in_doc_comment + # - unnecessary_async # ! experimental - unnecessary_await_in_return - unnecessary_brace_in_string_interps - unnecessary_breaks @@ -212,6 +219,7 @@ linter: - unnecessary_null_aware_assignments - unnecessary_null_in_if_null_operators - unnecessary_getters_setters + - unnecessary_ignore - unnecessary_lambdas - unnecessary_late - unnecessary_library_name @@ -225,6 +233,7 @@ linter: - unnecessary_string_interpolations - unnecessary_this - unnecessary_to_list_in_spreads + - unnecessary_underscores # - unreachable_from_main - use_colored_box - use_decorated_box @@ -235,6 +244,7 @@ linter: - use_is_even_rather_than_modulo - use_late_for_private_fields_and_variables - use_named_constants + - use_null_aware_elements - use_rethrow_when_possible - use_raw_strings - use_setters_to_change_properties diff --git a/packages/netglade_analysis/lib/lints_package.yaml b/packages/netglade_analysis/lib/lints_package.yaml index 49b3939..d263955 100644 --- a/packages/netglade_analysis/lib/lints_package.yaml +++ b/packages/netglade_analysis/lib/lints_package.yaml @@ -2,5 +2,4 @@ include: lints.yaml linter: rules: - package_api_docs: true public_member_api_docs: true diff --git a/packages/netglade_analysis/pubspec.yaml b/packages/netglade_analysis/pubspec.yaml index d17b0c4..257a19c 100644 --- a/packages/netglade_analysis/pubspec.yaml +++ b/packages/netglade_analysis/pubspec.yaml @@ -10,5 +10,5 @@ screenshots: path: doc/icon.png environment: - sdk: ^3.6.0 + sdk: ^3.8.0 resolution: workspace diff --git a/packages/netglade_flutter_utils/CHANGELOG.md b/packages/netglade_flutter_utils/CHANGELOG.md index 3dd52b7..c6cc46f 100644 --- a/packages/netglade_flutter_utils/CHANGELOG.md +++ b/packages/netglade_flutter_utils/CHANGELOG.md @@ -1,3 +1,7 @@ +## Unreleased +- Require Dart SDK 3.8.0 or later. +- Require Flutter SDK 3.32.0 or later. + ## 1.2.0 - Dependencies update. diff --git a/packages/netglade_flutter_utils/example/pubspec.yaml b/packages/netglade_flutter_utils/example/pubspec.yaml index cb8b505..026e56b 100644 --- a/packages/netglade_flutter_utils/example/pubspec.yaml +++ b/packages/netglade_flutter_utils/example/pubspec.yaml @@ -3,8 +3,8 @@ version: 0.0.1 publish_to: none environment: - sdk: ^3.6.0 - flutter: ">=3.27.1" + sdk: ^3.8.0 + flutter: ">=3.32.0" resolution: workspace dependencies: diff --git a/packages/netglade_flutter_utils/lib/src/hooks/on_page_is_visible.dart b/packages/netglade_flutter_utils/lib/src/hooks/on_page_is_visible.dart index 5f7ad5f..b28d063 100644 --- a/packages/netglade_flutter_utils/lib/src/hooks/on_page_is_visible.dart +++ b/packages/netglade_flutter_utils/lib/src/hooks/on_page_is_visible.dart @@ -14,11 +14,10 @@ typedef OnPageVisibleCallback = void Function({bool pushedIn}); void useOnPageIsVisible({ required RouteObserver observer, required OnPageVisibleCallback onPageVisible, -}) => - useRouteAware( - observer: observer, - onDidPopNext: () => onPageVisible(pushedIn: false), - onDidPush: () { - onPageVisible(pushedIn: true); - }, - ); +}) => useRouteAware( + observer: observer, + onDidPopNext: () => onPageVisible(pushedIn: false), + onDidPush: () { + onPageVisible(pushedIn: true); + }, +); diff --git a/packages/netglade_flutter_utils/lib/src/hooks/route_aware.dart b/packages/netglade_flutter_utils/lib/src/hooks/route_aware.dart index 6c87d79..17c3d06 100644 --- a/packages/netglade_flutter_utils/lib/src/hooks/route_aware.dart +++ b/packages/netglade_flutter_utils/lib/src/hooks/route_aware.dart @@ -38,7 +38,7 @@ void useRouteAware({ ); } -// ignore: prefer_mixin, prefer-match-file-name, should be private class and should use RouteAware as a mixin +// ignore: prefer-match-file-name, should be private class and should use RouteAware as a mixin class _RouteCallbacks with RouteAware { final VoidCallback? onDidPop; final VoidCallback? onDidPopNext; diff --git a/packages/netglade_flutter_utils/pubspec.yaml b/packages/netglade_flutter_utils/pubspec.yaml index 14c963f..72d10b0 100644 --- a/packages/netglade_flutter_utils/pubspec.yaml +++ b/packages/netglade_flutter_utils/pubspec.yaml @@ -7,8 +7,8 @@ homepage: https://github.com/netglade/flutter_core documentation: https://github.com/netglade/flutter_core/tree/main/packages/netglade_flutter_utils environment: - sdk: ^3.6.0 - flutter: ">=3.27.1" + sdk: ^3.8.0 + flutter: ">=3.32.0" resolution: workspace dependencies: diff --git a/packages/netglade_utils/CHANGELOG.md b/packages/netglade_utils/CHANGELOG.md index 28dd71d..a91f1b3 100644 --- a/packages/netglade_utils/CHANGELOG.md +++ b/packages/netglade_utils/CHANGELOG.md @@ -1,3 +1,6 @@ +## Unreleased +- Require Dart SDK 3.8.0 or later. + ## 2.5.0 - Dependencies update. diff --git a/packages/netglade_utils/example/pubspec.yaml b/packages/netglade_utils/example/pubspec.yaml index 9ed8978..ec3675e 100644 --- a/packages/netglade_utils/example/pubspec.yaml +++ b/packages/netglade_utils/example/pubspec.yaml @@ -3,7 +3,7 @@ version: 0.0.1 publish_to: none environment: - sdk: ^3.6.0 + sdk: ^3.8.0 resolution: workspace dependencies: diff --git a/packages/netglade_utils/lib/src/extensions/future_extensions.dart b/packages/netglade_utils/lib/src/extensions/future_extensions.dart index 1a12fc6..850c645 100644 --- a/packages/netglade_utils/lib/src/extensions/future_extensions.dart +++ b/packages/netglade_utils/lib/src/extensions/future_extensions.dart @@ -21,9 +21,7 @@ extension FutureExtensions on Future { timer.cancel(); return result; - } - // ignore: avoid_catches_without_on_clauses, gotta catch them all - catch (e, s) { + } catch (e, s) { timer.cancel(); return Future.error(e, s); diff --git a/packages/netglade_utils/lib/src/result/option.dart b/packages/netglade_utils/lib/src/result/option.dart index ee89aea..efa5fbb 100644 --- a/packages/netglade_utils/lib/src/result/option.dart +++ b/packages/netglade_utils/lib/src/result/option.dart @@ -42,22 +42,19 @@ final class None extends Option { TResult map({ required NoneCallback none, required SomeCallback some, - }) => - none(); + }) => none(); @override TResult? mapOrNull({ NullableNoneCallback? none, NullableSomeCallback? some, - }) => - none?.call(); + }) => none?.call(); @override TResult when({ required ValueNoneCallback none, required ValueSomeCallback some, - }) => - none(); + }) => none(); } final class Some extends Option { @@ -69,22 +66,19 @@ final class Some extends Option { TResult map({ required NoneCallback none, required SomeCallback some, - }) => - some(this); + }) => some(this); @override TResult? mapOrNull({ NullableNoneCallback? none, NullableSomeCallback? some, - }) => - some?.call(this); + }) => some?.call(this); @override TResult when({ required ValueNoneCallback none, required ValueSomeCallback some, - }) => - some(value); + }) => some(value); } // ignore: prefer-single-declaration-per-file, this can be here diff --git a/packages/netglade_utils/lib/src/result/result_impl.dart b/packages/netglade_utils/lib/src/result/result_impl.dart index ea60614..3c9eb0b 100644 --- a/packages/netglade_utils/lib/src/result/result_impl.dart +++ b/packages/netglade_utils/lib/src/result/result_impl.dart @@ -41,22 +41,19 @@ final class Success extends Result { TResult map({ required SuccessCallback success, required ErrorCallback error, - }) => - success(this); + }) => success(this); @override TResult? mapOrNull({ NullableSuccessCallback? success, NullableErrorCallback? error, - }) => - success?.call(this); + }) => success?.call(this); @override TResult when({ required SuccessValueCallback success, required ErrorValueCallback error, - }) => - success(this.success); + }) => success(this.success); } final class Error extends Result { @@ -68,22 +65,19 @@ final class Error extends Result { TResult map({ required SuccessCallback success, required ErrorCallback error, - }) => - error(this); + }) => error(this); @override TResult? mapOrNull({ NullableSuccessCallback? success, NullableErrorCallback? error, - }) => - error?.call(this); + }) => error?.call(this); @override TResult when({ required SuccessValueCallback success, required ErrorValueCallback error, - }) => - error(this.error); + }) => error(this.error); } // ignore: prefer-single-declaration-per-file, this can be here diff --git a/packages/netglade_utils/lib/src/testing/mock_extensions.dart b/packages/netglade_utils/lib/src/testing/mock_extensions.dart index f71bef3..dc2aa06 100644 --- a/packages/netglade_utils/lib/src/testing/mock_extensions.dart +++ b/packages/netglade_utils/lib/src/testing/mock_extensions.dart @@ -45,16 +45,16 @@ extension ErrorAnswerOr on When>> { extension StreamSubscriptionAnswer on When> { void thenAnswerWithProvidedCallback() => thenAnswer((i) { - final callback = i.positionalArguments.singleOrNull; + final callback = i.positionalArguments.singleOrNull; - // ignore: no-empty-block, it needs to be empty, prefer-typedefs-for-callbacks, private API - return Stream.fromIterable([]).listen(callback != null ? callback as void Function(T value) : (_) {}); - }); + // ignore: no-empty-block, it needs to be empty, prefer-typedefs-for-callbacks, private API + return Stream.fromIterable([]).listen(callback != null ? callback as void Function(T value) : (_) {}); + }); void thenAnswerWithCustomStream(Stream stream) => thenAnswer((i) { - final callback = i.positionalArguments.singleOrNull; + final callback = i.positionalArguments.singleOrNull; - // ignore: no-empty-block, it needs to be empty, prefer-typedefs-for-callbacks, private API - return stream.listen(callback != null ? callback as void Function(T value) : (_) {}); - }); + // ignore: no-empty-block, it needs to be empty, prefer-typedefs-for-callbacks, private API + return stream.listen(callback != null ? callback as void Function(T value) : (_) {}); + }); } diff --git a/packages/netglade_utils/pubspec.yaml b/packages/netglade_utils/pubspec.yaml index 6ed9e93..f58263c 100644 --- a/packages/netglade_utils/pubspec.yaml +++ b/packages/netglade_utils/pubspec.yaml @@ -7,7 +7,7 @@ homepage: https://github.com/netglade/flutter_core documentation: https://github.com/netglade/flutter_core/tree/main/packages/netglade_utils environment: - sdk: ^3.6.0 + sdk: ^3.8.0 resolution: workspace dependencies: diff --git a/pubspec.yaml b/pubspec.yaml index 975c208..b90b474 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: workspace publish_to: "none" environment: - sdk: ^3.6.0 + sdk: ^3.8.0 workspace: - packages/netglade_analysis - packages/netglade_analysis/example