Skip to content

Commit a7c7269

Browse files
committed
Release Notes for 2.0.0_rc1
1 parent b9ad244 commit a7c7269

1 file changed

Lines changed: 136 additions & 0 deletions

File tree

RELEASE_NOTES.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
## What's Changed
2+
3+
We've done a lot of work over the last 8 months to the SpiffWorkflow library as we've developed [SpiffArena](https://www.spiffworkflow.org/), a general purpose workflow managment system built ontop of this library.
4+
This has resulted in just a handful of new features. Our main focus was on making SpiffWorkflow more predictable, easier to use, and internally consistent.
5+
6+
## Breaking Changes from 1.x:
7+
* We heavily refactored the way we handle multi-instance tasks internally. This will break any serialized workflows that contain multi-instance tasks.
8+
9+
## Features and Improvements
10+
11+
### Task States, Transitions, Hooks, and Execution
12+
Previous to 2.0, SpiffWorklow was a little weird about it's states, performing the actual execution in the on_complete() hook.
13+
This was VERY confusing.
14+
Tasks now have a _run() command separate from state change hooks.
15+
The return value of the _run() command can be true (worked), false (failure) or None (not yet done).
16+
This opens the door for better overall state management at the moment it is most critical (when the task is actually executing).
17+
We also added new task state called "STARTED" that describes when a task was started, but hasn't finished yet, an oddly missing state in previous versions.
18+
19+
* Improvement/execution and serialization cleanup by @essweine in https://github.com/sartography/SpiffWorkflow/pull/289
20+
* Bugfix/execute tasks on ready by @essweine in https://github.com/sartography/SpiffWorkflow/pull/303
21+
* Feature/standardize task execution by @essweine in https://github.com/sartography/SpiffWorkflow/pull/307
22+
* do not execute boundary events in catch by @essweine in https://github.com/sartography/SpiffWorkflow/pull/312
23+
* Feature/new task states by @essweine in https://github.com/sartography/SpiffWorkflow/pull/315
24+
25+
### Improved Events
26+
We refactored the way we handle events, making them more powerful and adaptable.
27+
Timer events are now parsed according to the [ISO 8601 standard](https://en.wikipedia.org/wiki/ISO_8601).
28+
* Feature/multiple event definition by @essweine in https://github.com/sartography/SpiffWorkflow/pull/268
29+
* hacks to handle timer events like regular events by @essweine in https://github.com/sartography/SpiffWorkflow/pull/273
30+
* Feature/improved timer events by @essweine in https://github.com/sartography/SpiffWorkflow/pull/284
31+
* reset boundary events in loops by @essweine in https://github.com/sartography/SpiffWorkflow/pull/294
32+
* Bugfix/execute event gateways on ready by @essweine in https://github.com/sartography/SpiffWorkflow/pull/308
33+
34+
### Improved Muliti-Instance Tasks
35+
We refactored how Multi-instance tasks are handled internally, vastly simplifying their representation during execution and serialization.
36+
No more 'phantom gateways'.
37+
* Feature/multiinstance refactor by @essweine in https://github.com/sartography/SpiffWorkflow/pull/292
38+
39+
### Improved Sub-Processes
40+
SpiffWorkflow did not previously distinguish between a Call Activity and a SubProcess however they handle Data Objects very differently.
41+
A Sub Process is now able to access it's parent data objects, a Call Activity can not.
42+
We also wanted the ability to execute Call Activities independently of the parent process.
43+
44+
* Bugfix/subprocess access to data objects by @essweine in https://github.com/sartography/SpiffWorkflow/pull/296
45+
* start workflow while subprocess is waiting by @essweine in https://github.com/sartography/SpiffWorkflow/pull/302
46+
* use same data objects & references in subprocesses after deserialization by @essweine in https://github.com/sartography/SpiffWorkflow/pull/314
47+
48+
### Improved Data Objects / Data Stores
49+
This work will continue in subsequent releases, but we have added support for Data Stores, and it is possible provide your own implementations.
50+
* Data stores by @jbirddog in https://github.com/sartography/SpiffWorkflow/pull/298
51+
* make data objects available to gateways by @essweine in https://github.com/sartography/SpiffWorkflow/pull/325
52+
53+
### Improved Inclusive Gateways
54+
We added support for Inclusive Gateways.
55+
* Feature/inclusive gateway support by @essweine in https://github.com/sartography/SpiffWorkflow/pull/286
56+
57+
### Pre and Post Script Fixes
58+
We previously supported adding a pre-script or post-script to any task but there were a few lingering bugs that needed fixing.
59+
* parse spiff script extensions in service tasks by @essweine in https://github.com/sartography/SpiffWorkflow/pull/257
60+
* pass script to workflow task exec exception by @essweine in https://github.com/sartography/SpiffWorkflow/pull/258
61+
* update execution order for postscripts by @essweine in https://github.com/sartography/SpiffWorkflow/pull/259
62+
63+
### DMN Improvements
64+
We now support a new hit policy of "COLLECT" which allows you to match on an array of items. DMN support is still limited, but
65+
we are making headway. Would love to know if people are using these features.
66+
* Support for the "COLLECT" hit policy. by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/267
67+
* Bugfix/handle dash in dmn by @essweine in https://github.com/sartography/SpiffWorkflow/pull/323
68+
69+
### BPMN Validation
70+
We improved validation of BPMN and DMN Files to catch errors earlier.
71+
* Feature/xml validation by @essweine and @danfunk in https://github.com/sartography/SpiffWorkflow/pull/256
72+
73+
### New Serializer
74+
There are some breaking changes in the new serializer, but it is much faster and more stable. We do attempt to upgrade
75+
your serialized workflows to the new format, but you will definitely encounter issues if you were using multi-instance tasks.
76+
* update serializer version by @essweine in https://github.com/sartography/SpiffWorkflow/pull/277
77+
* Feature/remove old serializer by @essweine in https://github.com/sartography/SpiffWorkflow/pull/278
78+
79+
### Lightening Fast, Stable Tests
80+
* Fix ResourceWarning: unclosed file BpmnParser.py:60 by @jbirddog in https://github.com/sartography/SpiffWorkflow/pull/270
81+
* Option to run tests in parallel by @jbirddog in https://github.com/sartography/SpiffWorkflow/pull/271
82+
83+
### Better Errors
84+
* Feature/better errors by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/283
85+
* Workflow Data Exceptions were broken in the previous error refactor. … by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/287
86+
* added an exception for task not found w/ @burnettk by @jasquat in https://github.com/sartography/SpiffWorkflow/pull/310
87+
* give us a better error if for some reason a task does not exist by @burnettk in https://github.com/sartography/SpiffWorkflow/pull/311
88+
89+
### Flexible Data Management
90+
* Allow for other PythonScriptEngine environments besides task data by @jbirddog in https://github.com/sartography/SpiffWorkflow/pull/288
91+
92+
### Various Enhancements
93+
Make it easier to reference SpiffWorkflow library classes from your own code.
94+
* Feature/add init to schema by @jasquat in https://github.com/sartography/SpiffWorkflow/pull/260
95+
* cleaning up code smell by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/261
96+
* Feature/cleanup task completion by @essweine in https://github.com/sartography/SpiffWorkflow/pull/263
97+
* disambiguate DMN expressions by @essweine in https://github.com/sartography/SpiffWorkflow/pull/264
98+
* Add in memory bpmn/dmn parser functions by @jbirddog in https://github.com/sartography/SpiffWorkflow/pull/320
99+
100+
### Better Introspection
101+
Added the abilty to ask SpiffWorkflow some useful questions about a specification such as "What call activities does this depend on?",
102+
"What messages does this process send and receive", and "What lanes exist on this workflow specification?"
103+
* Parser Information about messages, correlation keys, and the presence of lanes by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/262
104+
* Called elements by @jbirddog in https://github.com/sartography/SpiffWorkflow/pull/316
105+
106+
### Code Cleanup
107+
* Improvement/task spec attributes by @essweine in https://github.com/sartography/SpiffWorkflow/pull/328
108+
* update license by @essweine in https://github.com/sartography/SpiffWorkflow/pull/324
109+
* Feature/remove unused bpmn attributes and methods by @essweine in https://github.com/sartography/SpiffWorkflow/pull/280
110+
* Improvement/remove camunda from base and misc cleanup by @essweine in https://github.com/sartography/SpiffWorkflow/pull/295
111+
* remove minidom by @essweine in https://github.com/sartography/SpiffWorkflow/pull/300
112+
* Feature/remove loop reset by @essweine in https://github.com/sartography/SpiffWorkflow/pull/305
113+
* Feature/create core test package by @essweine in https://github.com/sartography/SpiffWorkflow/pull/306
114+
* remove celery task and dependency by @essweine in https://github.com/sartography/SpiffWorkflow/pull/322
115+
* remove one deprecated and unused feature by @essweine in https://github.com/sartography/SpiffWorkflow/pull/329
116+
* change the order of tasks when calling get_tasks() by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/319
117+
118+
### Improved Documentation
119+
* Fixes grammar, typos, and spellings by @rachfop in https://github.com/sartography/SpiffWorkflow/pull/291
120+
* Updates for 2.0 release by @essweine in https://github.com/sartography/SpiffWorkflow/pull/330
121+
* Bugfix/non bpmn tutorial by @essweine in https://github.com/sartography/SpiffWorkflow/pull/317
122+
123+
### Bug Fixes
124+
* correct xpath for extensions by @essweine in https://github.com/sartography/SpiffWorkflow/pull/265
125+
* prevent output associations from being removed twice by @essweine in https://github.com/sartography/SpiffWorkflow/pull/275
126+
* fix for workflowspec dump by @subhakarks in https://github.com/sartography/SpiffWorkflow/pull/282
127+
* add checks for len == 0 when copying based on io spec by @essweine in https://github.com/sartography/SpiffWorkflow/pull/297
128+
* Improvement/allow duplicate subprocess names by @essweine in https://github.com/sartography/SpiffWorkflow/pull/321
129+
* Resets to tasks with Boundary Events by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/326
130+
* Sub-workflow tasks should be marked as "Future" when resetting to a task before the sub-process. by @danfunk in https://github.com/sartography/SpiffWorkflow/pull/327
131+
132+
## New Contributors
133+
* @subhakarks made their first contribution in https://github.com/sartography/SpiffWorkflow/pull/282
134+
* @rachfop made their first contribution in https://github.com/sartography/SpiffWorkflow/pull/291
135+
136+
**Full Changelog**: https://github.com/sartography/SpiffWorkflow/compare/v1.2.1...v2.0.0

0 commit comments

Comments
 (0)