Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.3.0]
Added
- Added asynchronous pipeline execution with
async/2andasync/3functions - Added
await/1function to wait for all pending async tasks to complete - Added Task.Supervisor for managing async step execution
- Added Application behavior to Extep for proper supervision tree
Changed
- Enhanced Extep struct with
tasksfield to track pending async operations - Updated
run/2andrun/3to automatically await pending tasks before execution - Updated
return/2andreturn/3to handle pending tasks before returning results - Enhanced error handling to properly shut down tasks when pipeline is interrupted
- Improved function guards and type specifications for better pattern matching
Technical Details
- The
async/2function runs checker functions asynchronously without modifying context - The
async/3function runs mutator functions asynchronously and stores results under given keys - All async tasks are executed in parallel and results are merged in order when
await/1is called - Pipeline stops at first async task failure, with proper task cleanup
- Backward compatibility maintained - existing synchronous pipelines work unchanged
[0.2.0]
Added
- Added
label_erroroption toreturn/3for better error debugging and identification - Added extensive test coverage for
label_errorfunctionality
Changed
- Improved
run/2documentation with clearer explanations of:- Function return values and their effects
- Error message labeling for named vs anonymous functions
- Pipeline behavior and when functions execute
- Improved
run/3documentation with detailed explanations of:- Parameter requirements and usage
- Context mutation behavior
- Error scenarios with step-by-step breakdowns
- Halt scenarios and pipeline flow control
- Enhanced
return/3documentation with comprehensive examples covering:- Successful pipeline scenarios
- Error handling with and without labels
- Halt message handling
- Different error labeling behaviors
- Improved README.md API documentation with
label_errorusage examples
[0.1.0] - Previous Release
Added
- Initial implementation of Extep pipeline runner
- Core functions:
new/0,new/1,run/2,run/3,return/2 - Basic error handling and pipeline flow control
- Railway-oriented programming pattern implementation