diff --git a/Changelog.md b/Changelog.md index 84a17058..e56a2279 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,8 @@ # Changelog -## 0.8.4 () +## 0.8.4 (October 2020) + +Release 0.8.4 is a minor release and contains bugfixes as well as new features: - Bugfix #477: Model callbacks were not added to a LockedHierarchicalMachine when the machine itself served as a model (thanks @oliver-goetz) - Bugfix #475: Clear collection of tasks to prevent memory leak when initializing many models (thanks @h-nakai) diff --git a/README.md b/README.md index 994ea353..0ab0023a 100644 --- a/README.md +++ b/README.md @@ -1190,6 +1190,7 @@ transitions = [ ] # ... ``` +The `initial` keyword of the `HierarchicalMachine` constructor accepts nested states (e.g. `initial='caffeinated_running'`) and a list of states which is considered to be a parallel state (e.g. `initial=['A', 'B']`) or the current state of another model (`initial=model.state`) which should be effectively one of the previous mentioned options. Note that when passing a string, `transition` will check the targeted state for `initial` substates and use this as an entry state. This will be done recursively until a substate does not mention an initial state. Parallel states or a state passed as a list will be used 'as is' and no further initial evaluation will be conducted. Note that your previously created state object *must be* a `NestedState` or a derived class of it. The standard `State` class used in simple `Machine` instances lacks features required for nesting.