Skip to content

Commit 03316ba

Browse files
authored
Merge pull request #332 from sartography/updates-for-2.0-release
Updates for 2.0 release
2 parents 5f0468b + ab70a34 commit 03316ba

4 files changed

Lines changed: 141 additions & 3 deletions

File tree

CONTRIB

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,4 @@ New versions of SpiffWorkflow are automatically published to PyPi whenever
5757
a maintainer of our GitHub repository creates a new release on GitHub. This
5858
is managed through GitHub's actions. The configuration of which can be
5959
found in .github/workflows/....
60-
Just create a release in GitHub that mathches the release number in doc/conf.py
60+
Just create a release in GitHub that matches the release number in doc/conf.py

RELEASE_NOTES.md

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

doc/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
author = 'Sartography'
2323

2424
# The full version, including alpha/beta/rc tags
25-
release = '2.0'
25+
release = '2.0.0rc0'
2626

2727
# -- General configuration ---------------------------------------------------
2828

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
README = (HERE / "README.md").read_text()
1414

1515
setup(name='SpiffWorkflow',
16-
version='1.2.1',
16+
version='2.0.0rc0',
1717
description='A workflow framework and BPMN/DMN Processor',
1818
long_description=README,
1919
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)