From 09224a8fb598d072f128be57ec6352f89948ae49 Mon Sep 17 00:00:00 2001 From: Michael Klimushyn Date: Fri, 22 Nov 2019 16:37:19 -0800 Subject: [PATCH 1/2] [all] Switch to pedantic analysis rules Switches our out of date fork of Flutter's analysis rules to the pedantic package. In order to make this an easy change to initially land and then incrementally enable, any existing non-trivial lints have just been ignored within their respective packages instead of being fixed. Also adds a global lint for missing public DartDocs. Like the pedantic lints, this being ignored in packages that are already failing it. --- analysis_options.yaml | 139 +----------------- .../analysis_options.yaml | 10 ++ packages/android_intent/analysis_options.yaml | 16 +- packages/battery/analysis_options.yaml | 11 ++ packages/camera/analysis_options.yaml | 11 ++ packages/connectivity/analysis_options.yaml | 15 +- packages/device_info/analysis_options.yaml | 11 ++ packages/e2e/analysis_options.yaml | 11 ++ .../example/lib/main.dart | 2 + .../google_maps_flutter/analysis_options.yaml | 11 ++ .../google_sign_in/analysis_options.yaml | 11 ++ .../analysis_options.yaml | 10 ++ .../google_sign_in_web/analysis_options.yaml | 15 +- packages/image_picker/analysis_options.yaml | 11 -- .../in_app_purchase/analysis_options.yaml | 17 ++- packages/local_auth/analysis_options.yaml | 10 ++ packages/package_info/analysis_options.yaml | 11 ++ packages/path_provider/analysis_options.yaml | 11 -- .../test_driver/path_provider_e2e_test.dart | 2 +- packages/quick_actions/analysis_options.yaml | 11 ++ packages/sensors/analysis_options.yaml | 11 -- .../test_driver/test/sensors_e2e_test.dart | 2 +- packages/share/analysis_options.yaml | 15 +- .../shared_preferences/analysis_options.yaml | 16 +- .../url_launcher/analysis_options.yaml | 11 -- .../test_driver/url_launcher_e2e_test.dart | 2 +- .../analysis_options.yaml | 11 -- .../video_player/analysis_options.yaml | 15 +- .../analysis_options.yaml | 11 ++ .../webview_flutter/analysis_options.yaml | 11 ++ pubspec.yaml | 7 + 31 files changed, 220 insertions(+), 238 deletions(-) create mode 100644 packages/android_alarm_manager/analysis_options.yaml create mode 100644 packages/battery/analysis_options.yaml create mode 100644 packages/camera/analysis_options.yaml create mode 100644 packages/device_info/analysis_options.yaml create mode 100644 packages/e2e/analysis_options.yaml create mode 100644 packages/google_maps_flutter/analysis_options.yaml create mode 100644 packages/google_sign_in/google_sign_in/analysis_options.yaml create mode 100644 packages/google_sign_in/google_sign_in_platform_interface/analysis_options.yaml delete mode 100644 packages/image_picker/analysis_options.yaml create mode 100644 packages/local_auth/analysis_options.yaml create mode 100644 packages/package_info/analysis_options.yaml delete mode 100644 packages/path_provider/analysis_options.yaml create mode 100644 packages/quick_actions/analysis_options.yaml delete mode 100644 packages/sensors/analysis_options.yaml delete mode 100644 packages/url_launcher/url_launcher/analysis_options.yaml delete mode 100644 packages/url_launcher/url_launcher_platform_interface/analysis_options.yaml create mode 100644 packages/video_player/video_player_platform_interface/analysis_options.yaml create mode 100644 packages/webview_flutter/analysis_options.yaml create mode 100644 pubspec.yaml diff --git a/analysis_options.yaml b/analysis_options.yaml index d4a06c5b9dd4..3a657c0e2408 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,138 +1,9 @@ -# Specify analysis options. -# -# Until there are meta linter rules, each desired lint must be explicitly enabled. -# See: https://github.com/dart-lang/linter/issues/288 -# -# For a list of lints, see: http://dart-lang.github.io/linter/lints/ -# See the configuration guide for more -# https://github.com/dart-lang/sdk/tree/master/pkg/analyzer#configuring-the-analyzer -# -# NOTE: Please keep this file in sync with -# https://github.com/flutter/flutter/blob/master/analysis_options.yaml - +include: package:pedantic/analysis_options.yaml analyzer: - language: - strict-inference: true - strict-raw-types: true - strong-mode: - implicit-dynamic: false - errors: - # treat missing required parameters as a warning (not a hint) - missing_required_param: warning - # treat missing returns as a warning (not a hint) - missing_return: warning - # allow having TODOs in the code - todo: ignore exclude: - - 'bin/cache/**' - # the following two are relative to the stocks example and the flutter package respectively - # see https://github.com/dart-lang/sdk/issues/28463 - - 'lib/i18n/stock_messages_*.dart' - - 'lib/src/http/**' - + # Ignore generated files + - '**/*.g.dart' + - 'lib/src/generated/*.dart' linter: rules: - # these rules are documented on and in the same order as - # the Dart Lint rules page to make maintenance easier - # http://dart-lang.github.io/linter/lints/ - - # === error rules === - - avoid_empty_else - - avoid_slow_async_io - - cancel_subscriptions - # - close_sinks # https://github.com/flutter/flutter/issues/5789 - # - comment_references # blocked on https://github.com/dart-lang/dartdoc/issues/1153 - - control_flow_in_finally - - empty_statements - - hash_and_equals - # - invariant_booleans # https://github.com/flutter/flutter/issues/5790 - - iterable_contains_unrelated_type - - list_remove_unrelated_type - # - literal_only_boolean_expressions # https://github.com/flutter/flutter/issues/5791 - - no_adjacent_strings_in_list - - no_duplicate_case_values - - test_types_in_equals - - throw_in_finally - - unrelated_type_equality_checks - - valid_regexps - - # === style rules === - - always_declare_return_types - # - always_put_control_body_on_new_line - - always_require_non_null_named_parameters - - always_specify_types - - annotate_overrides - # - avoid_annotating_with_dynamic # not yet tested - - avoid_as - # - avoid_catches_without_on_clauses # not yet tested - # - avoid_catching_errors # not yet tested - # - avoid_classes_with_only_static_members # not yet tested - # - avoid_function_literals_in_foreach_calls # not yet tested - - avoid_init_to_null - - avoid_null_checks_in_equality_operators - # - avoid_positional_boolean_parameters # not yet tested - - avoid_return_types_on_setters - # - avoid_returning_null # not yet tested - # - avoid_returning_this # not yet tested - # - avoid_setters_without_getters # not yet tested - # - avoid_types_on_closure_parameters # not yet tested - - await_only_futures - - camel_case_types - # - cascade_invocations # not yet tested - # - constant_identifier_names # https://github.com/dart-lang/linter/issues/204 - - directives_ordering - - empty_catches - - empty_constructor_bodies - - implementation_imports - # - join_return_with_assignment # not yet tested - - library_names - - library_prefixes - - non_constant_identifier_names - # - omit_local_variable_types # opposite of always_specify_types - # - one_member_abstracts # too many false positives - # - only_throw_errors # https://github.com/flutter/flutter/issues/5792 - - overridden_fields - - package_api_docs - - package_prefixed_library_names - # - parameter_assignments # we do this commonly - - prefer_adjacent_string_concatenation - - prefer_collection_literals - # - prefer_conditional_assignment # not yet tested - - prefer_const_constructors - # - prefer_constructors_over_static_methods # not yet tested - - prefer_contains - - 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 # https://github.com/dart-lang/linter/issues/506 - - prefer_final_locals - # - prefer_foreach # not yet tested - # - prefer_function_declarations_over_variables # not yet tested - - prefer_initializing_formals - # - prefer_interpolation_to_compose_strings # not yet tested - - prefer_is_empty - - prefer_is_not_empty - - prefer_void_to_null - # - recursive_getters # https://github.com/dart-lang/linter/issues/452 - - slash_for_doc_comments - - sort_constructors_first - - sort_unnamed_constructors_first - # - type_annotate_public_apis # subset of always_specify_types - - type_init_formals - # - unawaited_futures # https://github.com/flutter/flutter/issues/5793 - - unnecessary_brace_in_string_interps - - unnecessary_const - - unnecessary_getters_setters - # - unnecessary_lambdas # https://github.com/dart-lang/linter/issues/498 - - unnecessary_new - - unnecessary_null_aware_assignments - - unnecessary_null_in_if_null_operators - # - unnecessary_overrides # https://github.com/dart-lang/linter/issues/626 and https://github.com/dart-lang/linter/issues/627 - - unnecessary_statements - - unnecessary_this - - use_rethrow_when_possible - # - use_setters_to_change_properties # not yet tested - # - use_string_buffers # https://github.com/dart-lang/linter/pull/664 - # - use_to_and_as_if_applicable # has false positives, so we prefer to catch this by code-review - - # === pub rules === - - package_names + - public_member_api_docs diff --git a/packages/android_alarm_manager/analysis_options.yaml b/packages/android_alarm_manager/analysis_options.yaml new file mode 100644 index 000000000000..8e4af76f0a30 --- /dev/null +++ b/packages/android_alarm_manager/analysis_options.yaml @@ -0,0 +1,10 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore diff --git a/packages/android_intent/analysis_options.yaml b/packages/android_intent/analysis_options.yaml index 4d3c53a24cab..0eab8e531dc1 100644 --- a/packages/android_intent/analysis_options.yaml +++ b/packages/android_intent/analysis_options.yaml @@ -1,11 +1,11 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. include: ../../analysis_options.yaml -linter: - rules: - - public_member_api_docs +analyzer: + errors: + avoid_relative_lib_imports: ignore + unawaited_futures: ignore diff --git a/packages/battery/analysis_options.yaml b/packages/battery/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/battery/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/camera/analysis_options.yaml b/packages/camera/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/camera/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/connectivity/analysis_options.yaml b/packages/connectivity/analysis_options.yaml index 4d3c53a24cab..22c4e1041011 100644 --- a/packages/connectivity/analysis_options.yaml +++ b/packages/connectivity/analysis_options.yaml @@ -1,11 +1,10 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. include: ../../analysis_options.yaml -linter: - rules: - - public_member_api_docs +analyzer: + errors: + unawaited_futures: ignore diff --git a/packages/device_info/analysis_options.yaml b/packages/device_info/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/device_info/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/e2e/analysis_options.yaml b/packages/e2e/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/e2e/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/flutter_plugin_android_lifecycle/example/lib/main.dart b/packages/flutter_plugin_android_lifecycle/example/lib/main.dart index 12339516b156..01da8d66fc0d 100644 --- a/packages/flutter_plugin_android_lifecycle/example/lib/main.dart +++ b/packages/flutter_plugin_android_lifecycle/example/lib/main.dart @@ -1,3 +1,5 @@ +// ignore_for_file: public_member_api_docs + import 'package:flutter/material.dart'; void main() => runApp(MyApp()); diff --git a/packages/google_maps_flutter/analysis_options.yaml b/packages/google_maps_flutter/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/google_maps_flutter/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/google_sign_in/google_sign_in/analysis_options.yaml b/packages/google_sign_in/google_sign_in/analysis_options.yaml new file mode 100644 index 000000000000..e1dadb9e2b2a --- /dev/null +++ b/packages/google_sign_in/google_sign_in/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/google_sign_in/google_sign_in_platform_interface/analysis_options.yaml b/packages/google_sign_in/google_sign_in_platform_interface/analysis_options.yaml new file mode 100644 index 000000000000..969b55796944 --- /dev/null +++ b/packages/google_sign_in/google_sign_in_platform_interface/analysis_options.yaml @@ -0,0 +1,10 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore diff --git a/packages/google_sign_in/google_sign_in_web/analysis_options.yaml b/packages/google_sign_in/google_sign_in_web/analysis_options.yaml index 6ff44d022af6..af557b7ac2e0 100644 --- a/packages/google_sign_in/google_sign_in_web/analysis_options.yaml +++ b/packages/google_sign_in/google_sign_in_web/analysis_options.yaml @@ -1,5 +1,12 @@ -# Exclude auto-generated files from analysis/linting +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../../analysis_options.yaml + analyzer: - exclude: - - "lib/src/generated/**" - \ No newline at end of file + errors: + public_member_api_docs: ignore + unused_element: ignore + unawaited_futures: ignore diff --git a/packages/image_picker/analysis_options.yaml b/packages/image_picker/analysis_options.yaml deleted file mode 100644 index 4d3c53a24cab..000000000000 --- a/packages/image_picker/analysis_options.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. - -include: ../../analysis_options.yaml - -linter: - rules: - - public_member_api_docs diff --git a/packages/in_app_purchase/analysis_options.yaml b/packages/in_app_purchase/analysis_options.yaml index afa04c8cb084..6a095d6e3a69 100644 --- a/packages/in_app_purchase/analysis_options.yaml +++ b/packages/in_app_purchase/analysis_options.yaml @@ -1,3 +1,16 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + analyzer: - exclude: - - lib/**/*.g.dart # Ignore generated files \ No newline at end of file + errors: + avoid_init_to_null: ignore + prefer_is_empty: ignore + prefer_is_not_empty: ignore + public_member_api_docs: ignore + type_init_formals: ignore + unnecessary_new: ignore + unawaited_futures: ignore diff --git a/packages/local_auth/analysis_options.yaml b/packages/local_auth/analysis_options.yaml new file mode 100644 index 000000000000..8e4af76f0a30 --- /dev/null +++ b/packages/local_auth/analysis_options.yaml @@ -0,0 +1,10 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore diff --git a/packages/package_info/analysis_options.yaml b/packages/package_info/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/package_info/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/path_provider/analysis_options.yaml b/packages/path_provider/analysis_options.yaml deleted file mode 100644 index 4d3c53a24cab..000000000000 --- a/packages/path_provider/analysis_options.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. - -include: ../../analysis_options.yaml - -linter: - rules: - - public_member_api_docs diff --git a/packages/path_provider/example/test_driver/path_provider_e2e_test.dart b/packages/path_provider/example/test_driver/path_provider_e2e_test.dart index ff6e9ce74ad9..f3aa9e218d82 100644 --- a/packages/path_provider/example/test_driver/path_provider_e2e_test.dart +++ b/packages/path_provider/example/test_driver/path_provider_e2e_test.dart @@ -10,6 +10,6 @@ Future main() async { final FlutterDriver driver = await FlutterDriver.connect(); final String result = await driver.requestData(null, timeout: const Duration(minutes: 1)); - driver.close(); + await driver.close(); exit(result == 'pass' ? 0 : 1); } diff --git a/packages/quick_actions/analysis_options.yaml b/packages/quick_actions/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/quick_actions/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/sensors/analysis_options.yaml b/packages/sensors/analysis_options.yaml deleted file mode 100644 index 4d3c53a24cab..000000000000 --- a/packages/sensors/analysis_options.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. - -include: ../../analysis_options.yaml - -linter: - rules: - - public_member_api_docs diff --git a/packages/sensors/example/test_driver/test/sensors_e2e_test.dart b/packages/sensors/example/test_driver/test/sensors_e2e_test.dart index ff6e9ce74ad9..f3aa9e218d82 100644 --- a/packages/sensors/example/test_driver/test/sensors_e2e_test.dart +++ b/packages/sensors/example/test_driver/test/sensors_e2e_test.dart @@ -10,6 +10,6 @@ Future main() async { final FlutterDriver driver = await FlutterDriver.connect(); final String result = await driver.requestData(null, timeout: const Duration(minutes: 1)); - driver.close(); + await driver.close(); exit(result == 'pass' ? 0 : 1); } diff --git a/packages/share/analysis_options.yaml b/packages/share/analysis_options.yaml index 4d3c53a24cab..22c4e1041011 100644 --- a/packages/share/analysis_options.yaml +++ b/packages/share/analysis_options.yaml @@ -1,11 +1,10 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. include: ../../analysis_options.yaml -linter: - rules: - - public_member_api_docs +analyzer: + errors: + unawaited_futures: ignore diff --git a/packages/shared_preferences/analysis_options.yaml b/packages/shared_preferences/analysis_options.yaml index 4d3c53a24cab..35344bfb898c 100644 --- a/packages/shared_preferences/analysis_options.yaml +++ b/packages/shared_preferences/analysis_options.yaml @@ -1,11 +1,11 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. include: ../../analysis_options.yaml -linter: - rules: - - public_member_api_docs +analyzer: + errors: + curly_braces_in_flow_control_structures: ignore + unawaited_futures: ignore diff --git a/packages/url_launcher/url_launcher/analysis_options.yaml b/packages/url_launcher/url_launcher/analysis_options.yaml deleted file mode 100644 index 6c7fd57bb022..000000000000 --- a/packages/url_launcher/url_launcher/analysis_options.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. - -include: ../../../analysis_options.yaml - -linter: - rules: - - public_member_api_docs diff --git a/packages/url_launcher/url_launcher/example/test_driver/url_launcher_e2e_test.dart b/packages/url_launcher/url_launcher/example/test_driver/url_launcher_e2e_test.dart index ac4ea11482e2..1bcd0d37f450 100644 --- a/packages/url_launcher/url_launcher/example/test_driver/url_launcher_e2e_test.dart +++ b/packages/url_launcher/url_launcher/example/test_driver/url_launcher_e2e_test.dart @@ -10,6 +10,6 @@ Future main() async { final FlutterDriver driver = await FlutterDriver.connect(); final String result = await driver.requestData(null, timeout: const Duration(minutes: 1)); - driver.close(); + await driver.close(); exit(result == 'pass' ? 0 : 1); } diff --git a/packages/url_launcher/url_launcher_platform_interface/analysis_options.yaml b/packages/url_launcher/url_launcher_platform_interface/analysis_options.yaml deleted file mode 100644 index 6c7fd57bb022..000000000000 --- a/packages/url_launcher/url_launcher_platform_interface/analysis_options.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. - -include: ../../../analysis_options.yaml - -linter: - rules: - - public_member_api_docs diff --git a/packages/video_player/video_player/analysis_options.yaml b/packages/video_player/video_player/analysis_options.yaml index 6c7fd57bb022..4c1fcb727314 100644 --- a/packages/video_player/video_player/analysis_options.yaml +++ b/packages/video_player/video_player/analysis_options.yaml @@ -1,11 +1,10 @@ -# This exists to add a lint for missing API docs just on this specific package, -# since not all packages have coverage for all their public members yet and -# adding it in would be non-trivial. `public_member_api_docs` should be applied -# to new packages going forward, and ideally the main `analysis_options.yaml` -# file as soon as possible. +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. include: ../../../analysis_options.yaml -linter: - rules: - - public_member_api_docs +analyzer: + errors: + unawaited_futures: ignore diff --git a/packages/video_player/video_player_platform_interface/analysis_options.yaml b/packages/video_player/video_player_platform_interface/analysis_options.yaml new file mode 100644 index 000000000000..e1dadb9e2b2a --- /dev/null +++ b/packages/video_player/video_player_platform_interface/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/webview_flutter/analysis_options.yaml b/packages/webview_flutter/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/webview_flutter/analysis_options.yaml @@ -0,0 +1,11 @@ +# This is a temporary file to allow us to land a new set of linter rules in a +# series of manageable patches instead of one gigantic PR. It disables some of +# the new lints that are already failing on this plugin, for this plugin. It +# should be deleted and the failing lints addressed as soon as possible. + +include: ../../analysis_options.yaml + +analyzer: + errors: + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 000000000000..23fb3db51bc0 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,7 @@ +# This only exists so that we can include pedantic in the top level +# analysis_options.yaml. Each plugin should be published from its own +# subdirectory underneath packages/. +name: flutter_plugins +dev_dependencies: + pedantic: ^1.8.0 +publish_to: none From 8b18dc7e847d8cec7695ef0bec20b010962560a1 Mon Sep 17 00:00:00 2001 From: Michael Klimushyn Date: Fri, 22 Nov 2019 16:54:02 -0800 Subject: [PATCH 2/2] Remove analysis_options from local_auth. --- packages/local_auth/analysis_options.yaml | 10 ---------- packages/local_auth/example/lib/main.dart | 3 +++ packages/local_auth/lib/auth_strings.dart | 6 ++++++ packages/local_auth/lib/local_auth.dart | 6 ++++++ 4 files changed, 15 insertions(+), 10 deletions(-) delete mode 100644 packages/local_auth/analysis_options.yaml diff --git a/packages/local_auth/analysis_options.yaml b/packages/local_auth/analysis_options.yaml deleted file mode 100644 index 8e4af76f0a30..000000000000 --- a/packages/local_auth/analysis_options.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# This is a temporary file to allow us to land a new set of linter rules in a -# series of manageable patches instead of one gigantic PR. It disables some of -# the new lints that are already failing on this plugin, for this plugin. It -# should be deleted and the failing lints addressed as soon as possible. - -include: ../../analysis_options.yaml - -analyzer: - errors: - public_member_api_docs: ignore diff --git a/packages/local_auth/example/lib/main.dart b/packages/local_auth/example/lib/main.dart index 26dccb750289..06e33b9853be 100644 --- a/packages/local_auth/example/lib/main.dart +++ b/packages/local_auth/example/lib/main.dart @@ -1,6 +1,9 @@ // Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. + +// ignore_for_file: public_member_api_docs + import 'dart:async'; import 'package:flutter/material.dart'; diff --git a/packages/local_auth/lib/auth_strings.dart b/packages/local_auth/lib/auth_strings.dart index 26646bbf41b4..a8f34f88723c 100644 --- a/packages/local_auth/lib/auth_strings.dart +++ b/packages/local_auth/lib/auth_strings.dart @@ -2,6 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// This is a temporary ignore to allow us to land a new set of linter rules in a +// series of manageable patches instead of one gigantic PR. It disables some of +// the new lints that are already failing on this plugin, for this plugin. It +// should be deleted and the failing lints addressed as soon as possible. +// ignore_for_file: public_member_api_docs + import 'package:intl/intl.dart'; /// Android side authentication messages. diff --git a/packages/local_auth/lib/local_auth.dart b/packages/local_auth/lib/local_auth.dart index 31c1a41d0266..b2b03b920d64 100644 --- a/packages/local_auth/lib/local_auth.dart +++ b/packages/local_auth/lib/local_auth.dart @@ -2,6 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// This is a temporary ignore to allow us to land a new set of linter rules in a +// series of manageable patches instead of one gigantic PR. It disables some of +// the new lints that are already failing on this plugin, for this plugin. It +// should be deleted and the failing lints addressed as soon as possible. +// ignore_for_file: public_member_api_docs + import 'dart:async'; import 'package:flutter/services.dart';