Viewing version 10.3.0. Open the latest package page.
very_good_analysis
10.3.0Lint rules for Dart and Flutter used internally at Very Good Ventures.
Readme
Very Good Analysis
Very Good Ventures Very Good Ventures
Developed with 💙 by Very Good Ventures 🦄
ci pub package License: MIT style: very good analysis
This package provides lint rules for Dart and Flutter which are used at Very Good Ventures. For more information, see the complete list of options.
Note: This package was heavily inspired by pedantic.
Usage
To use the lints, add as a dev dependency in your pubspec.yaml:
dart pub add dev:very_good_analysis
# or
flutter pub add dev:very_good_analysis
Then, add an include in analysis_options.yaml:
include: package:very_good_analysis/analysis_options.yaml
This will ensure you always use the latest version of the lints. If you wish to restrict the lint version, specify a version of analysis_options.yaml instead:
include: package:very_good_analysis/analysis_options.10.0.0.yaml
Suppressing Lints
There may be cases where specific lint rules are undesirable. Lint rules can be suppressed at the line, file, or project level.
An example use case for suppressing lint rules at the file level is suppressing the prefer_const_constructors in order to achieve 100% code coverage. This is due to the fact that const constructors are executed before the tests are run, resulting in no coverage collection.
Line Level
To suppress a specific lint rule for a specific line of code, use an ignore comment directly above the line:
// ignore: public_member_api_docs
class A {}
File Level
To suppress a specific lint rule of a specific file, use an ignore_for_file comment at the top of the file:
// ignore_for_file: public_member_api_docs
class A {}
class B {}
Project Level
To suppress a specific lint rule for an entire project, modify analysis_options.yaml:
include: package:very_good_analysis/analysis_options.yaml
linter:
rules:
public_member_api_docs: false
Badge
To indicate your project is using very_good_analysis →
style: very good analysis
[](https://pub.dev/packages/very_good_analysis)
Excluded rules
Below is a list of rules that are not enabled by default together with the reason on why they have been excluded:
Changelog
Changelog
10.3.0 (2026-06-18)
Miscellaneous Chores
10.3.0-rc.1 (2026-06-02)
Features
- add bump version skill (#206) (0881137)
- disable unreachable_from_main lint by default (#207) (de60543), closes #197
- upgrade to Dart 3.12 (#203) (f13bef8)
Miscellaneous Chores
10.2.0 (2026-02-13)
Features
10.1.0 (2026-02-02)
Miscellaneous Chores
10.1.0-rc.2 (2025-12-09)
Miscellaneous Chores
10.1.0-rc.1 (2025-11-27)
Docs
Features
Bug Fixes
10.0.0 (2025-08-22)
Features
Docs
10.0.0-rc.2 (2025-09-19)
Miscellaneous Chores
Docs
10.0.0-rc.1 (2025-09-08)
Miscellaneous Chores
9.0.0
- chore(deps): bump peter-evans/create-pull-request from 7.0.6 to 7.0.8 139
- chore: release 9.0.0-rc.1 154
9.0.0-rc.1
- feat: support Dart 3.8.0 152
8.0.0
- chore: release 8.0.0-rc.1
- fix: remove
omit_obvious_property_typesas it conflicts withtype_annotate_public_apis148
8.0.0-rc.1
- feat: add
omit_obvious_property_types143 - feat: add
specify_nonobvious_property_types143 - feat: add
strict_top_level_inference143 - feat: add
unnecessary_underscores143 - feat: remove
require_trailing_commas143
7.0.0
- chore: release 7.0.0-dev.1
7.0.0-dev.1
- feat: add
document_ignores125 - feat: remove
avoid_null_checks_in_equality_operators124 - feat: add avoid_catches_without_on_clauses 123
- feat: add invalid_runtime_check_with_js_interop_types 122
- feat: add unintended_html_in_doc_comment 121
- chore: Remove the package_api_docs lint in next release 118
- feat: update lints for Dart 3.5 111
- docs: update exclusion reasons 109
- docs: update commands in contributing 110
6.0.0
- chore: release 6.0.0-dev.1
6.0.0-dev.1
- feat!: upgrade to support Dart
^3.4.0 - feat: additional lint rules:
- docs: include exclusion reason table (100, 102)
5.1.0
- fix: remove deprecated
iterable_contains_unrelated_typelint - fix: remove deprecated
list_remove_unrelated_typelint - fix(docs): full list of rules
- feat: type equality checks should be warnings/errors
5.0.0+1
- docs: minor updates to documentation in
README.md
5.0.0
- feat!: upgrade to support Dart
^3.0.0 - feat: added analysis warning as error:
- feat: additional lint rules:
- refactor: remove deprecated lint rules:
- refactor: remove malfunctioning rules:
4.0.0+1
- docs: minor updates to documentation in
README.md
4.0.0
-
feat!: upgrade to support Dart
^2.19.0 -
feat: additional lint rules:
-
refactor: remove deprecated lint rules:
3.1.0
- BREAKING refactor: remove deprecated
unawaited(useunawaitedfromdart:asyncinstead). - feat: additional lint rules:
3.0.2
- fix: remove deprecated
invariant_booleanslint - fix: deprecate
unawaited(useunawaitedfromdart:asyncinstead).
3.0.1
-
feat: use analyzer language modes instead of deprecated
strong-modelanguage: strict-casts: true strict-inference: true strict-raw-types: true
3.0.0
- feat!: upgrade to support Dart
^2.17.0 - feat: additional lint rules:
2.4.0
- feat: additional lint rules:
avoid_js_rounded_intsavoid_positional_boolean_parametersavoid_private_typedef_functionseol_at_end_of_fileflutter_style_todoslibrary_private_types_in_public_apino_default_casesnoop_primitive_operationsone_member_abstractsparameter_assignmentsprefer_asserts_with_messageprefer_constructors_over_static_methodsprefer_null_aware_method_callsrequire_trailing_commasuse_is_even_rather_than_modulo
2.3.0
- feat: additional analysis errors:
missing_required_parammissing_return
- feat: additional lint rules:
use_named_constantsuse_raw_stringsuse_late_for_private_fields_and_variablesuse_setters_to_change_propertiesuse_string_buffersuse_to_and_as_if_applicablesort_pub_dependenciesliteral_only_boolean_expressionsuse_build_context_synchronouslyavoid_bool_literals_in_conditional_expressionsavoid_catching_errorsavoid_double_and_int_checksavoid_equals_and_hash_code_on_mutable_classesavoid_escaping_inner_quotesavoid_field_initializers_in_const_classesavoid_redundant_argument_valuesavoid_returning_thisavoid_setters_without_gettersavoid_void_asynccast_nullable_to_non_nullabledeprecated_consistencyjoin_return_with_assignmentleading_newlines_in_multiline_stringsmissing_whitespace_between_adjacent_stringsno_runtimeType_toStringnull_check_on_nullable_type_parameterprefer_asserts_in_initializer_listsprefer_final_in_for_eachprefer_final_localsprefer_if_elements_to_conditional_expressionsprefer_int_literalssort_unnamed_constructors_firsttighten_type_of_initializing_formalstype_annotate_public_apisunnecessary_await_in_returnunnecessary_null_checksunnecessary_nullable_for_final_variable_declarationsunnecessary_parenthesisunnecessary_raw_strings
2.2.0
- feat: additional lint rules:
always_use_package_importsavoid_returning_null_for_futureavoid_slow_async_ioavoid_type_to_string
2.1.2
- refactor: remove deprecated
pedanticdependency - ci: improvements to ensure max pub score
- docs: minor documentation and package description updates
2.1.1
- docs: update
READMEto include latest version - docs: reword package description
- docs: consolidate
READMElinks
2.1.0
- feat: update sdk constraint to v2.12.0 stable
- feat: additional lint rules:
avoid_printavoid_returning_null_for_voidavoid_single_cascade_in_expression_statementsavoid_unnecessary_containersavoid_web_libraries_in_fluttercurly_braces_in_flow_control_structuresexhaustive_casesfile_namesno_logic_in_create_stateprefer_const_constructors_in_immutablesprefer_const_declarationsprefer_const_literals_to_create_immutablesprefer_function_declarations_over_variablesprefer_inlined_addsprefer_is_not_operatorprefer_null_aware_operatorsprefer_void_to_nullprovide_deprecation_messagesized_box_for_whitespaceunnecessary_overridesunnecessary_string_escapesunnecessary_string_interpolationsuse_full_hex_values_for_flutter_colorsvoid_checks
2.0.3
- feat: additional linter rule:
sort_child_properties_last
2.0.2
- feat: additional linter rule:
use_key_in_widget_constructors
2.0.1
- feat: additional linter rule:
avoid_dynamic_calls
2.0.0
- feat: stable null safe release
2.0.0-nullsafety.0
- chore: migrate to null safety
1.0.4
- docs: README and metadata updates
1.0.3
- feat: additional linter rules
avoid_printavoid_unnecessary_containersprefer_final_in_for_eachprefer_final_localsprefer_const_declarationssized_box_for_whitespace
1.0.2
- feat: add test/.test_coverage.dart to the list of ignored files
1.0.1
- docs: README improvements
- docs: inline documentation improvements
1.0.0
- Add
analysis_optionsused at Very Good Ventures
Installing
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.com
flutter pub add 'very_good_analysis:10.3.0'pubspec.yaml
name: very_good_analysis
version: 10.3.0
description: Lint rules for Dart and Flutter used internally at Very Good Ventures.
repository: https://github.com/VeryGoodOpenSource/very_good_analysis
issue_tracker: https://github.com/VeryGoodOpenSource/very_good_analysis/issues
homepage: https://github.com/VeryGoodOpenSource/very_good_analysis
documentation: https://github.com/VeryGoodOpenSource/very_good_analysis
topics: [lints, analyzer, analysis]
environment:
sdk: ^3.12.0
Version history
| Version | Published | Archive | SHA-256 |
|---|---|---|---|
| 1.0.0 | On demand | Download | 452570cc…0a55e3 |
| 1.0.1 | On demand | Download | 414add6e…09a3d6 |
| 1.0.2 | On demand | Download | 1f7f81c6…036146 |
| 1.0.3 | On demand | Download | 2ef53b58…bd48c1 |
| 1.0.4 | On demand | Download | 3b0beb53…372642 |
| 2.0.0-nullsafety.0 | On demand | Download | 91347aca…9850fa |
| 2.0.0 | On demand | Download | b09ed389…cf2630 |
| 2.0.1 | On demand | Download | 8d398586…0800af |
| 2.0.3 | On demand | Download | 12644acd…6d3f0f |
| 2.1.0 | On demand | Download | 8bd2dc57…c7cf02 |
| 2.1.1 | On demand | Download | 034044d3…720345 |
| 2.1.2 | On demand | Download | cb21f96e…8e6d41 |
| 2.2.0 | On demand | Download | ba370b08…de56c9 |
| 2.3.0 | On demand | Download | ffafc655…46428f |
| 2.4.0 | On demand | Download | cecd7a0e…5911ee |
| 3.0.0 | On demand | Download | f50468aa…90358d |
| 3.0.1 | On demand | Download | 396bf7de…e921d9 |
| 3.0.2 | On demand | Download | 88868b04…0913cd |
| 3.1.0 | On demand | Download | 4815adc7…81e5e2 |
| 4.0.0 | On demand | Download | b3c9f971…1be488 |
| 4.0.0+1 | On demand | Download | ebc48c51…b40b08 |
| 5.0.0 | On demand | Download | 5f77d7c0…2453bb |
| 5.0.0+1 | On demand | Download | 5e4ea72d…4508b8 |
| 5.1.0 | On demand | Download | 9ae7f3a3…58a4b8 |
| 6.0.0-dev.1 | On demand | Download | f847f770…892d47 |
| 6.0.0 | On demand | Download | 1fb637c0…3a8629 |
| 7.0.0-dev.1 | On demand | Download | c496e0f4…c1db74 |
| 7.0.0 | On demand | Download | 62d2b86d…035c63 |
| 8.0.0-rc.1 | On demand | Download | f789d414…184dc6 |
| 8.0.0 | On demand | Download | c529563b…f551a7 |
| 9.0.0-rc.1 | On demand | Download | 8ff68839…7cf9df |
| 9.0.0 | On demand | Download | e479fbc0…e1e382 |
| 10.0.0-rc.1 | On demand | Download | 2dea1654…a466fa |
| 10.0.0-rc.2 | On demand | Download | 3c9d43c2…2d56e8 |
| 10.0.0 | On demand | Download | 96245839…7f1e3a |
| 10.1.0-rc.1 | On demand | Download | b6b5fdc9…275af7 |
| 10.1.0-rc.2 | On demand | Download | a75193c3…165321 |
| 10.1.0 | On demand | Download | 27927d11…d731d0 |
| 10.2.0 | On demand | Download | d1cb1d66…a972e0 |
| 10.3.0-rc.1 | On demand | Download | d52ce9c7…b34ed0 |
| 10.3.0 | Cached · Upstream SHA-256 matched | Download | 481af67a…12b33d |
| 11.0.0-rc.1 | On demand | Download | f69b70a2…176bd5 |
| 11.0.0 | Cached · Upstream SHA-256 matched | Download | 0bd5eb8d…c7f6d3 |
Dependencies
No direct dependencies declared.