- Added detailed async resolve tracing through CherrypickObserver in _sharedAsyncResolveCurrentScope: logs for request, cache HIT/MISS, start/success/error, and circular dependency detection.
- Improved and extended documentation (docstrings) for private cache fields, paramsToKey, cacheKey, _sharedAsyncResolveCurrentScope, and other internal Scope methods.
- Fixed an unused stack trace variable to resolve linter warning.
- Improved code readability and diagnostic coverage.
- Updated related tests: cycle_detector_test and scope_test for better clarity.
- Updated pubspec.lock as a side effect of technical changes.
BREAKING CHANGE:
Additional diagnostic log messages are now produced during async DI resolution. If you rely on log output parsing or trace handling, adjust your tools for new async trace events.
The main installation guide now recommends pub.dev with ^latest tags. Removed the outdated GitHub install block for clarity and simplicity. No functional code changes.
Added information about the talker_cherrypick_logger official module in the Additional Modules table in README. This module provides seamless DI event logging integration with the Talker logging framework.
- Added comprehensive English documentation for all DI generator and support files:
* inject_generator.dart — full class/method doc-comments, usage samples
* module_generator.dart — doc-comments, feature explanation, complete example
* src/annotation_validator.dart — class and detailed static method descriptions
* src/type_parser.dart — doc, example for ParsedType and TypeParser, specific codegen notes
* src/bind_spec.dart — interface, static factory, and codegen docs with DI scenarios
* src/bind_parameters_spec.dart — details and samples for code generation logic
* src/metadata_utils.dart — full doc and examples for annotation utilities
* src/exceptions.dart — user- and contributor-friendly errors, structured output, category explanations
* src/generated_class.dart — usage-centric doc-comments, example of resulting generated DI class
- Removed Russian/duplicate comments for full clarity and maintainability
- Ensured that new and existing contributors can easily extend and maintain DI code generation logic
BREAKING CHANGE: All documentation now English-only; comments include usage examples for each principal structure or routine
See #docs, #generator, #cherrypick
- Updated all annotation files with complete English DartDoc, field/class/method usage, practical code samples
- Unified documentation style for @inject, @injectable, @instance, @singleton, @named, @scope, @params, @provide, @module
- Removed Russian comments for clarity and consistency
- Improved discoverability and IDE/autocomplete experience for CherryPick DI users
- No functional or API changes; documentation/dev experience only
- Replaced all comments with complete DartDoc in English for CherryPickProvider
- Documented all methods (constructor, of, openRootScope, openSubScope, updateShouldNotify)
- Added code samples for typical Flutter+CherryPick integration, root and subscope usage
- Makes Flutter DI integration intuitive for new users and improves IDE support
- No logic or API changes, documentation only
- Full English API/class/method documentation for core CherryPick classes:
* Binding<T>
* BindingResolver<T>
* CycleDetector and CycleDetectionMixin
* GlobalCycleDetector and GlobalCycleDetectionMixin
* Factory<T>
* Module
* Scope
- Each public and private method is now documented in clear DartDoc style with usages
- Added code samples for modules, scope, subscopes, DI resolve/async, cycle detection
- Russian comments completely replaced with English for consistency
- NO logic or API changes, documentation and devex improvement only
Also updated: pubspec.lock for workspace/example folders (auto by dependency changes)
- Call observer.onInstanceDisposed for every removed/cleaned-up instance in Scope lifecycle
- Makes instance disposal fully observable outside of cache events
- Ensures analytics/logging frameworks get notified of each object removal from memory
Part of complete CherryPickObserver integration for transparent diagnostics and monitoring of DI container.
BREAKING CHANGE:
- Removed the deprecated CherryPickLogger interface from cherrypick
- Logger/adapters (e.g., talker_cherrypick_logger) must now implement CherryPickObserver
- talker_cherrypick_logger: replace TalkerCherryPickLogger with TalkerCherryPickObserver
- All usages, docs, tests migrated to observer API
- Improved test mocks and integration tests for observer pattern
- Removed obsolete files: cherrypick/src/logger.dart, talker_cherrypick_logger/src/talker_cherrypick_logger.dart
- Updated README and example usages for new CherryPickObserver model
This refactor introduces a unified observer pattern (CherryPickObserver) to handle all DI lifecycle events, replacing the limited info/warn/error logger pattern.
All external logging adapters and integrations must migrate to use CherryPickObserver.
- Introduce an 'Additional Modules' section before 'Contributing'
- Document cherrypick_annotations, cherrypick_generator, and cherrypick_flutter with pub.dev and README links
- Move and consolidate 'Advanced Features' sections, including Logging, Circular Dependency Detection, Hierarchical Subscopes, and Performance Improvements
- Reword and reorganize 'Disposable' and 'Dependency Resolution API' sections
- Clean up list styling and table of contents for accuracy
- Add clarity to documentation links and info blocks