Skip to content

Release 6.0.0 as hedgehoglab_flutter_analysis - #1

Merged
hedgehogowainbrown merged 2 commits into
mainfrom
feature/hedgehoglab-6.0.0
Oct 9, 2026
Merged

hedgehogowainbrown merged 2 commits into
mainfrom
feature/hedgehoglab-6.0.0

Conversation

@hedgehogowainbrown

Copy link
Copy Markdown

What and why

The org fork was identical to netsells/flutter-analysis 5.0.0 (last changed 2023). This turns it into hedgehog lab's maintained lint package, so a project adopts the standard configuration with one include: line instead of copying rules inline (as bnf-flutter did).

The package is renamed to hedgehoglab_flutter_analysis. Historical analysis_options.1.0.0 to 5.0.0 files are untouched. New lib/analysis_options.6.0.0.yaml is 5.0.0 minus ten rules, plus flutter_style_todos, strict-casts/strict-inference/strict-raw-types, and excludes for generated code and the platform directories. Netsells' severity overrides are kept (all still valid). lib/analysis_options.yaml now points at 6.0.0. README rewritten (adoption, versioning policy, migration from netsells_flutter_analysis and from inline copies, attribution); CHANGELOG has a 6.0.0 entry; LICENSE keeps the Netsells line and adds hedgehog lab's.

Rules dropped, checked against dart.dev's linter pages (not just the list I was given): removed in Dart 3 are always_require_non_null_named_parameters, avoid_returning_null, avoid_returning_null_for_future, iterable_contains_unrelated_type, list_remove_unrelated_type, package_api_docs, prefer_equal_for_default_values; deprecated (replaced or no longer useful) are avoid_null_checks_in_equality_operators, avoid_private_typedef_functions, unnecessary_await_in_return. All other 160 rules are listed as Stable (or Experimental: no_default_cases, use_late_for_private_fields_and_variables, use_super_parameters, left alone). One page lookup 404'd for no_runtimeType_toString because the URL is lower-cased; the analyser recognises the rule.

Decisions:

  • lines_longer_than_80_chars stays. It matches dart format's default page width and catches what the formatter cannot wrap (long strings and comments). Projects with a custom page_width can override it; no reason to churn it.
  • The 5.0.0 excludes lib/**.*.dart and test/**.*.dart are replaced by explicit generated-file globs. The old ones silently excluded any hand-written file with a dotted name.
  • SDK floor moves to Dart 3.13 (the only version verified). publish_to: none; the package is consumed by git tag.
  • pana job dropped: it scores pub.dev publishing hygiene and the package is never published, so it only added noise.
  • .github/CODEOWNERS deleted: it named @netsells/flutter, a team that does not exist in this org. Question for the owner: who should own this repo?

Verification

Run with Flutter 3.47.0 / Dart 3.13.0:

  • dart format --output=none --set-exit-if-changed . : 0 changed.
  • dart analyze --fatal-infos . and dart analyze --fatal-infos example : No issues found, no undefined_lint/removed_lint/deprecated_lint/included_file_warning.
  • A scratch project depending on the package by path and including analysis_options.6.0.0.yaml reports the strict-mode errors and flutter_style_todos, so the include works end to end.
  • Caveat found: Dart 3.13 does not emit removed_lint/deprecated_lint for the ten rules above (it accepts them silently); only genuinely unknown names give undefined_lint. So the analyser alone cannot prove "no removed rules". CI therefore also greps the latest versioned file for those ten names, in addition to failing on the three diagnostics. The denylist needs extending when new rules are removed.

CI is rewritten: actions/checkout@v7, subosito/flutter-action@v2 (stable), format and --fatal-infos analyse on root and example, plus the lint-diagnostics step.

Out of scope

Analyzer plugins, riverpod_lint and metrics (follow-up PR). No tag is created.

Recommendations

  • Rename the GitHub repo to hedgehoglab-flutter-analysis (or similar) to match the package name; GitHub redirects old URLs. Not done here.
  • After merge, tag 6.0.0. BNF can then adopt with the git dependency (ref: 6.0.0) and one line: include: package:hedgehoglab_flutter_analysis/analysis_options.6.0.0.yaml. Expect new findings from the strict modes.

🤖 Generated with Claude Code

hedgehogowainbrown and others added 2 commits October 9, 2026 14:38
Rename the package, add analysis_options.6.0.0.yaml (5.0.0 minus rules
removed or deprecated in Dart 3, plus flutter_style_todos, strict language
modes and generated-code and platform excludes), modernise CI, and rewrite
the README and CHANGELOG.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hedgehogowainbrown

Copy link
Copy Markdown
Author

Update: CODEOWNERS now assigns the whole repository to @hedgehoglab-engineering/flutter-team (b93a073), replacing the deleted Netsells entry. Note the team doesn't yet have write access to this repository, which GitHub requires for a code owner entry to take effect; an org or repo admin needs to grant it (Settings → Collaborators and teams).

@hedgehogowainbrown
hedgehogowainbrown merged commit 259a4c7 into main Oct 9, 2026
1 check passed
@hedgehogowainbrown
hedgehogowainbrown deleted the feature/hedgehoglab-6.0.0 branch October 10, 2026 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant