diff --git a/analysis_options.yaml b/analysis_options.yaml index a73c3a63e1bb..c9be5d5f43a6 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,140 +1,4 @@ -# 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 - -analyzer: - language: - enableStrictCallChecks: true - enableSuperMixins: true - enableAssertInitializer: 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/**' - +include: package:pedantic/analysis_options.yaml 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 - - super_goes_last - # - 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/cloud_firestore/analysis_options.yaml b/packages/cloud_firestore/analysis_options.yaml new file mode 100644 index 000000000000..255ec37c361d --- /dev/null +++ b/packages/cloud_firestore/analysis_options.yaml @@ -0,0 +1,12 @@ +# 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: + curly_braces_in_flow_control_structures: ignore + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/cloud_functions/analysis_options.yaml b/packages/cloud_functions/analysis_options.yaml new file mode 100644 index 000000000000..df2fa2cf8dfa --- /dev/null +++ b/packages/cloud_functions/analysis_options.yaml @@ -0,0 +1,12 @@ +# 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: + avoid_relative_lib_imports: ignore + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/firebase_admob/example/lib/main.dart b/packages/firebase_admob/example/lib/main.dart index e5014d652f13..72c4911cbc48 100644 --- a/packages/firebase_admob/example/lib/main.dart +++ b/packages/firebase_admob/example/lib/main.dart @@ -2,6 +2,8 @@ // 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 'package:flutter/material.dart'; import 'package:firebase_admob/firebase_admob.dart'; diff --git a/packages/firebase_admob/lib/firebase_admob.dart b/packages/firebase_admob/lib/firebase_admob.dart index 70289b2b5dc2..6a47b3915bbf 100644 --- a/packages/firebase_admob/lib/firebase_admob.dart +++ b/packages/firebase_admob/lib/firebase_admob.dart @@ -4,6 +4,14 @@ // ignore_for_file: deprecated_member_use_from_same_package +// These are temporary ignores 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 +// ignore_for_file: curly_braces_in_flow_control_structures + import 'dart:async'; import 'dart:io' show Platform; diff --git a/packages/firebase_analytics/analysis_options.yaml b/packages/firebase_analytics/analysis_options.yaml new file mode 100644 index 000000000000..255ec37c361d --- /dev/null +++ b/packages/firebase_analytics/analysis_options.yaml @@ -0,0 +1,12 @@ +# 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: + curly_braces_in_flow_control_structures: ignore + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/firebase_auth/analysis_options.yaml b/packages/firebase_auth/analysis_options.yaml new file mode 100644 index 000000000000..df2fa2cf8dfa --- /dev/null +++ b/packages/firebase_auth/analysis_options.yaml @@ -0,0 +1,12 @@ +# 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: + avoid_relative_lib_imports: ignore + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/firebase_core/firebase_core/analysis_options.yaml b/packages/firebase_core/firebase_core/analysis_options.yaml new file mode 100644 index 000000000000..969b55796944 --- /dev/null +++ b/packages/firebase_core/firebase_core/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/firebase_core/firebase_core_platform_interface/analysis_options.yaml b/packages/firebase_core/firebase_core_platform_interface/analysis_options.yaml new file mode 100644 index 000000000000..969b55796944 --- /dev/null +++ b/packages/firebase_core/firebase_core_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/firebase_crashlytics/analysis_options.yaml b/packages/firebase_crashlytics/analysis_options.yaml new file mode 100644 index 000000000000..255ec37c361d --- /dev/null +++ b/packages/firebase_crashlytics/analysis_options.yaml @@ -0,0 +1,12 @@ +# 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: + curly_braces_in_flow_control_structures: ignore + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/firebase_database/analysis_options.yaml b/packages/firebase_database/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/firebase_database/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/firebase_dynamic_links/analysis_options.yaml b/packages/firebase_dynamic_links/analysis_options.yaml new file mode 100644 index 000000000000..df2fa2cf8dfa --- /dev/null +++ b/packages/firebase_dynamic_links/analysis_options.yaml @@ -0,0 +1,12 @@ +# 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: + avoid_relative_lib_imports: ignore + public_member_api_docs: ignore + unawaited_futures: ignore diff --git a/packages/firebase_in_app_messaging/analysis_options.yaml b/packages/firebase_in_app_messaging/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/firebase_in_app_messaging/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/firebase_messaging/analysis_options.yaml b/packages/firebase_messaging/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/firebase_messaging/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/firebase_ml_vision/analysis_options.yaml b/packages/firebase_ml_vision/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/firebase_ml_vision/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/firebase_performance/analysis_options.yaml b/packages/firebase_performance/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/firebase_performance/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/firebase_remote_config/analysis_options.yaml b/packages/firebase_remote_config/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/firebase_remote_config/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/firebase_storage/analysis_options.yaml b/packages/firebase_storage/analysis_options.yaml new file mode 100644 index 000000000000..d4ccef63f1d1 --- /dev/null +++ b/packages/firebase_storage/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..7ae1b20a9e6c --- /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: flutterfire_plugins +dev_dependencies: + pedantic: ^1.8.0 +publish_to: none