- Dropped python3.6 support. Contributed by @nzlosh
- Use pip 24.0 in virtualenv Contributed by @nzlosh
- Aligned pinned dependencies with St2 core. Contributed by @nzlosh
- Update deprecated collections imports to collections.abc to be forward-compatible with Python3.10 Contributed by @AndroxxTraxxon
- Migrate from nosetest to pytest for Python test runner. Contributed by @AndroxxTraxxon
- Add Python versions 3.9, 3.10, and 3.11 to the test matrix Contributed by @AndroxxTraxxon
- Update networkx >=2.6 for Python 3.8 to fix insecure deserialization #255 (security fix) Contributed by @Stealthii
- Update jsonschema requirements to allow 3.2 (security fix) Contributed by @james-bellamy
- Update jinja to use sandboxed environment. (bug fix)
- Optimise inspect and workflow graph generation logic. (improvement) Contributed by @yogeshgoyal26
- Migrate from Travis to Github Actions. (improvement)
- Fix unreachable join when an inbound task fails as defined in the task transition. (bug fix)
- Throw exception if the workflow definition that is written in YAML contains duplicate keys (i.e. task name). (bug fix)
- Implement the orquesta-rehearse command to run unit tests for workflow. (new feature, beta) Contributed by AJ (guzzijones)
- Remove mistral fixtures because they were used as ref to support multiple specs. Mistral is deprecated in StackStorm and there's no intention to support it here. A mistral to orquesta workflow conversion tool is available at https://github.com/StackStorm/orquestaconvert.
- Fix the custom flake8 extensions to check import statements. (bug fix)
- Fix the deprecation warning that flags are not at the start of the expression. (bug fix)
- Run pep8 and docs in tox with python3.
- Use black https://pypi.org/project/black/ for code formatting.
- Update tox to return error if there are uncommitted schema changes.
- Warn users when there is a loop and no start task identified. (bug fix)
- Lock global variables during initialization to make them thread safe. (bug fix)
- Workflow stuck in running if one or more items failed in a with items task. (bug fix)
- Fix use case where a failed with items task is run again if the task is in a cycle. (bug fix)
- Fix task retry where transition on error is also executed along with retry. (bug fix)
- Add feature to retry task execution on given condition with delay in between retries and max number of retries. (new feature) Contributed by Hiroyasu Ohyama (@userlocalhost) and Nick Maludy (@nmaludy)
- Add support to rerun completed workflow (failed or succeeded) from given task(s). (new feature)
- Replace "noop" with "continue" when "do" is not specified. The new "continue" command will not alter the previous task state and will continue to conduct the workflow execution. StackStorm/st2#4740 (improvement)
- Refactor conductor to not store each item result in task state. If there are a lot of items and/or result size is huge per item, then there will be a performance impact on database write operations when recording the conductor state. (improvement)
- Use ujson to deepcopy dict(s) for faster performance. (improvement)
- Refactor how inbound criteria for join task is evaluated to count by task completion instead of task transition. (improvement)
- Fix conducting of cycle with a fork. Fixes #169 (bug fix)
- Fix request_workflow_status to ignore certain status change errors such as pausing a workflow that is already pausing and canceling a workflow that is already canceling. (bug fix)
- Remove rendering of workflow output automatically when updating task state. This caused workflow output to render incorrectly in certain use case. The render_workflow_output function must be called separately. (bug fix)
- When inspecting custom YAQL/Jinja function to see if there is a context arg, use getargspec for py2 and getfullargspec for py3. (bug fix)
- Check syntax on with items task to ensure action is indented correctly. Fixes #184 (bug fix)
- Fix variable inspection where ctx().get() method calls are identified as errors. Fixes StackStorm/st2#4866 (bug fix)
- Fix a problem of TypeError orccuring when a list (or dict) value that contains unhashable typed value (list or dict) is passed in some YAQL operators (e.g. distinct()). Fixes #176 (bug fix) Contributed by Hiroyasu Ohyama (@userlocalhost)
- Change the version number to the semver format and from 0.6 -> 1.0.0 to indicate GA.
- Rephrased the error message for the unreachable join task. Fixes #162 (improvement)
- Allow tasks in the same transition with a "fail" command to run. (bug fix)
- Fix Jinja block expression to render correctly. (bug fix)
- Add flake8 extension to restrict import alias. (improvement)
- Add developer docs on getting started, testing, and StackStorm integration. (improvement)
- Refactor concept of task flow to workflow and task state. (improvement)
- Restrict ctx function from returning internal vars. (improvement)
- Fix conductor performance for complex workflow definition. (bug fix)
- Fix overwritten context variables on task join. (bug fix)
- Fix with items task stuck in running when item(s) failed. (bug fix)
- Fix task status for various scenarios on with item task. (bug fix)
- Fix return value of item that evaluate to false. (bug fix)
- Fix workflow stuck in resuming when pending task has transition error. (bug fix)
- Add get_routes function to workflow graph to identify possible execution routes. (new feature)
- Add ascii art diagrams to docs to illustrate workflows with join task. (improvement)
- Add sleep in while loop for composing execution graph to spread out cpu spike. (improvement)
- Value in quotes in shorthand publish should be evaluated as string type. Fixes #130 (bug fix)
- Fix interpretation of boolean value in shorthand format of publish. Fixes #119 (bug fix)
- Update YAQL section in docs on use of "=>" for named parameters in function calls. Closes #124
- Fix with items intepretor to handle variables that contain the word 'in'. (bug fix) Contributed by Anton Kayukov (@batk0)
- Add with items model to the orquesta task spec. (improvement)
- Add delay attribute to the orquesta task spec. (improvement)
- Add script to generate JSON schema from the workflow models. (improvement)
- Add command to make package for upload to pypi. (improvement)
- Allow workflow to output on other completed states such as error. (improvement)
- Allow multiple transition between two tasks. (improvement)
- Refactor finalize_context in task spec to get the transition precisely. (improvement)
- Refactor conductor log entries and methods. (improvement)
- Refactor rendering of task spec in conductor to support with items model. (improvement)
- Fix state change when workflow output fails rendering. (bug fix)
- Fix vars and input that references app context. (bug fix)
- Convert strings in context to unicode to fix problems with mixing ascii and unicode strings in expressions. (bug fix)
- Add pep8 checks on module imports and other coding styles. (improvement)
- Allow application to pass runtime context on workflow execution. (improvement)
- Log an error in the conductor when a failed execution event is received. (improvement)
- Rename project from orchestra to orquesta.
- Replace if else logic with state machines to handle state transition for task and workflow execution. (improvement)
- Refactor expression functions to not have to require the context argument. (improvement)
- Clean up conductor and mark some of the methods as private. (improvement)
- Fix bug where current task is not set in the context when task spec is rendering. (bug fix)
- Fix bug where self looping task reference an outdated context. (bug fix)
- Fix bug where self looping task does not terminate. (bug fix)