NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #830 most downloaded on pub.dev
An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter
Last release 1 months ago
05 Sep 2026
Release timing varies
gaps range from 9 days to 1.5 years
Nearly every release is documented
notes for 45 of 50 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
55 releases · first in 2019
Disable avoid_private_typedef_functions for strict and package modes
Requires Dart sdk: '>=3.13.0'
avoid_private_typedef_functions for strict and package modesasync_return_with_no_await for strict, casual and package modesempty_container_bodies for strict and package modesinitialize_in_field_declaration for strict, casual and package modesunnecessary_const_in_enum_constructor for strict and package modesunnecessary_primary_constructor_body for strict, casual and package modesunnecessary_type_name_in_constructor for strict, casual and package modesuse_declaring_parameters for strict, casual and package modesuse_primary_constructors for strict, casual and package modesOne column per quarter.
Enable simple_directive_paths for strict, casual and package modes
Requires Dart sdk: '>=3.12.0'
simple_directive_paths for strict, casual and package modesvar_with_no_type_annotation for strict, casual and package modesprefer_initializing_formals for strict and package modesuse_null_aware_elements for strict and package modesEnable simplify_variable_pattern for strict and package modes
Requires Dart sdk: '>=3.11.0'
simplify_variable_pattern for strict and package modesRequires Dart sdk: '>=3.11.0'
simplify_variable_pattern for strict and package modesEnable switch_on_type for strict, casual and package modes
Requires Dart sdk: '>=3.10.0'
switch_on_type for strict, casual and package modesRequires Dart sdk: '>=3.10.0'
switch_on_type for strict, casual and package modesEnable unnecessary_unawaited for strict and package modes
Requires Dart sdk: '>=3.9.0'
unnecessary_unawaited for strict and package modesRequires Dart sdk: '>=3.9.0'
unnecessary_unawaited for strict and package modesEnable unnecessary_ignore for strict mode
Requires Dart sdk: '>=3.8.0'
unnecessary_ignore for strict modeRequires Dart sdk: '>=3.8.0'
unnecessary_ignore for strict modeRemove deprecated and now removed `package_api_docs` from package.yaml. You can enable public_member_api_docs as a way stricter replacement.
Requires Dart sdk: '>=3.7.0'
require_trailing_commasunnecessary_underscoresstrict_top_level_inferenceunnecessary_asyncpackage_api_docs from package.yaml. You can enable public_member_api_docs as a way stricter replacement.unsafe_htmlavoid_null_checks_in_equality_operatorsEnable `use_truncating_division`
use_truncating_divisionavoid_futureor_voidDisable document_ignores due to unnecessary verbosity
document_ignores due to unnecessary verbosityEnable document_ignores for strict mode
Requires Dart sdk: '>=3.5.0'
document_ignores for strict modeinvalid_runtime_check_with_js_interop_typesunintended_html_in_doc_commentFailed release, accidentally published Dart 3.6 rules with Dart 3.5 SDK constraints. Redacted. Use 2.6.1 instead.
Failed release, accidentally published Dart 3.6 rules with Dart 3.5 SDK constraints. Redacted. Use 2.6.1 instead.
Enable unnecessary_library_name
Requires Dart sdk: '>=3.4.0'
Remove iterable_contains_unrelated_type
Requires Dart sdk: '>=3.3.0'
iterable_contains_unrelated_typelist_remove_unrelated_typealways_require_non_null_named_parametersavoid_returning_nullavoid_returning_null_for_futureRequires Dart sdk: '>=3.2.0' Enable annotate_redeclares
Requires Dart sdk: '>=3.2.0'
annotate_redeclaresRequires Dart sdk: '>=3.2.0'
annotate_redeclaresDisable unnecessary_await_in_return due to false positives and almost no benefit
Requires Dart sdk: '>=3.1.0'
unnecessary_await_in_return due to false positives and almost no benefitno_wildcard_variable_usesno_self_assignmentsRemove prefer_equal_for_default_values
Requires Dart sdk: '>=3.0.0'
prefer_equal_for_default_valuesunnecessary_breaksinvalid_case_patternsimplicit_reopen for package modetype_literal_in_constant_patternv2.0.20Disable avoid_positional_boolean_parameters due to new false positives in Dart 3.0
avoid_positional_boolean_parameters due to new false positives in Dart 3.0Requires Dart sdk: '>=3.0.0-0' - Remove implicit-casts: false - Enable strict-casts: true
Requires Dart sdk: '>=3.0.0-0'
implicit-casts: falsestrict-casts: trueEnable `combinators_ordering` for strict
Requires Dart sdk: '>=2.19.0'
combinators_ordering for strictuse_string_in_part_of_directivesunreachable_from_main for strictdangling_library_doc_comments for strictcollection_methods_unrelated_typeimplicit_call_tearoffsunnecessary_library_directivelibrary_annotations- Update changelog
Deprecate package:lint/analysis_options.yaml (uses strict.yaml)
Requires Dart sdk: '>=2.18.0'
package:lint/strict.yamlpackage:lint/casual.yamlpackage:lint/package.yamlpackage:lint/analysis_options.yaml (uses strict.yaml)package:lint/analysis_options_package.yaml (uses package.yaml)use_decorated_boxunnecessary_null_aware_operator_on_extension_on_nullableunnecessary_to_list_in_spreadsRemoval of `invariant_booleans`
Requires Dart sdk: '>=2.17.0'
invariant_booleansRequires Dart sdk: '>=2.16.0 <3.0.0'
Requires Dart sdk: '>=2.16.0 <3.0.0'
unnecessary_lateanalysis_options_package.yaml
lines_longer_than_80_charsprefer_single_quotespana lint rules have been relaxed. No need for those two rules in the package version:
pana lint rules have been relaxed. No need for those two rules in the package version:
lines_longer_than_80_chars from analysis_options_package.yamlprefer_single_quotes from analysis_options_package.yamlRequires Dart sdk: '>=2.15.0-7.0.dev <3.0.0'
Requires Dart sdk: '>=2.15.0-7.0.dev <3.0.0'
always_use_package_importsavoid_double_and_int_checksuse_is_even_rather_than_moduloparameter_assignments is now a warning (was hint)missing_required_param is now a error (was warning)missing_return is now an error (was warning)lib/generated_plugin_registrant.dartlibrary_private_types_in_public_apilines_longer_than_80_charsprefer_single_quotesBig thanks to @rydmike for comparing all popular lint packages, identifying missing rules for this lint
Requires Dart sdk: '>=2.15.0-7.0.dev <3.0.0'
Requires Dart sdk: '>=2.15.0-7.0.dev <3.0.0'
avoid_dynamic_callsRemoval of `invariant_booleans`
invariant_booleansRequires Dart sdk: '>=2.14.0-360.0.dev <3.0.0'
Requires Dart sdk: '>=2.14.0-360.0.dev <3.0.0'
eol_at_end_of_fileRequires Dart sdk: '>=2.14.0-172.0.dev <3.0.0'
Requires Dart sdk: '>=2.14.0-172.0.dev <3.0.0'
depend_on_referenced_packagesnoop_primitive_operationsprefer_final_parametersuse_test_throws_matchersRequires Dart sdk: '>=2.14.0-2.0.dev <3.0.0'
Requires Dart sdk: '>=2.14.0-2.0.dev <3.0.0'
prefer_null_aware_method_callsrequire_trailing_commasEnable `deprecated_consistency`
Requires Dart sdk: >=2.13.0 <3.0.0
avoid_multiple_declarations_per_linedeprecated_consistencyuse_if_null_to_convert_nulls_to_boolsuse_build_context_synchronouslyuse_named_constantsRemove avoid_dynamic_calls, which is not part of the stable Dart 2.12 release
Enable cast_nullable_to_non_nullable
Release for stable Dart 2.12.0
Widen SDK contraints as long as nnbd is still in beta.
Min SDK is 2.12.0-0
Widen SDK contraints as long as nnbd is still in beta.
Min SDK is 2.12.0 - NNBD support
Min SDK is 2.12.0
Release for Dart 2.10.0 with Linter v0.1.118
Release for Dart 2.10.0 with Linter v0.1.118
Min SDK is 2.10.0-5.0.dev
Release for Dart 2.9.0 with Linter v0.1.117
Release for Dart 2.9.0 with Linter v0.1.117
Min SDK is 2.9.0-16.0.dev
sized_box_for_whitespaceexhaustive_casesDart SDK: >= 2.9.0-4.0.dev • (Linter v0.1.115)
Dart SDK: >= 2.9.0-4.0.dev • (Linter v0.1.115)
sized_box_for_whitespaceRelease for Dart 2.8.1 with Linter v0.1.114
Release for Dart 2.8.1 with Linter v0.1.114
Min SDK is 2.8.0-dev.16.0
Enable no_runtimeType_toString
Enable unnecessary_raw_strings
Enable unnecessary_string_escapes
Enable use_key_in_widget_constructors for packages
Raise min sdk to 2.8.0-dev.16.0
Raise min sdk to 2.8.0-dev.16.0
Enable `avoid_redundant_argument_values`
avoid_redundant_argument_valuesmissing_whitespace_between_adjacent_stringsno_runtimeType_toStringunnecessary_string_interpolationsunnecessary_raw_stringsunnecessary_string_escapesleading_newlines_in_multiline_stringsFix syntactical error which breaks custom rules #5
Enable `prefer_is_not_operator`
Release for Dart 2.7
prefer_is_not_operatoravoid_unnecessary_containersRelease for Dart 2.6 - Enable `camel_case_extensions`
Release for Dart 2.6
camel_case_extensionsNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
- Release for Dart 2.5 enables - avoid_print
avoid_print- Release for Dart 2.4 enables - prefer_if_null_operators - sort_child_properties_last - unsafe_html
prefer_if_null_operatorssort_child_properties_lastunsafe_htmlprefer_for_elements_to_map_fromIterable
prefer_for_elements_to_map_fromIterableprefer_if_elements_to_conditional_expressionsprefer_inlined_addsprefer_spread_collectionsFix analysis_options_package.yaml (wrong import)
analysis_options_package.yaml (wrong import)- pubspec.yaml homepage fix
pubspec.yaml homepage fixapp rule set analysis_options_package.yaml
analysis_options_package.yamlanalysis_options_package.yamlapp rule set analysis_options_package.yaml
package rule set analysis_options_package.yaml
863
likes
160
points
243k
downloads
API reference
pascalwelsch.com
An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter
Repository (GitHub)
View/report issues
#lint
Apache-2.0 ( license )
Packages that depend on lint
863
likes
160
points
243k
downloads
API reference
pascalwelsch.com
An opinionated, community-driven set of lint rules for Dart and Flutter projects. Like pedantic but stricter
Repository (GitHub)
View/report issues
#lint
Apache-2.0 ( license )
Packages that depend on lint
Back
Your coding agent can read these notes before it upgrades. Set up the MCP server →