saropa_lints 1.1.11
saropa_lints: ^1.1.11 copied to clipboard
1,000+ custom lint rules for Flutter and Dart. The most comprehensive lint package available. Free and open source. 5 tiers from Essential to Insanity.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
1.1.11 - 2025-01-05 #
Changed #
- Breaking: New tier configuration system using Dart code instead of YAML includes
custom_lintdoesn't followinclude:directives, so tiers are now defined in Dart- Configure via
custom_lint: saropa_lints: tier: recommendedin analysis_options.yaml - Individual rules can still be overridden on top of tier selection
- Tiers: essential, recommended, professional, comprehensive, insanity
Added #
lib/src/tiers.dartwith rule sets for each tier defined as Dart constantsgetRulesForTier(String tier)function for tier-based rule resolution
Removed #
- YAML-based tier configuration (include directives were not being followed by custom_lint)
1.1.10 - 2025-01-05 #
Fixed #
- Added
license: MITfield to pubspec.yaml for proper pub.flutter-io.cn display
1.1.9 - 2025-01-05 #
Added #
- Quick fixes for 37+ lint rules (IDE code actions to resolve issues)
ROADMAP.mdwith specifications for ~500 new rules to reach 1000 totalENTERPRISE.mdwith business value, adoption strategy, and professional services info- "Why saropa_lints?" section in README explaining project motivation
- Contact emails:
lints@saropa.com(README),dev@saropa.com(CONTRIBUTING),enterprise@saropa.com(ENTERPRISE)
Changed #
- README: Updated rule counts to reflect 1000-rule goal
- README: Tier table now shows target distribution (~100/~300/~600/~800/1000)
- README: Added migration guide links in Quick Start section
- Reorganized documentation structure
CONTRIBUTING.md: Updated quick fix requirements documentationENTERPRISE.md: Added migration FAQ with links to guides
Removed #
doc/PLAN_LINT_RULES_AND_TESTING.md(replaced byROADMAP.md)doc/SAROPA_LINT_RULES_GUIDE.md(replaced byENTERPRISE.md)
0.1.8 - 2025-01-05 #
Added #
- Test infrastructure with unit tests (
test/) and lint rule fixtures (example/lib/) - Unit tests for plugin instantiation
- Lint rule test fixtures for
avoid_hardcoded_credentials,avoid_unsafe_collection_methods,avoid_unsafe_reduce TEST_PLAN.mddocumenting testing strategy- CI workflow for GitHub Actions (analyze, format, test)
- Style badge for projects using saropa_lints
- CI status badge in README
- Badge section in README with copy-paste markdown for users
- Migration guide for very_good_analysis users (
docs/migration_from_vga.md)
Changed #
- Publish script now runs unit tests and custom_lint tests before publishing
- README: More welcoming tone, clearer introduction
- README: Added link to VGA migration guide
- README: Added link to DCM migration guide
- Updated SECURITY.md for saropa_lints package (was templated for mobile app)
- Updated links.md with saropa_lints development resources
- Added
analysis_options.yamlto excludeexample/from main project analysis
Fixed #
- Doc reference warnings in rule comments (
[i],[0],[length-1])
0.1.7 - 2025-01-05 #
Fixed #
- Critical:
getLintRules()now reads tier configuration fromcustom_lint.yaml- Previously ignored
configsparameter and used hard-coded 25-rule list - Now respects rules enabled/disabled in tier YAML files (essential, recommended, etc.)
- Supports
enable_all_lint_rules: trueto enable all 500+ rules
- Previously ignored
0.1.6 - 2025-01-05 #
Fixed #
- Updated for analyzer 8.x API (requires
>=8.0.0 <10.0.0)- Reverted
ErrorSeverityback toDiagnosticSeverity - Reverted
ErrorReporterback toDiagnosticReporter - Reverted
NamedType.name2back toNamedType.name - Changed
enclosingElement3toenclosingElement
- Reverted
0.1.5 - 2025-01-05 #
Fixed #
- Fixed
MethodElement.enclosingElement3error -MethodElementrequires cast toElementforenclosingElement3access - Expanded analyzer constraint to support version 9.x (
>=6.0.0 <10.0.0)
0.1.4 - 2025-01-05 #
Fixed #
- Breaking compatibility fix: Updated all rule files for analyzer 7.x API changes
- Migrated from
DiagnosticSeveritytoErrorSeverity(31 files) - Migrated from
DiagnosticReportertoErrorReporter(31 files) - Updated
NamedType.nametoNamedType.name2for AST type access (12 files) - Updated
enclosingElementtoenclosingElement3(2 files) - Fixed
Element2/Elementtype inference issue
- Migrated from
- Suppressed TODO lint warnings in documentation examples
Changed #
- Now fully compatible with
analyzer ^7.5.0andcustom_lint ^0.8.0
0.1.3 - 2025-01-05 #
Fixed #
- Removed custom documentation URL so pub.flutter-io.cn uses its auto-generated API docs
0.1.2 - 2025-01-05 #
Added #
- New formatting lint rules:
AvoidDigitSeparatorsRule- Flag digit separators in numeric literalsFormatCommentFormattingRule- Enforce consistent comment formattingMemberOrderingFormattingRule- Enforce class member orderingPreferSortedParametersRule- Prefer sorted parameters in functions
- Export all rule classes for documentation generation
- Automated publish script for pub.flutter-io.cn releases
Changed #
- Renamed
ParametersOrderingRuletoParametersOrderingConventionRule - Updated README with accurate rule count (497 rules)
- Simplified README messaging and performance guidance
0.1.0 - 2024-12-27 #
Added #
- Initial release with 475 lint rules
- 5 tier configuration files:
essential.yaml(~50 rules) - Crash prevention, memory leaks, securityrecommended.yaml(~150 rules) - Performance, accessibility, testing basicsprofessional.yaml(~350 rules) - Architecture, documentation, comprehensive testingcomprehensive.yaml(~700 rules) - Full best practicesinsanity.yaml(~1000 rules) - Every rule enabled
- Rule categories:
- Accessibility (10 rules)
- API & Network (7 rules)
- Architecture (7 rules)
- Async (20+ rules)
- Class & Constructor (15+ rules)
- Code Quality (20+ rules)
- Collection (15+ rules)
- Complexity (10+ rules)
- Control Flow (15+ rules)
- Debug (5+ rules)
- Dependency Injection (8 rules)
- Documentation (8 rules)
- Equality (10+ rules)
- Error Handling (8 rules)
- Exception (10+ rules)
- Flutter Widget (40+ rules)
- Formatting (10+ rules)
- Internationalization (8 rules)
- Memory Management (7 rules)
- Naming & Style (20+ rules)
- Numeric Literal (5+ rules)
- Performance (25 rules)
- Record & Pattern (5+ rules)
- Resource Management (7 rules)
- Return (10+ rules)
- Security (8 rules)
- State Management (10 rules)
- Structure (10+ rules)
- Test (15+ rules)
- Testing Best Practices (7 rules)
- Type (15+ rules)
- Type Safety (7 rules)
- Unnecessary Code (15+ rules)
Notes #
- Built on
custom_lint_builder: ^0.8.0 - Compatible with Dart SDK >=3.1.0 <4.0.0
- MIT licensed - free for any use