Compare commits

...

3 Commits

Author SHA1 Message Date
Sergey Penkovsky
0651f74472 chore(release): publish packages
- cherrypick_annotations@3.0.2
 - cherrypick_generator@3.0.2
2026-01-29 16:58:46 +03:00
Sergey Penkovsky
776f29945a chore: format code and update deps 2026-01-29 16:57:28 +03:00
Sergey Penkovsky
49361f2f9e Merge pull request #27 from pese-git/develop
Develop
2026-01-29 16:41:03 +03:00
13 changed files with 74 additions and 45 deletions

View File

@@ -3,6 +3,33 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## 2026-01-29
### Changes
---
Packages with breaking changes:
- There are no breaking changes in this release.
Packages with other changes:
- [`cherrypick_annotations` - `v3.0.2`](#cherrypick_annotations---v302)
- [`cherrypick_generator` - `v3.0.2`](#cherrypick_generator---v302)
Packages graduated to a stable release (see pre-releases prior to the stable version for changelog entries):
- `cherrypick_annotations` - `v3.0.2`
- `cherrypick_generator` - `v3.0.2`
---
#### `cherrypick_annotations` - `v3.0.2`
#### `cherrypick_generator` - `v3.0.2`
## 2025-10-20 ## 2025-10-20
### Changes ### Changes

View File

@@ -47,7 +47,7 @@ packages:
path: "../cherrypick" path: "../cherrypick"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2"
collection: collection:
dependency: transitive dependency: transitive
description: description:

View File

@@ -1,3 +1,7 @@
## 3.0.2
- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
## 3.0.2-dev.0 ## 3.0.2-dev.0
- **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API. - **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API.

View File

@@ -1,7 +1,7 @@
name: cherrypick_annotations name: cherrypick_annotations
description: | description: |
Set of annotations for CherryPick dependency injection library. Enables code generation and declarative DI for Dart & Flutter projects. Set of annotations for CherryPick dependency injection library. Enables code generation and declarative DI for Dart & Flutter projects.
version: 3.0.2-dev.0 version: 3.0.2
homepage: https://cherrypick-di.netlify.app homepage: https://cherrypick-di.netlify.app
documentation: https://cherrypick-di.netlify.app/docs/intro documentation: https://cherrypick-di.netlify.app/docs/intro
repository: https://github.com/pese-git/cherrypick/cherrypick_annotations repository: https://github.com/pese-git/cherrypick/cherrypick_annotations

View File

@@ -1,3 +1,7 @@
## 3.0.2
- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
## 3.0.2-dev.0 ## 3.0.2-dev.0
- **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API. - **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API.

View File

@@ -305,9 +305,8 @@ class AnnotationValidator {
} }
// Check if class has public methods // Check if class has public methods
final publicMethods = classElement.methods2 final publicMethods =
.where((m) => m.isPublic) classElement.methods2.where((m) => m.isPublic).toList();
.toList();
if (publicMethods.isEmpty) { if (publicMethods.isEmpty) {
throw AnnotationValidationException( throw AnnotationValidationException(
'Module class must have at least one public method', 'Module class must have at least one public method',

View File

@@ -190,24 +190,20 @@ class BindSpec {
case BindingType.provide: case BindingType.provide:
if (isAsyncProvide) { if (isAsyncProvide) {
if (needsMultiline) { if (needsMultiline) {
final lambdaIndent = (isSingleton || named != null) final lambdaIndent =
? indent + 6 (isSingleton || named != null) ? indent + 6 : indent + 2;
: indent + 2; final closingIndent =
final closingIndent = (isSingleton || named != null) (isSingleton || named != null) ? indent + 4 : indent;
? indent + 4
: indent;
return '.toProvideAsync(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})'; return '.toProvideAsync(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})';
} else { } else {
return '.toProvideAsync(() => $methodName($argsStr))'; return '.toProvideAsync(() => $methodName($argsStr))';
} }
} else { } else {
if (needsMultiline) { if (needsMultiline) {
final lambdaIndent = (isSingleton || named != null) final lambdaIndent =
? indent + 6 (isSingleton || named != null) ? indent + 6 : indent + 2;
: indent + 2; final closingIndent =
final closingIndent = (isSingleton || named != null) (isSingleton || named != null) ? indent + 4 : indent;
? indent + 4
: indent;
return '.toProvide(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})'; return '.toProvide(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})';
} else { } else {
return '.toProvide(() => $methodName($argsStr))'; return '.toProvide(() => $methodName($argsStr))';
@@ -311,9 +307,8 @@ class BindSpec {
); );
} }
final bindingType = hasInstance final bindingType =
? BindingType.instance hasInstance ? BindingType.instance : BindingType.provide;
: BindingType.provide;
// PROHIBIT @params with @instance bindings! // PROHIBIT @params with @instance bindings!
if (bindingType == BindingType.instance && hasParams) { if (bindingType == BindingType.instance && hasParams) {

View File

@@ -2,7 +2,7 @@ name: cherrypick_generator
description: | description: |
Source code generator for the cherrypick dependency injection system. Processes annotations to generate binding and module code for Dart & Flutter projects. Source code generator for the cherrypick dependency injection system. Processes annotations to generate binding and module code for Dart & Flutter projects.
version: 3.0.2-dev.0 version: 3.0.2
homepage: https://cherrypick-di.netlify.app homepage: https://cherrypick-di.netlify.app
documentation: https://cherrypick-di.netlify.app/docs/intro documentation: https://cherrypick-di.netlify.app/docs/intro
repository: https://github.com/pese-git/cherrypick/cherrypick_generator repository: https://github.com/pese-git/cherrypick/cherrypick_generator
@@ -19,7 +19,7 @@ environment:
# Add regular dependencies here. # Add regular dependencies here.
dependencies: dependencies:
cherrypick_annotations: ^3.0.2-dev.0 cherrypick_annotations: ^3.0.2
analyzer: ">=7.5.9 <8.0.0" analyzer: ">=7.5.9 <8.0.0"
dart_style: ^3.0.0 dart_style: ^3.0.0
build: ^3.0.0 build: ^3.0.0

View File

@@ -127,28 +127,28 @@ packages:
path: "../../cherrypick" path: "../../cherrypick"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2"
cherrypick_annotations: cherrypick_annotations:
dependency: "direct main" dependency: "direct main"
description: description:
path: "../../cherrypick_annotations" path: "../../cherrypick_annotations"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2-dev.0"
cherrypick_flutter: cherrypick_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
path: "../../cherrypick_flutter" path: "../../cherrypick_flutter"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2"
cherrypick_generator: cherrypick_generator:
dependency: "direct dev" dependency: "direct dev"
description: description:
path: "../../cherrypick_generator" path: "../../cherrypick_generator"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2-dev.0"
clock: clock:
dependency: transitive dependency: transitive
description: description:
@@ -574,4 +574,4 @@ packages:
version: "3.1.3" version: "3.1.3"
sdks: sdks:
dart: ">=3.8.0 <4.0.0" dart: ">=3.8.0 <4.0.0"
flutter: ">=3.32.0" flutter: ">=3.18.0-18.0.pre.54"

View File

@@ -175,21 +175,21 @@ packages:
path: "../../cherrypick" path: "../../cherrypick"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2"
cherrypick_annotations: cherrypick_annotations:
dependency: "direct main" dependency: "direct main"
description: description:
path: "../../cherrypick_annotations" path: "../../cherrypick_annotations"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2-dev.0"
cherrypick_generator: cherrypick_generator:
dependency: "direct dev" dependency: "direct dev"
description: description:
path: "../../cherrypick_generator" path: "../../cherrypick_generator"
relative: true relative: true
source: path source: path
version: "3.0.0" version: "3.0.2-dev.0"
cli_config: cli_config:
dependency: transitive dependency: transitive
description: description:
@@ -920,7 +920,7 @@ packages:
path: "../../talker_cherrypick_logger" path: "../../talker_cherrypick_logger"
relative: true relative: true
source: path source: path
version: "3.0.1" version: "3.0.2"
talker_dio_logger: talker_dio_logger:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -1131,4 +1131,4 @@ packages:
version: "2.2.2" version: "2.2.2"
sdks: sdks:
dart: ">=3.8.0 <4.0.0" dart: ">=3.8.0 <4.0.0"
flutter: ">=3.32.0" flutter: ">=3.29.0"

View File

@@ -13,7 +13,7 @@ dependencies:
sdk: flutter sdk: flutter
cherrypick: any cherrypick: any
cherrypick_annotations: ^3.0.2-dev.0 cherrypick_annotations: ^3.0.2
dio: ^5.4.0 dio: ^5.4.0
retrofit: ^4.0.3 retrofit: ^4.0.3
@@ -38,7 +38,7 @@ dev_dependencies:
flutter_lints: ^6.0.0 flutter_lints: ^6.0.0
build_runner: ^2.5.0 build_runner: ^2.5.0
cherrypick_generator: ^3.0.2-dev.0 cherrypick_generator: ^3.0.2
json_serializable: ^6.9.0 json_serializable: ^6.9.0
retrofit_generator: ^10.0.5 retrofit_generator: ^10.0.5