Releases: finger563/webgme-hfsm
Releases · finger563/webgme-hfsm
v1.6.2
What's Changed
- feat(simulator): Update simulator to alert if the event name is bad by @finger563 in #164
- fix(generator): allow end states from choice states in the initial state transition path by @finger563 in #165
Full Changelog: v1.6.1...v1.6.2
v1.6.1
What's Changed
- Bump browserify-sign from 4.2.1 to 4.2.2 by @dependabot in #154
- Bump jsonwebtoken and webgme by @dependabot in #155
- Bump xml2js and webgme by @dependabot in #156
- Bump nunjucks and webgme by @dependabot in #157
- Bump es5-ext from 0.10.62 to 0.10.64 by @dependabot in #158
- Bump nodemailer from 6.9.7 to 6.9.10 by @dependabot in #159
- Bump ejs from 3.1.9 to 3.1.10 by @dependabot in #161
- Update dockerfile to base off Node 20 by @finger563 in #162
- feat(generator): Update process model to check if event names are valid by @finger563 in #163
Full Changelog: v1.6.0...v1.6.1
v1.6.0
What's Changed
- Bump engine.io from 3.2.1 to 3.6.1 by @dependabot in #147
- Bump socket.io-parser from 3.4.2 to 3.4.3 by @dependabot in #148
- Bump semver from 5.5.0 to 5.7.2 by @dependabot in #149
- Improved Software Generator and updated HFSM runtime API by @finger563 in #150
- fix(runtime): added missing condition_variable include by @finger563 in #151
- feat(testbench): run hfsm in its own thread by @finger563 in #152
- feat(runtime): improve queue management APIs by @finger563 in #153
Full Changelog: v1.5.0...v1.6.0
v1.5.0
What's Changed
- Update webgme-ui-replay to latest version to allow running inside docker by @finger563 in #141
- Bump minimatch and mocha by @dependabot in #140
- Bump decode-uri-component from 0.2.0 to 0.2.2 by @dependabot in #142
- Bump moment from 2.29.2 to 2.29.4 by @dependabot in #143
- Bump cookiejar from 2.1.2 to 2.1.4 by @dependabot in #144
- Bump minimist from 1.2.5 to 1.2.8 by @dependabot in #145
- refactor(generator): updated naming conventions by @finger563 in #146
Full Changelog: v1.4.1...v1.5.0
Version 1.4.1
What's Changed
- Bump shell-quote from 1.7.2 to 1.7.3 by @dependabot in #137
- Feature/root event spawning helper functions by @finger563 in #138
- Make
EventFactory
thread safe - Add colored output to test bench / debug output for easier use
- Update formatting of test bench debug output for readability
- Update simulator to not warn about no initial state if the only child is a documentation node
Full Changelog: v1.4...v1.4.1
Version 1.4
What's Changed
- Bump cached-path-relative from 1.0.2 to 1.1.0 by @dependabot in #134
- Bump moment from 2.29.1 to 2.29.2 by @dependabot in #135
- Allow events to have data by @finger563 in #136
Full Changelog: v1.3...v1.4.0
Version 1.3
Software Generator Changes:
- allows using
_root->
when accessing non-static member of the root class (in theDefinitions
/Declarations
) - Updates the scoping to be
StateMachine::{{{HFSM name}}}::Event
- Updates all states to have the
_root
pointer mentioned above - Removes static & global allocation of all state objects - instead no state objects are allocated for you - you must allocate an object of type
StateMachine::{{{HFSM name}}}::Root
which itself allocates the needed state objects and configures them. - Moves the
eventFactory
into theStateMachine::{{{HFSM name}}}::Root
class - Added
Declarations
to the generation of all states - for local custom data; should only be used in the state's functions, not within transition actions.
Consistency Checks
- Local transitions must have events
- Internal transitions must have events
- Initial states must have exactly one transition
- Initial state transitions cannot have guards or events
- No two sibling states can have the same name
- States cannot have more than one initial state
- States must have an initial sub state selected
- States should not have any transitions without an Event unless
they contain an End State - Any substate containing an End State must have an End Transition
(no event) leaving the state - States cannot have more than one End Transition
- End Transitions cannot have guard conditions
- Choice pseudostate transitions (out of the choice) cannot have
events - Cannot have multiple events with similar names
(e.g. capitalization difference) - Choice pseudostates must have a default (unguarded) transition
- No two transitions out of a state should have the same Event /
Guard combination - All complete states containing children must have an initial
state configured and properly wired up to transition to one of their
children - All leaf states must have a valid non-zero timer period (note:
timer periods for non-leaf states are unused) - No substates (e.g. any state other than the root) should have
Includes
set.
Simulator Changes:
- fix context menu / selection so that you can properly re-parent / arrange / remove objects using the context menu
- better handling / checking of initial states in simulator - with the checks either becoming alerts (popups) or warnings in the log panel
- better handling of choice psuedostates - pressing None is equivalent to selecting the default transition for the choice psuedostate
- better warning of choice pseudostates - they must have default transitions out of them, so the user is now warned (in the log panel) if a choice psuedostate does not have a default transition
- Ability to handle an end state connected (even through choice pseudostates) to an initial state.
Version 1.2
Enhancements:
- #89 Default to single-select, hold
ctrl
key to enable muti-select - #87 enforce in code generator that states containing
end pseudostates
must haveend transitions
- #85 HFSM now allows loading another HFSM from the model (switching the viewed HFSM)
- #84 add generated method to determine if the HFSM has reached its
end state
- #83 add support for clearing the
active state
visualization in the HFSMViz for better printing - #82 show HFSM initialization in active state panel of HFSMViz
- #72 refactor generated code for HFSM
- #70 add webgme path comments to allow automatic parsing of build errors to attribute line numbers
- #69 add tick and restart events to the generated test bench programs
- #68 don't convert event names to upper case - they are generated exactly as in the model
- #66 refactor HFSM meta / code generators for better inclusion as a library within another webgme project
- #67 updated documentation (added WIKI and videos to GitHub)
- #64 use edgehandle styles for better visual indication of the current target node of the dragged transition
- #62 improve edge drawing interface
- #60 add support for dragging/dropping a selection of nodes and transitions
- #58 animate state transition in simulator
- #49 add context menu option for multi-select to arrange selection into a grid
- #47 improve generated code event handling run-time efficiency
- #44 added support for creating instances of states subtrees by dragging and dropping from the tree-browser or split-panel
- #39 shrink / remove gifs in README - placed them in the WIKI so they don't take up repo space
- #35 Added support for
Local Transitions
- #31 describe basic development process for HFSMs
- #29 create a context menu for moving a set of states and their transitions into another state
Bugfixes:
- #91 make sure all examples have timer periods in all leaf states
- #90 Fixed entry execution when HFSM initializes into a choice pseudostate
- #86 fix simulator panel not updating when HFSMViz loads a new HFSM
- #81 model checking should ensure all leaf states have non-zero timer periods
- #80 no active state in HFSMViz simulator if initial transition goes to choice pseudostate and user selects
none
- #79 fix deep history pseudostate transitions in simulator
- #78 fix reparenting from context menu calculates position incorrectly
- #77 fix using the move context menu to move a state into itself throws an exception
- #76 do a str compare to see if guards on transition set are the same and give warning to user
- #75 fix shouldn't be able to create a connection between initial state and end state
- #74 fix when in split screen the HFSMViz doesn't update properly
- #73 fix cannot generate code if no events exist in the model
- #71 fix simulator does not work if initial state points to a choice pseudostate
- #65 fix if initial state of an object points to choice state, selecting set active state of the object incorrectly stops at the choice state
- #63 fix placement of context menu for transition creation