flutter_keycheck 2.0.3
flutter_keycheck: ^2.0.3 copied to clipboard
A CLI tool for verifying presence of ValueKey elements and test dependencies in Flutter projects.
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.
2.0.3 - 2025-01-03 #
๐ฏ Final Stable Release - Production Ready #
๐ง Bug Fixes
- Fixed CI/CD workflows for CLI tool validation
- Improved error handling for edge cases
- Optimized configuration file loading
๐ฆ CI/CD Improvements
- Adapted GitHub Actions for CLI tool specifics
- Added graceful handling of validation results
- Enhanced workflow reliability
2.0.0 - 2025-01-03 #
๐ Major Release - Advanced Configuration & CI Integration #
๐ New Features
- Custom Configuration Files:
--config
flag for specifying custom config files - Key Generation:
--generate-keys
flag to auto-generate expected keys from existing project - Fail on Extra Keys:
--fail-on-extra
flag for strict validation in CI environments - Report Generation:
--report json|markdown
for generating structured reports - Advanced CI Integration: Ready-to-use GitHub Actions, GitLab CI, Bitrise, and Jenkins examples
โจ Enhanced Configuration Support
- Added support for
.flutter_keycheck.yaml
configuration files - New
FlutterKeycheckConfig
class withfail_on_extra
support - Beautiful colored output when config file is loaded:
๐ Loaded config from .flutter_keycheck.yaml โ
- CLI arguments take priority over config file settings
- Path validation for keys files and source directories
๐ง CI/CD Ready
- Comprehensive GitHub Actions workflows with security scanning
- Performance impact analysis for key count
- Automated key generation and updates
- Pull request reporting with detailed analysis
- Multi-environment support (dev/staging/prod)
๐ Advanced Validation
- Enhanced verbose output with configuration details
- Better error messages with actionable suggestions
- Graceful handling of missing files and invalid configurations
- Support for custom config file paths
๐งช Quality Improvements
- Expanded test suite with 19+ comprehensive test cases
- Documentation for all edge cases and error scenarios
- Real-world CI integration examples
- Best practices guide for key organization
๐ Documentation
- Complete CI integration guide with multiple platforms
- Advanced usage examples and troubleshooting
- Key naming conventions and organizational patterns
- Security considerations for sensitive key detection
1.0.7 - 2025-01-03 #
โจ Enhanced Dependency Reporting #
- Added detailed dependency status reporting with individual checks
- New
DependencyStatus
class for granular dependency information - Improved dependency output showing specific status for each dependency
- Enhanced error messages to show exactly which dependencies are missing vs found
๐ง Technical Improvements
- Better user experience with clear dependency status indicators
- Updated tests to work with new dependency status structure
- Cleaned up temporary test files and improved gitignore
๐ Bug Fixes
- Fixed dependency checking to show individual status instead of generic "missing dependencies"
- Resolved linting version conflicts (upgraded to lints ^4.0.0)
1.0.6 - 2025-01-03 #
๐ง Platform Compatibility #
- Added explicit documentation about web/WASM incompatibility
- Clarified that this is a CLI tool designed for desktop platforms only
- Improved pub.flutter-io.cn platform support documentation
1.0.5 - 2025-01-03 #
๐ค Automation #
- Added automated publishing workflow for pub.flutter-io.cn
- Now supports publishing via git tags (e.g.,
git tag v1.0.5
) - Streamlined release process with GitHub Actions
1.0.4 - 2025-01-03 #
๐ง Platform Support #
- Added explicit platform constraints in pubspec.yaml (Linux, macOS, Windows)
- Clarified that this CLI tool is not compatible with Web/WASM by design (uses dart:io)
- Improved pub.flutter-io.cn platform support scoring
1.0.3 - 2025-01-03 #
๐ Documentation
- Added comprehensive dartdoc comments for better API documentation
- Created example/ directory with sample usage
- Added example Flutter app with ValueKey usage
- Improved pub.flutter-io.cn score compliance
1.0.2 - 2025-01-03 #
๐ Bug Fixes #
- Fixed dependency version conflict: downgraded lints from ^5.0.0 to ^3.0.0 for Dart 3.2.0 compatibility
- Fixed GitHub Actions workflow paths and YAML syntax
1.0.1 - 2025-01-03 #
๐ Bug Fixes
- Fixed release date in changelog from placeholder to actual date
1.0.0 - 2025-01-03 #
๐ Initial Release #
โจ Features
-
Key Validation Engine: Comprehensive Flutter key detection and validation
- Support for
ValueKey
andKey
declarations - Support for
find.byValueKey
,find.bySemanticsLabel
,find.byTooltip
finders - Regex-based pattern matching for accurate key detection
- Support for
-
Project Dependency Validation
- Automatic detection of
integration_test
dependency - Automatic detection of
appium_flutter_server
dependency - Validation of proper integration test setup
- Automatic detection of
-
CLI Interface
--keys
flag for specifying YAML key definitions--path
flag for custom project paths--strict
mode for catching extra keys--verbose
flag for detailed output
-
YAML Configuration Support
- Simple key list format
- Support for dynamic keys with placeholders
- Comments and organization support
-
Beautiful Console Output
- Colorful ANSI output with emojis
- Structured sections for different validation types
- Clear success/failure indicators
- File path reporting for found keys
๐ ๏ธ Technical Features
- Cross-platform compatibility (Windows, macOS, Linux)
- Recursive directory scanning
- Efficient regex-based key detection
- Comprehensive error handling
- Unit test coverage
๐ฆ Package Structure
- Clean library API with
KeyChecker
class - Separated CLI and core functionality
- Example project with integration tests
- Comprehensive documentation
๐งช Testing & Quality
- Unit tests for core functionality
- Integration test examples
- Linting with
package:lints
- Code coverage reporting
๐ Getting Started #
dart pub global activate flutter_keycheck
flutter_keycheck --keys expected_keys.yaml
๐ Requirements #
- Dart SDK >= 3.2.0
- Flutter project with integration tests (for full validation)
Future Roadmap #
๐ฎ Planned Features (v1.1.0+) #
- โ Auto-generation of
expected_keys.yaml
from existing code - โ Support for additional finder methods (
find.text
,find.byIcon
) - โ HTML/Markdown report generation
- โ Monorepo support with multiple
pubspec.yaml
files - โ Auto-fix capabilities for missing keys
- โ Plugin architecture for custom checkers
- โ Integration with popular CI/CD platforms
๐ก Ideas Under Consideration #
- JSON configuration format support
- Key usage analytics and statistics
- Integration with Flutter Inspector
- VS Code extension for real-time validation
- GitHub App for automated PR checks
For the complete list of changes, see the commit history.