Skip to content

Commit 045af6a

Browse files
authored
Merge pull request #5 from zooper-lib/feature/additional-methods
Feature/additional methods
2 parents 2bfc80d + 3ee6d62 commit 045af6a

39 files changed

Lines changed: 4253 additions & 491 deletions

CHANGELOG.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,60 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.0.0] - 2025-05-01
9+
10+
### Added
11+
12+
- Complete redesign of the workflow feature API
13+
- New `Group` method that groups activities with an optional condition
14+
- New `WithContext` method for isolated contexts with their own local state
15+
- New `Detach` method for executing activities without merging their results back
16+
- New `Parallel` method for parallel execution of multiple groups
17+
- New `ParallelDetached` method for parallel execution of detached activities
18+
- Better support for nullable conditions - all new methods accept nullable condition
19+
- Clear separation of merged and non-merged execution paths
20+
- Improved naming consistency across the API
21+
22+
### Changed
23+
24+
- **BREAKING CHANGE**: Reorganized internal class structure
25+
- Added feature-specific namespaces and folders
26+
- Created a consistent `IWorkflowFeature` interface for all features
27+
- **BREAKING CHANGE**: Renamed `Branch` to `Group` for better clarity
28+
- **BREAKING CHANGE**: Renamed `BranchWithLocalPayload` to `WithContext` to better express intention
29+
30+
### Deprecated
31+
32+
- The old `Branch` method is now marked as obsolete and will be removed in a future version
33+
- The old `BranchWithLocalPayload` method is now marked as obsolete and will be removed in a future version
34+
35+
### Compatibility
36+
37+
- All existing code using the deprecated methods will continue to work, but will show deprecation warnings
38+
- To migrate, replace:
39+
40+
```csharp
41+
.Branch(condition, branch => branch.Do(...))
42+
```
43+
44+
With:
45+
46+
```csharp
47+
.Group(condition, group => group.Do(...))
48+
```
49+
50+
And replace:
51+
52+
```csharp
53+
.BranchWithLocalPayload(condition, factory, branch => branch.Do(...))
54+
```
55+
56+
With:
57+
58+
```csharp
59+
.WithContext(condition, factory, context => context.Do(...))
60+
```
61+
862
## [2.2.0] - 2025-04-25
963

1064
### Added

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<Description>A .NET library for building robust, functional workflows and processing pipelines.</Description>
1414

1515
<!-- Version information -->
16-
<Version>2.2.0</Version>
16+
<Version>3.0.0</Version>
1717

1818
<!-- Source linking -->
1919
<PublishRepositoryUrl>true</PublishRepositoryUrl>

0 commit comments

Comments
 (0)