diff --git a/packages/netglade_analysis/CHANGELOG.md b/packages/netglade_analysis/CHANGELOG.md index a416e23..48800d9 100644 --- a/packages/netglade_analysis/CHANGELOG.md +++ b/packages/netglade_analysis/CHANGELOG.md @@ -1,3 +1,11 @@ +## 8.0.0 +- Adhere to DCM 1.14.0: + - Add avoid-empty-test-groups + - Add avoid-not-encodable-in-to-json + - Add avoid-contradictory-expressions + - Add avoid-excessive-expressions +- Put build method in widgets above private methods. + ## 7.0.0 - Adhere to DCM 1.13.0: - Add avoid-duplicate-collection-elements diff --git a/packages/netglade_analysis/lib/dcm.yaml b/packages/netglade_analysis/lib/dcm.yaml index 1528d62..db0a3bb 100644 --- a/packages/netglade_analysis/lib/dcm.yaml +++ b/packages/netglade_analysis/lib/dcm.yaml @@ -1,380 +1,387 @@ -# version 1.13.0 - https://dcm.dev/changelog/ -dart_code_metrics: - rules: - ### Common - # - arguments-ordering # way too pedantic - - avoid-accessing-collections-by-constant-index - - avoid-accessing-other-classes-private-members - - avoid-async-call-in-sync-function - # - avoid-banned-annotations # * OK, we just don't have global config - # - avoid-banned-file-names # * OK, we just don't have global config - # - avoid-banned-imports # * OK, we just don't have global config - # - avoid-banned-types # * OK, we just don't have global config - # - avoid-barrel-files # for now we use them - - avoid-bottom-type-in-patterns - - avoid-bottom-type-in-records - - avoid-cascade-after-if-null - - avoid-collapsible-if - - avoid-collection-methods-with-unrelated-types - # - avoid-collection-mutating-methods # sometimes it's ok - - avoid-declaring-call-method - - avoid-double-slash-imports - - avoid-duplicate-cascades - - avoid-duplicate-collection-elements - - avoid-duplicate-exports - - avoid-duplicate-initializers - - avoid-duplicate-map-keys - - avoid-duplicate-mixins - - avoid-duplicate-named-imports - - avoid-duplicate-patterns - - avoid-duplicate-switch-case-conditions - - avoid-duplicate-test-assertions - - avoid-dynamic - - avoid-equal-expressions - - avoid-explicit-pattern-field-name - # - avoid-explicit-type-declaration # public API - - avoid-extensions-on-records - - avoid-function-type-in-records - - avoid-future-tostring - - avoid-generics-shadowing - - avoid-global-state - - avoid-identical-exception-handling-blocks - - avoid-ignoring-return-values - - avoid-importing-entrypoint-exports - - avoid-inferrable-type-arguments: - ignored-invocations: - - context.read - - context.watch - - GetIt.I - - avoid-inverted-boolean-checks - - avoid-keywords-in-wildcard-pattern - # - avoid-late-keyword - - avoid-local-functions - # - avoid-long-files # hard to get the right settings - # - avoid-long-functions # way too pedantic - # - avoid-long-parameter-list: # way too pedantic - # ignore-optional: true # exclude optional and (non-required) named parameters - - avoid-long-records - - avoid-map-keys-contains - - avoid-missed-calls - - avoid-missing-enum-constant-in-map - - avoid-misused-wildcard-pattern - - avoid-mixing-named-and-positional-fields - # - avoid-mutating-parameters # we use ValueNotifier etc. - # - avoid-negated-conditions # sometimes it might be better - - avoid-nested-conditional-expressions: - acceptable-level: 2 - - avoid-nested-futures - - avoid-nested-records - - avoid-nested-streams-and-futures - - avoid-nested-switch-expressions - - avoid-nested-switches - - avoid-non-ascii-symbols: - exclude: - - test/** - - avoid-non-null-assertion: - skip-checked-fields: true - exclude: - - test/** - - avoid-nullable-interpolation - - avoid-nullable-parameters-with-default-values - - avoid-nullable-tostring - - avoid-one-field-records - - avoid-passing-async-when-sync-expected: - exclude: - - test/** - - avoid-passing-default-values - - avoid-passing-self-as-argument - - avoid-positional-record-field-access - - avoid-recursive-calls - - avoid-redundant-async - - avoid-redundant-else - - avoid-redundant-positional-field-name - - avoid-redundant-pragma-inline - - avoid-referencing-discarded-variables - - avoid-self-assignment - - avoid-self-compare - - avoid-shadowed-extension-methods - - avoid-shadowing: - ignore-parameters: true - ignored-names: - - context - # - avoid-similar-names # way too pedantic - - avoid-substring - - avoid-throw-in-catch-block - - avoid-throw-objects-without-tostring - - avoid-top-level-members-in-tests - - avoid-unassigned-late-fields - - avoid-unassigned-stream-subscriptions - - avoid-uncaught-future-errors - - avoid-unconditional-break - - avoid-unnecessary-call - - avoid-unnecessary-conditionals - - avoid-unnecessary-futures - # - avoid-unnecessary-getter # it's ok to have getter for private field - - avoid-unnecessary-if - - avoid-unnecessary-local-late - - avoid-unnecessary-negations - - avoid-unnecessary-nullable-return-type - - avoid-unnecessary-reassignment - - avoid-unnecessary-return - - avoid-unnecessary-super - - avoid-unnecessary-type-assertions - - avoid-unnecessary-type-casts - - avoid-unrelated-type-assertions - - avoid-unrelated-type-casts - - avoid-unsafe-collection-methods - - avoid-unused-after-null-check - - avoid-unused-generics - - avoid-unused-instances - - avoid-unused-parameters - - avoid-weak-cryptographic-algorithms - - avoid-wildcard-cases-with-enums - # - banned-usage # * OK, we just don't have global config - - binary-expression-operand-order - - double-literal-format - - enum-constants-ordering - - format-comment: - only-doc-comments: true - # - format-test-name # good but painful - - function-always-returns-null: - ignored-invocations: - - useEffect - - map-keys-ordering: - exclude: - - test/** - # - match-class-name-pattern # * OK, we just don't have global config - # - match-getter-setter-field-names # forces API to equals internal code - # - match-lib-folder-structure # maybe later - # - match-positional-field-names-on-assignment # not compatible with avoid-redundant-positional-field-name - - member-ordering: - order: - - public-fields - - private-fields - - public-getters - - private-getters - - public-setters - - private-setters - - constructors - - named-constructors - - public-methods - - private-methods - widgets-order: - - public-fields - - private-fields - - public-getters - - private-getters - - constructors - - named-constructors - - init-state-method - - overridden-public-methods - - public-methods - - private-methods - - build-method - - missing-test-assertion - - move-records-to-typedefs: - min-fields: 3 - min-occurrences: 3 - - move-variable-closer-to-its-usage - - move-variable-outside-iteration - - newline-before-case - - newline-before-return - - no-boolean-literal-compare: - allow-false: true # allows `variable == false` instead of just `!variable` - - no-empty-block - # - no-equal-arguments: # hard to set up so it makes sense - # ignored-parameters: - # - height - # - width - # - top - # - right - # - bottom - # - left - # - topLeft - # - topRight - # - bottomLeft - # - bottomRight - - no-equal-conditions - - no-equal-nested-conditions - - no-equal-switch-case - - no-equal-switch-expression-cases - - no-equal-then-else - #- no-magic-number: # way too strict for default values of parameters etc. - - no-object-declaration - # - parameters-ordering # way too strict - # - prefer-addition-subtraction-assignments # dunno - - prefer-any-or-every - - prefer-async-await - - prefer-both-inlining-annotations - - prefer-bytes-builder - - prefer-commenting-analyzer-ignores - - prefer-conditional-expressions - - prefer-correct-callback-field-name - - prefer-correct-error-name: - allowed-names: - - e - - prefer-correct-for-loop-increment - - prefer-correct-future-return-type - # - prefer-correct-handler-name # not now - # - prefer-correct-identifier-length # way too pedantic - # - prefer-correct-json-casts # overkill - - prefer-correct-setter-parameter-name - - prefer-correct-stream-return-type - - prefer-correct-switch-length - - prefer-correct-test-file-name - - prefer-correct-type-name - - prefer-declaring-const-constructor - - prefer-early-return - - prefer-enums-by-name - - prefer-explicit-function-type - - prefer-explicit-parameter-names - # - prefer-explicit-type-arguments # inference is better - - prefer-first - # - prefer-getter-over-method # way too pedantic - - prefer-immediate-return - - prefer-iterable-of - - prefer-last - - prefer-match-file-name: - exclude: - - test/** - - prefer-moving-to-variable: - allowed-duplicated-chains: 3 - exclude: - - test/** - - prefer-named-boolean-parameters - # - prefer-named-imports # * OK, we just don't have global config - - prefer-null-aware-spread - - prefer-parentheses-with-if-null - # - prefer-prefixed-global-constants # * OK, we just don't have global config - - prefer-public-exception-classes - - prefer-return-await - # - prefer-returning-conditional-expressions # annoying sometimes - - prefer-simpler-patterns-null-check - - prefer-specific-cases-first - - prefer-static-class: - ignore-private: true - ignore-names: - - (.*)Provider - - use(.*) - - prefer-switch-with-enums: - ignore-contains: true - - prefer-test-matchers - - prefer-trailing-comma - # - prefer-type-over-var # we prefer type inference - - prefer-typedefs-for-callbacks - - prefer-unique-test-names - # - prefer-unwrapping-future-or # we are ok with awaiting values - - prefer-visible-for-testing-on-members - - avoid-missing-interpolation: - exclude: - - test/** - # - avoid-missing-test-files # * OK, but should be enabled per project - - avoid-misused-test-matchers - - prefer-wildcard-pattern - # - tag-name # * OK, we just don't have global config - - unnecessary-trailing-comma: - max-width: 80 - - ### Flutter - # - add-copy-with # * OK, we just don't have global config - - always-remove-listener - - avoid-border-all - - avoid-empty-setstate - - avoid-expanded-as-spacer - - avoid-incomplete-copy-with - - avoid-inherited-widget-in-initstate - - avoid-late-context - - avoid-missing-image-alt - - avoid-recursive-widget-calls - - avoid-returning-widgets - - avoid-shrink-wrap-in-lists - - avoid-single-child-column-or-row - - avoid-state-constructors - - avoid-stateless-widget-initialized-fields - - avoid-undisposed-instances - - avoid-unnecessary-overrides-in-state - - avoid-unnecessary-setstate - - avoid-unnecessary-stateful-widgets - - avoid-wrapping-in-padding - - check-for-equals-in-render-object-setters - - consistent-update-render-object - - dispose-fields - - prefer-action-button-tooltip - - prefer-const-border-radius - - prefer-correct-edge-insets-constructor - - prefer-dedicated-media-query-methods - - prefer-define-hero-tag - - prefer-extracting-callbacks - - prefer-single-widget-per-file: - ignore-private-widgets: true - - prefer-sliver-prefix - - prefer-text-rich - - prefer-using-list-view - - prefer-widget-private-members - - proper-super-calls - - use-setstate-synchronously - - ### Provider - - avoid-instantiating-in-value-provider - - avoid-read-inside-build - - avoid-watch-outside-build - - dispose-providers - - prefer-multi-provider - - ### Bloc - - avoid-bloc-public-methods - # - avoid-cubits - # - avoid-passing-bloc-to-bloc - - check-is-not-closed-after-async-gap - - prefer-correct-bloc-provider - - prefer-multi-bloc-provider - - ### Equatable - # - extend-equatable # * OK, we just don't have global config - - list-all-equatable-fields - - ### Flame - not used - # - avoid-creating-vector-in-update - # - avoid-initializing-in-on-mount - # - avoid-redundant-async-on-load - # - correct-game-instantiating - - ### Patrol - - prefer-custom-finder-over-find - - prefer-symbol-over-key - - ### Fake Async - - avoid-async-callback-in-fake-async - - ### Get It - - avoid-functions-in-register-singleton: - severity: error - - ### Flutter Hooks - - avoid-conditional-hooks - - avoid-hooks-outside-build - - prefer-use-prefix - - ### Intl - not used - # - prefer-date-format - # - prefer-intl-name - # - prefer-number-format - # - prefer-providing-intl-description - # - prefer-providing-intl-examples - # - provide-correct-intl-args - - ### Angular - not used - # - avoid-preserve-whitespace-false - # - component-annotation-arguments-ordering - # - prefer-on-push-cd-strategy - - pubspec-rules: - ### Pubspec - - avoid-any-version - # - avoid-dependency-overrides - # - banned-dependencies # * OK, we just don't have global config - - prefer-caret-version-syntax - # - prefer-correct-package-name # * OK, we just don't have global config - - prefer-correct-screenshots - - prefer-publish-to-none - - prefer-semver-version +# version 1.14.0 - https://dcm.dev/changelog/ +dart_code_metrics: + rules: + ### Common + # - arguments-ordering # way too pedantic + - avoid-accessing-collections-by-constant-index + - avoid-accessing-other-classes-private-members + - avoid-async-call-in-sync-function + # - avoid-banned-annotations # * OK, we just don't have global config + # - avoid-banned-file-names # * OK, we just don't have global config + # - avoid-banned-imports # * OK, we just don't have global config + # - avoid-banned-types # * OK, we just don't have global config + # - avoid-barrel-files # for now we use them + - avoid-bottom-type-in-patterns + - avoid-bottom-type-in-records + - avoid-cascade-after-if-null + - avoid-collapsible-if + - avoid-collection-methods-with-unrelated-types + # - avoid-collection-mutating-methods # sometimes it's ok + - avoid-contradictory-expressions + - avoid-declaring-call-method + - avoid-double-slash-imports + - avoid-duplicate-cascades + - avoid-duplicate-collection-elements + - avoid-duplicate-exports + - avoid-duplicate-initializers + - avoid-duplicate-map-keys + - avoid-duplicate-mixins + - avoid-duplicate-named-imports + - avoid-duplicate-patterns + - avoid-duplicate-switch-case-conditions + - avoid-duplicate-test-assertions + - avoid-dynamic + - avoid-empty-test-groups: + include-methods: + - blocTest + - blocPresentationTest + - avoid-equal-expressions + - avoid-excessive-expressions + - avoid-explicit-pattern-field-name + # - avoid-explicit-type-declaration # public API + - avoid-extensions-on-records + - avoid-function-type-in-records + - avoid-future-tostring + - avoid-generics-shadowing + - avoid-global-state + - avoid-identical-exception-handling-blocks + - avoid-ignoring-return-values + - avoid-importing-entrypoint-exports + - avoid-inferrable-type-arguments: + ignored-invocations: + - context.read + - context.watch + - GetIt.I + - avoid-inverted-boolean-checks + - avoid-keywords-in-wildcard-pattern + # - avoid-late-keyword + - avoid-local-functions + # - avoid-long-files # hard to get the right settings + # - avoid-long-functions # way too pedantic + # - avoid-long-parameter-list: # way too pedantic + # ignore-optional: true # exclude optional and (non-required) named parameters + - avoid-long-records + - avoid-map-keys-contains + - avoid-missed-calls + - avoid-missing-enum-constant-in-map + - avoid-misused-wildcard-pattern + - avoid-mixing-named-and-positional-fields + # - avoid-mutating-parameters # we use ValueNotifier etc. + # - avoid-negated-conditions # sometimes it might be better + - avoid-nested-conditional-expressions: + acceptable-level: 2 + - avoid-nested-futures + - avoid-nested-records + - avoid-nested-streams-and-futures + - avoid-nested-switch-expressions + - avoid-nested-switches + - avoid-non-ascii-symbols: + exclude: + - test/** + - avoid-non-null-assertion: + skip-checked-fields: true + exclude: + - test/** + - avoid-not-encodable-in-to-json + - avoid-nullable-interpolation + - avoid-nullable-parameters-with-default-values + - avoid-nullable-tostring + - avoid-one-field-records + - avoid-passing-async-when-sync-expected: + exclude: + - test/** + - avoid-passing-default-values + - avoid-passing-self-as-argument + - avoid-positional-record-field-access + - avoid-recursive-calls + - avoid-redundant-async + - avoid-redundant-else + - avoid-redundant-positional-field-name + - avoid-redundant-pragma-inline + - avoid-referencing-discarded-variables + - avoid-self-assignment + - avoid-self-compare + - avoid-shadowed-extension-methods + - avoid-shadowing: + ignore-parameters: true + ignored-names: + - context + # - avoid-similar-names # way too pedantic + - avoid-substring + - avoid-throw-in-catch-block + - avoid-throw-objects-without-tostring + - avoid-top-level-members-in-tests + - avoid-unassigned-late-fields + - avoid-unassigned-stream-subscriptions + - avoid-uncaught-future-errors + - avoid-unconditional-break + - avoid-unnecessary-call + - avoid-unnecessary-conditionals + - avoid-unnecessary-futures + # - avoid-unnecessary-getter # it's ok to have getter for private field + - avoid-unnecessary-if + - avoid-unnecessary-local-late + - avoid-unnecessary-negations + - avoid-unnecessary-nullable-return-type + - avoid-unnecessary-reassignment + - avoid-unnecessary-return + - avoid-unnecessary-super + - avoid-unnecessary-type-assertions + - avoid-unnecessary-type-casts + - avoid-unrelated-type-assertions + - avoid-unrelated-type-casts + - avoid-unsafe-collection-methods + - avoid-unused-after-null-check + - avoid-unused-generics + - avoid-unused-instances + - avoid-unused-parameters + - avoid-weak-cryptographic-algorithms + - avoid-wildcard-cases-with-enums + # - banned-usage # * OK, we just don't have global config + - binary-expression-operand-order + - double-literal-format + - enum-constants-ordering + - format-comment: + only-doc-comments: true + # - format-test-name # good but painful + - function-always-returns-null: + ignored-invocations: + - useEffect + - map-keys-ordering: + exclude: + - test/** + # - match-class-name-pattern # * OK, we just don't have global config + # - match-getter-setter-field-names # forces API to equals internal code + # - match-lib-folder-structure # maybe later + # - match-positional-field-names-on-assignment # not compatible with avoid-redundant-positional-field-name + - member-ordering: + order: + - public-fields + - private-fields + - public-getters + - private-getters + - public-setters + - private-setters + - constructors + - named-constructors + - public-methods + - private-methods + widgets-order: + - public-fields + - private-fields + - public-getters + - private-getters + - constructors + - named-constructors + - init-state-method + - overridden-public-methods + - public-methods + - build-method + - private-methods + - missing-test-assertion + - move-records-to-typedefs: + min-fields: 3 + min-occurrences: 3 + - move-variable-closer-to-its-usage + - move-variable-outside-iteration + - newline-before-case + - newline-before-return + - no-boolean-literal-compare: + allow-false: true # allows `variable == false` instead of just `!variable` + - no-empty-block + # - no-equal-arguments: # hard to set up so it makes sense + # ignored-parameters: + # - height + # - width + # - top + # - right + # - bottom + # - left + # - topLeft + # - topRight + # - bottomLeft + # - bottomRight + - no-equal-conditions + - no-equal-nested-conditions + - no-equal-switch-case + - no-equal-switch-expression-cases + - no-equal-then-else + #- no-magic-number: # way too strict for default values of parameters etc. + - no-object-declaration + # - parameters-ordering # way too strict + # - prefer-addition-subtraction-assignments # dunno + - prefer-any-or-every + - prefer-async-await + - prefer-both-inlining-annotations + - prefer-bytes-builder + - prefer-commenting-analyzer-ignores + - prefer-conditional-expressions + - prefer-correct-callback-field-name + - prefer-correct-error-name: + allowed-names: + - e + - prefer-correct-for-loop-increment + - prefer-correct-future-return-type + # - prefer-correct-handler-name # not now + # - prefer-correct-identifier-length # way too pedantic + # - prefer-correct-json-casts # overkill + - prefer-correct-setter-parameter-name + - prefer-correct-stream-return-type + - prefer-correct-switch-length + - prefer-correct-test-file-name + - prefer-correct-type-name + - prefer-declaring-const-constructor + - prefer-early-return + - prefer-enums-by-name + - prefer-explicit-function-type + - prefer-explicit-parameter-names + # - prefer-explicit-type-arguments # inference is better + - prefer-first + # - prefer-getter-over-method # way too pedantic + - prefer-immediate-return + - prefer-iterable-of + - prefer-last + - prefer-match-file-name: + exclude: + - test/** + - prefer-moving-to-variable: + allowed-duplicated-chains: 3 + exclude: + - test/** + - prefer-named-boolean-parameters + # - prefer-named-imports # * OK, we just don't have global config + - prefer-null-aware-spread + - prefer-parentheses-with-if-null + # - prefer-prefixed-global-constants # * OK, we just don't have global config + - prefer-public-exception-classes + - prefer-return-await + # - prefer-returning-conditional-expressions # annoying sometimes + - prefer-simpler-patterns-null-check + - prefer-specific-cases-first + - prefer-static-class: + ignore-private: true + ignore-names: + - (.*)Provider + - use(.*) + - prefer-switch-with-enums: + ignore-contains: true + - prefer-test-matchers + - prefer-trailing-comma + # - prefer-type-over-var # we prefer type inference + - prefer-typedefs-for-callbacks + - prefer-unique-test-names + # - prefer-unwrapping-future-or # we are ok with awaiting values + - prefer-visible-for-testing-on-members + - avoid-missing-interpolation: + exclude: + - test/** + # - avoid-missing-test-files # * OK, but should be enabled per project + - avoid-misused-test-matchers + - prefer-wildcard-pattern + # - tag-name # * OK, we just don't have global config + - unnecessary-trailing-comma: + max-width: 80 + + ### Flutter + # - add-copy-with # * OK, we just don't have global config + - always-remove-listener + - avoid-border-all + - avoid-empty-setstate + - avoid-expanded-as-spacer + - avoid-incomplete-copy-with + - avoid-inherited-widget-in-initstate + - avoid-late-context + - avoid-missing-image-alt + - avoid-recursive-widget-calls + - avoid-returning-widgets + - avoid-shrink-wrap-in-lists + - avoid-single-child-column-or-row + - avoid-state-constructors + - avoid-stateless-widget-initialized-fields + - avoid-undisposed-instances + - avoid-unnecessary-overrides-in-state + - avoid-unnecessary-setstate + - avoid-unnecessary-stateful-widgets + - avoid-wrapping-in-padding + - check-for-equals-in-render-object-setters + - consistent-update-render-object + - dispose-fields + - prefer-action-button-tooltip + - prefer-const-border-radius + - prefer-correct-edge-insets-constructor + - prefer-dedicated-media-query-methods + - prefer-define-hero-tag + - prefer-extracting-callbacks + - prefer-single-widget-per-file: + ignore-private-widgets: true + - prefer-sliver-prefix + - prefer-text-rich + - prefer-using-list-view + - prefer-widget-private-members + - proper-super-calls + - use-setstate-synchronously + + ### Provider + - avoid-instantiating-in-value-provider + - avoid-read-inside-build + - avoid-watch-outside-build + - dispose-providers + - prefer-multi-provider + + ### Bloc + - avoid-bloc-public-methods + # - avoid-cubits + # - avoid-passing-bloc-to-bloc + - check-is-not-closed-after-async-gap + - prefer-correct-bloc-provider + - prefer-multi-bloc-provider + + ### Equatable + # - extend-equatable # * OK, we just don't have global config + - list-all-equatable-fields + + ### Flame - not used + # - avoid-creating-vector-in-update + # - avoid-initializing-in-on-mount + # - avoid-redundant-async-on-load + # - correct-game-instantiating + + ### Patrol + - prefer-custom-finder-over-find + - prefer-symbol-over-key + + ### Fake Async + - avoid-async-callback-in-fake-async + + ### Get It + - avoid-functions-in-register-singleton: + severity: error + + ### Flutter Hooks + - avoid-conditional-hooks + - avoid-hooks-outside-build + - prefer-use-prefix + + ### Intl - not used + # - prefer-date-format + # - prefer-intl-name + # - prefer-number-format + # - prefer-providing-intl-description + # - prefer-providing-intl-examples + # - provide-correct-intl-args + + ### Angular - not used + # - avoid-preserve-whitespace-false + # - component-annotation-arguments-ordering + # - prefer-on-push-cd-strategy + + pubspec-rules: + ### Pubspec + - avoid-any-version + # - avoid-dependency-overrides + # - banned-dependencies # * OK, we just don't have global config + - prefer-caret-version-syntax + # - prefer-correct-package-name # * OK, we just don't have global config + - prefer-correct-screenshots + - prefer-publish-to-none + - prefer-semver-version diff --git a/packages/netglade_analysis/pubspec.yaml b/packages/netglade_analysis/pubspec.yaml index 037d519..60417b7 100644 --- a/packages/netglade_analysis/pubspec.yaml +++ b/packages/netglade_analysis/pubspec.yaml @@ -1,5 +1,5 @@ name: netglade_analysis -version: 7.0.0 +version: 8.0.0 description: Lint rules for Dart and Flutter used internally at netglade. repository: https://github.com/netglade/flutter_core/tree/main/packages/netglade_analysis issue_tracker: https://github.com/netglade/flutter_core/issues