Releases: nitram509/lib-bpmn-engine
v0.3.0-rc1
What's Changed
This is a release-candidate, as this new feature is a major improvement and first tests are green.
That said, there's also a known issue #190, which violates the engine's invariant and thus likely some BPMN workflows might not work after un-marshalling.
- implemented Marshal & Un-Marshall support, see #12 (this is a new feature and tests are not fully completed)
- Bump mkdocs-material from 9.2.5 to 9.2.7 by @dependabot in #146
- Bump pymdown-extensions from 10.1 to 10.3 by @dependabot in #145
- Bump github.com/antonmedv/expr from 1.14.3 to 1.15.0 by @dependabot in #147
- Bump mkdocs-material from 9.2.7 to 9.2.8 by @dependabot in #151
- Bump mkdocs-material from 9.2.8 to 9.4.2 by @dependabot in #159
- Bump mkdocs-material from 9.4.2 to 9.4.4 by @dependabot in #160
- Bump mkdocs-material from 9.4.4 to 9.4.6 by @dependabot in #162
- Bump pymdown-extensions from 10.3 to 10.3.1 by @dependabot in #163
- Update mkdocs-material-extensions requirement from ~=1.2.0 to ~=1.3 by @dependabot in #164
- Bump mkdocs-material from 9.4.6 to 9.4.7 by @dependabot in #165
- Bump mkdocs-material from 9.4.7 to 9.4.8 by @dependabot in #166
- Cleanup by @GodsBoss in #158
- Bump pymdown-extensions from 10.3.1 to 10.4 by @dependabot in #167
- Bump pygments from 2.16.1 to 2.17.1 by @dependabot in #169
- Bump mkdocs-material from 9.4.8 to 9.4.10 by @dependabot in #170
- Bump pygments from 2.17.1 to 2.17.2 by @dependabot in #172
- Bump mkdocs-material from 9.4.10 to 9.4.14 by @dependabot in #173
- Bump pymdown-extensions from 10.4 to 10.5 by @dependabot in #174
- Bump mkdocs-material from 9.4.14 to 9.5.1 by @dependabot in #175
- Bump mkdocs-material from 9.5.1 to 9.5.2 by @dependabot in #176
- Bump google.golang.org/protobuf from 1.31.0 to 1.32.0 by @dependabot in #177
- Bump mkdocs-material from 9.5.2 to 9.5.3 by @dependabot in #178
- Bump pymdown-extensions from 10.5 to 10.7 by @dependabot in #179
- Bump mkdocs-material from 9.5.3 to 9.5.4 by @dependabot in #180
- Bump mkdocs-material from 9.5.4 to 9.5.6 by @dependabot in #182
- Bump mkdocs-material from 9.5.6 to 9.5.7 by @dependabot in #183
- Bump mkdocs-material from 9.5.7 to 9.5.9 by @dependabot in #184
- Bump mkdocs-material from 9.5.9 to 9.5.11 by @dependabot in #185
- Bump mkdocs-material from 9.5.11 to 9.5.12 by @dependabot in #186
- Bump pymdown-extensions from 10.7 to 10.7.1 by @dependabot in #189
- Bump mkdocs-material from 9.5.12 to 9.5.13 by @dependabot in #188
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by @dependabot in #187
New Contributors
Full Changelog: v0.3.0-beta4...v0.3.0-rc1
v0.3.0-beta4
v0.3.0-beta4
- WiP serialization and deserialization ... please don't try yet ... it's not working in this beta3 version
- make explicit engine name optional (#73 BREAKING CHANGE)
- use global ID generator internally, to avoid ID collisions between multiple engine instances
- refactor
activity.LifecylceState
(BREAKING CHANGE) - refactor
process_instance.State
(BREAKING CHANGE)- new return type for e.g.
instance.GetState()
--is-->ActivityState
(BREAKING CHANGE)
- new return type for e.g.
- new ExpressionEvaluationError
- new support intermediate link throw & catch element (#141)
- new
CreateInstanceById()
andCreateAndRunInstanceById()
functions to ease handling with multiple versions - use Go Getter idiomatic (BREAKING CHANGE) (#144)
Migration notes for breaking changes
New Initializer
Bpmn Engines are anonymous by default now, and shall be initialized by calling .New()
Example: replace bpmn_engine.New("name")
with bpmn_engine.New()
Note: you might use .NewWithName("a name")
to assign different names for each engine instance.
This might help in scenarios, where you e.g. assign one engine instance to a thread.
activity.LifecylceState
and process_instance.State
Both are consolidated towards bpmn_engine.ActivityState
, which you can simply use in the same manner.
Use Go Getter idiomatic
For some interfaces, the prior code looked like e.g. engine.GetName()
.
According to https://go.dev/doc/effective_go#Getters, this getter should better be written as engine.Name()
.
v0.3.0-beta2
v0.3.0-beta1
set v0.3.0-beta1
v0.2.4
v0.2.4
- support input/output for service task and user task (#2)
- breaking change:
ActivatedJob
type is no more using fields, but only function interface
- breaking change:
- support for user tasks (BPMN) (#32)
- document how to use timers (#37)
- support adding variables along with publishing messages (#41)
- breaking change in method signature:
PublishEventForInstance(processInstanceKey int64, messageName string, variables map[string]interface{})
now requires a variable parameter
- breaking change in method signature:
- fix two issues with not finding/handling the correct messages (#31)
v0.2.3
v0.2.2
- improved handling of Intermediate Message Event and Event Gateways (#31)
- fix issues with not following the specs & fix issues with not catching all events
- using an error instead of panic when create a timer event (#36) - thank you @lastchiliarch for your contribution
- Fixed bug ProcessInstance interface GetVariable SetVariable (#39) - thank you @averyyan for your contribution
v0.2.1
v0.2.0
This is a major step forward for this library.
Now, expression language is supported. Also, an experimental visualization is possible.
hat said, still not recommended to use in production.
But any feedback or contributions are very welcome :)
For details, have a look at https://github.com/nitram509/lib-bpmn-engine/issues?q=is%3Aissue+milestone%3Av0.2.0+is%3Aclosed
v0.1.0
This is the first release of lib-bpmn-engine.
Basic features as available and you can start playing around.
That said, it's not recommended for production use yet.
This one is considered a technical preview release for early adopters.
Please expect breaking changes with the upcoming releases.
I do promise to document them as good as I can :)
I'm still learning the nitty-gritty details of BPMN and aim to implement
the engine according to the standard.
Also, I would be glad to get any contribution or feedback.