transitions v0.9.0 Release Notes

Release Date: 2022-09-01 // over 1 year ago
  • ๐Ÿš€ Release 0.9.0 is a major release and contains improvements to ease development, adds some new features and removes the legacy hierarchical machine:

    • โœ‚ removed legacy implementation of HierarchicalMachine from the package
    • ๐Ÿ› Bug #551: Fix active state styling in GraphMachine (thanks @betaboon)
    • ๐Ÿ› Bug #554: Fix issues related to scopes and queueing in HierachicalMachine (thanks @jankrejci)
    • ๐Ÿ› Bug #568: Reflexive transitions (dest: '=') had not been resolved correctly when source was a wildcard (thanks @jnu)
    • ๐Ÿ› Bug #568: HSM did not detect reflexive transitions if src was a parent state (thanks @lostcontrol)
    • ๐Ÿ› Bug #569: Fix implicit fallback to graphviz when pygraphviz was not installed (thanks @FridjofAmundsen)
    • ๐Ÿ› Bug #580: Fix on_timeout callback resolution when timeout had been initialized with timeout=0 (thanks @Rysbai)
    • ๐Ÿ› Bug #582: Last label in GraphSupport was not correctly aligned when show_attributes=True (thanks @spagh-eddie)
    • ๐Ÿ”‹ Feature: Add pyi stub files for better type hinting. Since many functions and constructors allow rather arbitrary arguments time will tell whether typing should be strict (and cause more mypy issues) or more relaxed (and thus less precise).
    • ๐Ÿ”‹ Feature: Reviewed and improved method documentation
    • ๐Ÿ”‹ Feature #549: Add may transition check to transitions (thanks @artofhuman)
    • ๐Ÿ”‹ Feature #552: Refactored error handling to be able to handle MachineError in on_exception callbacks (thanks @kpihus)
    • ๐Ÿ”‹ Feature: Add mypy to test workflow
    • ๐Ÿ‘ PR #461: Add Retry state to supported state stereotypes (thanks @rgov)
    • Internal: Machine._identify_callback has been converted to instance method from class method
    • Internal: LockedMachine._get_qualified_state_name has been converted to instance method from static method
    • ๐Ÿ‘€ Internal: Removed _super workaround related to dill (see

Previous changes from v0.8.11

  • ๐Ÿš€ Release 0.8.11 is the last 0.8 release and contains fixes for Python 3.10 compatibility issues

    • ๐Ÿ› Bug #559: Rewrote an async test and replaced setDaemon with daemon property assignment for thread handling (thanks @debalance)