Sergey Penkovsky
cd1b9cf49d
fix(comment): fix warnings
2025-08-08 23:42:35 +03:00
Sergey Penkovsky
33775f5748
fix(license): correct urls
2025-08-08 23:24:05 +03:00
Sergey Penkovsky
40b3cbb422
chore(release): publish packages
...
- cherrypick@3.0.0-dev.6
- cherrypick_flutter@1.1.3-dev.6
cherrypick_flutter-v1.1.3-dev.6
cherrypick-v3.0.0-dev.6
2025-08-08 16:23:13 +03:00
Sergey Penkovsky
61f2268d63
fix(riverpod-adapter): update implementation in riverpod_adapter.dart
2025-08-08 15:08:27 +03:00
Sergey Penkovsky
f6fcb76730
docs(benchmark): update DI benchmark reports with new scenario tables and updated explanations
2025-08-08 15:02:45 +03:00
Sergey Penkovsky
f8bbaf6c2c
Merge pull request #18 from pese-git/logger
...
Logger
2025-08-08 14:27:53 +03:00
Sergey Penkovsky
2ebc997fea
docs(readme): add comprehensive DI state and action logging to features
2025-08-08 13:40:39 +03:00
Sergey Penkovsky
d15f3063fc
hotfix
2025-08-08 12:49:12 +03:00
Sergey Penkovsky
1e8b8db64a
docs(helper): add complete DartDoc with real usage examples for CherryPick class
2025-08-08 12:43:09 +03:00
Sergey Penkovsky
c3ec52823e
fix: improve global cycle detector logic
2025-08-08 12:24:07 +03:00
Sergey Penkovsky
16e05d27c5
docs(log_format): add detailed English documentation for formatLogMessage function
2025-08-08 11:28:12 +03:00
Sergey Penkovsky
1131be44da
feat(core): refactor root scope API, improve logger injection, helpers, and tests
...
- BREAKING CHANGE: introduce CherryPick.openRootScope
- add logger injection to Scope
- refactor helper and scope logic
- improve internal logging
- enhance and update tests
- add log_format.dart module
2025-08-08 11:24:03 +03:00
Sergey Penkovsky
c971b59483
feat(postly): add explicit PrintLogger setup in main.dart for debug builds
2025-08-08 08:24:19 +03:00
Sergey Penkovsky
aa97632add
feat(logger): add extensible logging API, usage examples, and bilingual documentation
...
- Introduce CherryPickLogger interface, PrintLogger and SilentLogger implementations
- Add setGlobalLogger() to CherryPick API for custom DI logging
- Log key events (scope, module, error) via logger throughout DI lifecycle
- Comprehensive comments and code documentation in both English and Russian
- Document usage of logging system in quick_start and full_tutorial documentation (EN/RU)
- Provide usage examples in docs and code comments
- No logging inside GlobalCycleDetectionMixin (design choice: exceptions handled at Scope, not detector/mixin level) and detailed architectural reasoning
- Update helper.dart, logger.dart: comments, examples, API doc improvements
BREAKING CHANGE: Projects can now inject any logger via CherryPick.setGlobalLogger; default log behavior clarified and docstrings/usage examples enhanced
2025-08-08 08:24:13 +03:00
Sergey Penkovsky
41d49e98d0
docs(report): update comparative DI benchmark results and conclusions for cherrypick, get_it, riverpod (eng, ru)
2025-08-07 16:46:53 +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
475deac1e0
chore(release): publish packages
...
- cherrypick@3.0.0-dev.5
- cherrypick_flutter@1.1.3-dev.5
cherrypick-v3.0.0-dev.5
cherrypick_flutter-v1.1.3-dev.5
2025-08-07 16:23:12 +03:00
Sergey Penkovsky
f06f4564d9
Merge pull request #15 from pese-git/improve
...
perf(scope): speed up dependency lookup with Map-based binding resolv…
2025-08-07 16:19:11 +03:00
Sergey Penkovsky
70731c7e94
refactor(scope): simplify _findBindingResolver<T> with one-liner and optional chaining
...
The function is now shorter, more readable and uses modern Dart null-safety idioms. No functional change.
2025-08-07 15:48:04 +03:00
Sergey Penkovsky
4d5f96705f
Merge pull request #17 from pese-git/impr/complex_benchmark_impr
...
impr: BENCHMARK - complex benchmark improvements.
2025-08-07 15:01:27 +03:00
yarashevich_kv
d23d06f98e
impr: BENCHMARK - fix for CherrypickDIAdapter.
2025-08-07 14:55:07 +03:00
Sergey Penkovsky
e1371f7038
docs: update architecture diagram in README to show adapter-centric universalRegistration pattern
2025-08-07 14:37:34 +03:00
Sergey Penkovsky
75db42428c
docs: update README (en/ru) to reflect adapter-based universalRegistration pattern
...
- Show type-safe DIAdapter-centric registration for all scenarios
- Document new way to add scenarios/DI via universalRegistration<S extends Enum>
- Remove legacy function-based registration/manual switching from guide
- Provide examples for Dart and CLI usage with all DI adapters
2025-08-07 14:23:06 +03:00
Sergey Penkovsky
5336c22550
test: validate all benchmark scenarios and stress runs for all DI adapters
...
- Successfully executed all scenarios (register, chain, asyncChain, named, override, etc) for Cherrypick, GetIt, and Riverpod
- Verified correct integration of fully generic DIAdapter & universalRegistration architecture
- Ensured type-safety in all setup/registration flows after complete refactor
- All benchmarks run and pass under stress/load params for each DI adapter
2025-08-07 14:18:16 +03:00
Sergey Penkovsky
56bdb3946e
refactor: full generic DIAdapter workflow & universalRegistration abstraction
...
- Made UniversalChainBenchmark and UniversalChainAsyncBenchmark fully generic with strong typing for DIAdapter<TContainer>
- Moved all universalRegistration logic inside adapters; removed global function and typedef
- Replaced dynamic/object-based registration with type-safe generic contracts end-to-end
- Updated CLI and usage: all DI and scenarios are invoked via type-safe generics
- Fixed all analysis errors, Riverpod async/future usages, and imports for full Dart 3 compatibility
- All benchmarks fully pass for Cherrypick, GetIt, and Riverpod adapters
2025-08-07 14:11:29 +03:00
Sergey Penkovsky
54446868e4
refactor: unify DIAdapter with generics, ensure type-safety & scalability in benchmark_di
...
- Refactor DIAdapter to generic abstract class; align interfaces for Cherrypick, GetIt, Riverpod.
- Remove all dynamic/object usage from dependency registration and bench scenarios.
- Universal getUniversalRegistration function now fully type-safe for all DIs.
- Fix teardown and lifecycle for RiverpodAdapter to prevent disposed Container errors.
- Update CLI and benchmark entry points; validated all scenarios and stress modes for each DI adapter.
2025-08-07 13:45:16 +03:00
Sergey Penkovsky
590b876cf4
feat: add Riverpod adapter, async-chain support via FutureProvider, full DI CLI/bench integration, benchmarking, ascii performance graphs in markdown
2025-08-07 13:12:56 +03:00
Sergey Penkovsky
f7a7ea4384
feat: full di benchmarks report (en/ru) + get_it scope+override support fix; fresh results for all scenarios and settings
2025-08-07 12:11:16 +03:00
Sergey Penkovsky
6b6564f8c3
refactor: rename benchmark_cherrypick to benchmark_di, update paths, pubspec, imports, and documentation
2025-08-07 10:34:50 +03:00
Sergey Penkovsky
da79f1e546
docs: update README.md and README.ru.md for universal DI benchmarks, scenarios, CLI options, and architecture diagram
2025-08-07 10:16:14 +03:00
Sergey Penkovsky
64f33b20a7
fix: universal benchmarks and DI registration; proper named binding; robust override support for cherrypick and get_it; improved CLI args
2025-08-07 09:15:26 +03:00
Sergey Penkovsky
d523a5f261
refactor: simplify DIAdapter interface with a single registration callback; update benchmarks and cherrypick adapter accordingly
2025-08-07 08:28:23 +03:00
Sergey Penkovsky
b72dec9944
Обновлен README.ru.md: новые современные сценарии, параметры CLI, форматы отчётов, инструкция по расширению
2025-08-06 23:22:05 +03:00
Sergey Penkovsky
352442e52d
Update README.md with current benchmark scenarios, CLI options, and report formats (EN)
2025-08-06 23:19:37 +03:00
Sergey Penkovsky
134fc5207a
Add English documentation comments to all benchmark_cherrypick source files (adapters, scenarios, CLI, reporters, runner)
2025-08-06 23:15:28 +03:00
Sergey Penkovsky
01d82e1cd3
feat(report): add legend to MarkdownReport output with explanation of columns
2025-08-06 22:53:33 +03:00
Sergey Penkovsky
1e6375f5ae
refactor(report): round numeric values to 2 decimal places in MarkdownReport output
2025-08-06 22:41:08 +03:00
Sergey Penkovsky
3da71674d4
chore: fix current status, all implemented features and refactors
2025-08-06 22:35:49 +03:00
Sergey Penkovsky
ea39b9d0e1
feat(report): align MarkdownReport columns for readable ASCII/markdown output
2025-08-06 22:31:41 +03:00
Sergey Penkovsky
09ed186544
refactor(cli): modularize CLI — extract parser, runner, report and main logic into dedicated files
2025-08-06 22:19:13 +03:00
Sergey Penkovsky
3ce21f55e4
refactor(report): extract ReportGenerator abstraction for pretty/csv/json; simplify report rendering in main
2025-08-06 22:02:41 +03:00
Sergey Penkovsky
bae940f374
refactor(main): extract BenchmarkRunner and BenchmarkResult, simplify main loop, unify sync/async cases
2025-08-06 21:53:13 +03:00
Sergey Penkovsky
0fc1907173
chore(cleanup): remove unused legacy benchmarks and scenario files
2025-08-06 18:36:11 +03:00
Sergey Penkovsky
4d41266135
refactor(benchmark): clean up UniversalChainBenchmark, remove async logic, keep only sync scenario logic
2025-08-06 18:26:05 +03:00
Sergey Penkovsky
3a75bd5b28
feat(benchmark): add UniversalScenario enum and extend UniversalChainModule to support chain, register, named, override, async scenarios
2025-08-06 17:01:55 +03:00
Sergey Penkovsky
b27a7df161
refactor(structure): move benchmarks, scenarios, adapters, utils to dedicated folders; update imports/project layout
2025-08-06 16:21:31 +03:00
Sergey Penkovsky
553dbb6539
refactor(benchmarks): introduce DIAdapter abstraction, migrate all scenarios to use DIAdapter
2025-08-06 14:44:12 +03:00
Sergey Penkovsky
18905a068d
docs(benchmarks): document memory_diff_kb, delta_peak_kb, peak_rss_kb in README files (EN+RU)
2025-08-06 14:07:44 +03:00
Sergey Penkovsky
6928daa50e
docs(benchmarks): update README files with stability options, repeat/warmup params, stat fields, and usage examples
2025-08-06 13:48:51 +03:00
Sergey Penkovsky
7f488f873e
docs(benchmarks): update README files with new CLI, matrix run, output formats, and usage instructions (EN+RU)
2025-08-06 13:35:39 +03:00