transitions v0.9.0 Release Notes

Release Date: 2022-09-01 // 26 days 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
    • ๐Ÿ”‹ 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: _super workaround related to dill (see https://github.com/pytransitions/transitions/issues/236)

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)