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
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
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)
0.8.10 (October 2021)
Release 0.8.10 is a minor release and contains two bug fixes for the HSM extension and changes how the 'self' literal string is handled.
Feature #545: The literal 'self' (default model parameter of Machine) has been replaced by the class variable Machine.self_literal = 'self'. Machine now performs an identity check (instead of a value check) with mod is self.self_literal to determine whether it should act as a model. While 'self' should still work when passed to the model parameter, we encourage using Machine.self_literal from now on. This was done to enable easier override of Machine.__eq__ in subclasses (thanks @VKSolovev).
Bug #547: Introduce HierarchicalMachine.prefix_path to resolve global state names since the HSM stack is not reliable when queued=True (thanks @jankrejci).
Bug #548: HSM source states were exited even though they are parents of the destination state (thanks @wes-public-apps).
0.8.9 (September 2021)
Release 0.8.9 is a minor release and contains a bugfix for HSM, a feature for GraphSupport and changes internal cache handling:
Bugfix #544: NestedEvent now wraps the machine's scope into partials passed to HierarchicalMachine._process. This prevents queued transitions from losing their scope.
Feature #533: (A)Graph.draw function (object returned by GraphMachine.get_graph()) can be passed a file/stream object as first parameter or None. The later will result in draw returning a binary string. (thanks @Blindfreddy).
Feature #532: Use id(model) instead of model for machine-bound caches in LockedMachine, AsyncMachine and GraphMachine. This might influence pickling (thanks @thedrow).
0.8.8 (April 2021)
Release 0.8.8 is a minor release and contains a bugfix and several new or improved features:
Bugfix #526: AsyncMachine does not remove models when remove_models is called (thanks @Plazas87)
Feature #517: Introduce try/except for finalize callbacks in Machine and HierachicalMachine. Thus, errors occurring in finalize callbacks will be suppressed and only the original error will be raised.
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
> **Note**
> Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Updates the requirements on transitions to permit the latest version.
Release notes
Sourced from transitions's releases.
Changelog
Sourced from transitions's changelog.
... (truncated)
Commits
5694945
Release 0.9.0651247c
Replace coveralls with codecov53be1d0
add mock Enum for test_markup compatibility with Python < 3.42c4269f
mypy for test files returns 0 errors for Python3fe100f1
typing tests (122 issues to go)e4bdcbd
add copr badge2c81ddf
Update Changelog to prepare 0.9.0 release2e2fda9
Fix typoa8042e8
docs: Fix a few typos00c0ce6
this closes #582You can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)