Releases: chevere/workflow
3.0.7
3.0.6
- Added support for any invokable class
- Dependencies now resolve before runIf* conditions
- Variable now supports any string but empty
- Run if conditions now support type int (0 false, anything else true)
Full Changelog: 3.0.5...3.0.6
3.0.5
- Implemented Kahn's topo sort
Full Changelog: 3.0.4...3.0.5
3.0.4
- Fixed variable single char support
Full Changelog: 3.0.3...3.0.4
3.0.3
- Fixed graph sorting
Full Changelog: 3.0.2...3.0.3
3.0.2
3.0.1
3.0.0
- Added support for PHP 8.5
- Added support for dependency container
- Added support for Closure on Job definition #63
- Added support for Action class name on Job definition #62
- Added support for true-async job runner
- Added support for type
boolonrunIf/runIfNotconditions - Added support for Job retry (timeout, attempts, delay) #60
- Added Job method
withRunIfNotwhich works the opposite aswithRunIf - Added support for chevere/parameter 2.0
- Added support for chevere/action 3.0
- Improved positional argument handling
- Removed parallel run execution support
Full Changelog: 2.0.0...3.0.0
This one was derived from the work at Chevereto Cloud where we implemented several workflows for defining complex processes for HTTP, Background and Commands.
Added support for Action class name Job declaration, which support a Container for injecting the Job object at runtime. By doing this we can define static workflows that are dependency collected on worker spawn and auto-injected when needed.
Added Closure for building small artifacts, it enables to transform arguments or build bags, by not requiring an Action you can prototype really fast. It was a pain to create single use artifacts as full qualified classes.
Added true async runner, deprecated parallel runner. Funny thing is that both runners are provided by the phpamp project, but parallel running on PHP is a pain in the ass to work with, don't go there.
As we needed to keep several systems in sync, I noticed that Workflow needed a retry behavior to avoid missing synchronization. Added a simple retry policy with timeout, max retries and delay which enable us to automatically retry failing steps.
Finally, several QoL improvements have been made like a negated "runIf" condition. We had this system where we needed to ping a server and from there either install or sync, with the withRunIfNot the DSL looks clean without needing to pollute variable('wea')->eq(false) which looks horrible and make a double type check.
🎉 2.0.0
- Supports chevere/action 2.0
Full Changelog: 1.0.9...2.0.0