Commit Graph

16 Commits

Author SHA1 Message Date
Sergey Penkovsky
a9c95f6a89 docs+feat: add Disposable interface source and usage example
feat(core,doc): unified async dispose mechanism for resource cleanup

BREAKING CHANGE:

- Added full support for asynchronous resource cleanup via a unified FutureOr<void> dispose() method in the Disposable interface.
- The Scope now provides only Future<void> dispose() for disposing all tracked resources and child scopes (sync-only dispose() was removed).
- All calls to cleanup in code and tests (scope itself, subscopes, and custom modules) now require await ...dispose().
- Documentation and all examples updated: resource management is always async and must be awaited; Disposable implementers may use both sync and async cleanup.
- Old-style, synchronous cleanup methods have been completely removed (API is now consistently async for all DI lifecycle management).
- Example and tutorial code now demonstrate async resource disposal patterns.
2025-08-08 16:08:29 +03:00
Sergey Penkovsky
44a8a3fcb2 chore(pubspec): update pubspec and lock files for all packages, version bump and deps sync 2025-08-07 16:28:47 +03:00
Sergey Penkovsky
1682ed9c08 Update benchmarks, lock files, and related documentation 2025-08-01 08:40:10 +03:00
Sergey Penkovsky
724dc9b3b5 Update lock files for dependency consistency 2025-08-01 08:30:53 +03:00
Sergey Penkovsky
5220ebc4b9 feat(generator): complete code generation testing framework with 100% test coverage
BREAKING CHANGE: Updated file extensions and dependencies for better compatibility

## 🎯 Major Features Added:
-  Complete test suite for ModuleGenerator (66 integration tests)
-  Complete test suite for InjectGenerator (66 integration tests)
-  Comprehensive unit tests for BindSpec, MetadataUtils
-  195 total tests across all packages (100% passing)

## 🔧 Technical Improvements:
- feat(generator): add comprehensive integration tests for code generation
- feat(generator): implement BindSpec unit tests with full coverage
- feat(generator): add MetadataUtils unit tests for annotation processing
- fix(generator): update file extensions to avoid conflicts (.module.cherrypick.g.dart)
- fix(generator): correct part directive generation in templates
- fix(generator): resolve dart_style 3.x formatting compatibility

## 📦 Dependencies & Configuration:
- build(deps): upgrade analyzer to ^7.0.0 for Dart 3.5+ compatibility
- build(deps): upgrade dart_style to ^3.0.0 for modern formatting
- build(deps): upgrade source_gen to ^2.0.0 for latest features
- config(build): update build.yaml with new file extensions
- config(melos): optimize test commands for better performance

## 🐛 Bug Fixes:
- fix(examples): correct local package paths in client_app and postly
- fix(analysis): exclude generated files from static analysis
- fix(generator): remove unused imports and variables
- fix(tests): add missing part directives in test input files
- fix(tests): update expected outputs to match dart_style 3.x format

## 🚀 Performance & Quality:
- perf(tests): optimize test execution time (132 tests in ~1 second)
- quality: achieve 100% test coverage for code generation
- quality: eliminate all analyzer warnings and errors
- quality: ensure production-ready stability

## 📋 Test Coverage Summary:
- cherrypick: 61 tests 
- cherrypick_annotations: 1 test 
- cherrypick_generator: 132 tests 
- cherrypick_flutter: 1 test 
- Total: 195 tests (100% passing)

## 🔄 Compatibility:
-  Dart SDK 3.5.2+
-  Flutter 3.24+
-  melos + fvm workflow
-  build_runner integration
-  Modern analyzer and formatter

This commit establishes CherryPick as a production-ready dependency injection
framework with enterprise-grade testing and code generation capabilities.
2025-06-11 18:34:19 +03:00
Sergey Penkovsky
bc28ff79ef chore: update deps and up to flutter sdk 3.29.3 and dart >=3.7.0 2025-05-28 00:02:23 +03:00
Sergey Penkovsky
1f6ee172a1 starting implement inject generator 2025-05-23 12:21:23 +03:00
Sergey Penkovsky
0fd10488f3 update deps 2025-05-23 08:06:28 +03:00
Sergey Penkovsky
fc941c0041 update deps 2025-05-22 23:50:55 +03:00
Sergey Penkovsky
7914d91653 refactor module generator 2025-05-20 19:50:13 +03:00
Sergey Penkovsky
b906e927c3 start implement generator code 2025-05-19 16:11:41 +03:00
Sergey Penkovsky
53dd4a1005 add provide typedef 2025-05-19 10:36:26 +03:00
Sergey Penkovsky
e6f9b13ea4 fix readme and freez deps 2025-05-19 10:26:45 +03:00
Sergey Penkovsky
bf1b0bd215 fix build scripts 2025-05-18 16:41:48 +03:00
Sergey Penkovsky
0c5db63961 fixed warnings 2025-05-16 17:57:40 +03:00
Sergey Penkovsky
cb5f0b23d2 implement example 2025-05-16 17:32:26 +03:00