@@ -5,6 +5,57 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
6
6
and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
7
7
8
+ ## [ 1.9.0] - 2025-07-14
9
+
10
+ ### Added
11
+ - ** π Complete Workflow and Dependency Management System**
12
+ - Implemented full workflow orchestration capabilities with job dependency management
13
+ - Added ` JobGroup ` workflow builder with fluent API for creating complex job pipelines
14
+ - Support for sequential job chains using ` .then() ` method
15
+ - Support for parallel job execution using ` .add_parallel_jobs() ` method
16
+ - Comprehensive dependency resolution engine that automatically manages job execution order
17
+ - Workflow validation with circular dependency detection using topological sorting
18
+ - Three failure policies: ` FailFast ` , ` ContinueOnFailure ` , and ` Manual ` intervention modes
19
+
20
+ - ** ποΈ Database Schema and Storage**
21
+ - New ` hammerwork_workflows ` table for workflow metadata tracking
22
+ - Extended ` hammerwork_jobs ` table with dependency fields: ` depends_on ` , ` dependents ` , ` dependency_status ` , ` workflow_id ` , ` workflow_name `
23
+ - Optimized database indexes for efficient dependency resolution queries
24
+ - PostgreSQL implementation uses native UUID arrays and JSONB for dependencies
25
+ - MySQL implementation uses JSON columns with proper constraint validation
26
+
27
+ - ** π Queue Interface Extensions**
28
+ - ` enqueue_workflow() ` - Validates and atomically inserts entire workflows
29
+ - ` get_workflow_status() ` - Retrieves workflow metadata and current execution state
30
+ - ` resolve_job_dependencies() ` - Updates dependency status when jobs complete successfully
31
+ - ` get_ready_jobs() ` - Efficiently finds jobs ready for execution (no unsatisfied dependencies)
32
+ - ` fail_job_dependencies() ` - Cascades failure through dependency graph with configurable policies
33
+ - ` get_workflow_jobs() ` - Retrieves all jobs within a specific workflow
34
+ - ` cancel_workflow() ` - Cancels workflow and marks all pending jobs as failed
35
+
36
+ - ** β‘ Advanced Dependency Features**
37
+ - Automatic dependency satisfaction tracking with real-time status updates
38
+ - Intelligent failure propagation that respects workflow failure policies
39
+ - Support for complex dependency graphs with multiple fan-in/fan-out patterns
40
+ - Transactional workflow operations ensuring data consistency
41
+ - Workflow statistics tracking: total jobs, completed jobs, failed jobs
42
+
43
+ ### Fixed
44
+ - ** π§ Implementation Completeness**
45
+ - Replaced all ` todo!() ` placeholders in workflow code with full implementations
46
+ - Added comprehensive error handling for workflow validation and execution
47
+ - Implemented proper UUID conversion handling between PostgreSQL and MySQL
48
+ - Added helper methods ` insert_job_in_transaction() ` for both database backends
49
+ - Fixed compilation issues and ensured feature parity between PostgreSQL and MySQL
50
+
51
+ ### Enhanced
52
+ - ** π MySQL Encryption Deserialization**
53
+ - Completed MySQL encryption deserialization implementation to match PostgreSQL
54
+ - Updated all MySQL SQL queries to include encryption fields using ` JOB_SELECT_FIELDS ` constant
55
+ - Added encryption helper methods: ` build_encryption_config() ` , ` parse_retention_policy() ` , ` build_encrypted_payload() `
56
+ - Proper handling of MySQL JSON types vs PostgreSQL arrays for encryption metadata
57
+ - Full feature parity between PostgreSQL and MySQL encryption implementations
58
+
8
59
## [ 1.8.4] - 2025-07-14
9
60
10
61
### Added
0 commit comments