Skip to content

Releases: nitram509/lib-bpmn-engine

v0.3.0-rc3

21 Jun 16:15
9f842f7

Choose a tag to compare

What's Changed

Full Changelog: v0.3.0-rc2...v0.3.0-rc3

v0.3.0-rc2

23 Feb 22:17
bfda8f6

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.0-rc1...v0.3.0-rc2

v0.3.0-rc1

17 Mar 21:55
a5f1a07

Choose a tag to compare

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)

New Contributors

Full Changelog: v0.3.0-beta4...v0.3.0-rc1

v0.3.0-beta4

29 Aug 22:16
b495406

Choose a tag to compare

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 ExpressionEvaluationError
    • improved errors for intermediate timer catch events (#38, #69)
    • improved error handling for intermediate message catch events
    • variable mapping and expression evaluation errors
    • return proper BpmnEngineError, at creation time (BREAKING CHANGE)
  • new support intermediate link throw & catch element (#141)
  • new CreateInstanceById() and CreateAndRunInstanceById() 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

20 Dec 00:03
0c53af8

Choose a tag to compare

Say "Hello!" to the new mascot

  • introduce local variable scope for task handlers and do correct variable mapping on successful completion (#48 and #55)

v0.3.0-beta1

25 Sep 15:02

Choose a tag to compare

set v0.3.0-beta1

v0.2.4

18 Sep 20:01

Choose a tag to compare

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
  • 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
  • fix two issues with not finding/handling the correct messages (#31)

v0.2.3

07 Sep 21:37

Choose a tag to compare

  • add support for user tasks (#32 )

v0.2.2

07 Sep 20:02

Choose a tag to compare

  • 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

05 Sep 07:11

Choose a tag to compare

  • improved handling of Intermediate Message Event and Event Gateways (#29 #33 )
    • fix issues with not following the specs
    • fix issues with not catching all events
    • thanks to @lastchiliarch for your contribution