- This is the last release supporting Python2.X series.
- Doctesting all documentation including README (with issues on examples fixed).
- Fix state value misjudged when state value is an "boolean False value" (tks @the5fire)
- Add support for Python 3.7 and 3.8 (adding to test matrix).
- Update development requirements.
- State machine names should now be fully qualified for mixins, simple names are deprecated and will no longer be supported on a future version.
- Development: Adding mypy linter.
- Add support for State machine inheritance. Thanks @rschrader.
- Add support for reverse transitions:
transition = state_a.from_(state_b)
. Thanks @romulorosa. - Fix current state equal to destination on enter events. Thanks @robnils and @joshuacc1.
- Check: StateMachine now validates if it's states/transitions graph has only one component. Thanks @rafaelrds.
Breaking changes:
- Drop official support for Python 3.4 (removing from test matrix, code may still work).
- Fix Django integration for registry loading statemachine modules on Django1.7+.
- New event callbacks: on_enter_<state> and on_exit_<state>.
- Fix README.
- Fix deploy issues.
- Auto-discovering statemachine/statemachines under a Django project when they are requested using the mixin/registry feature.
- Fix bug on
CombinedTransition._can_run
not allowing transitions to run if there are more than two transitions combined.
- Custom exceptions.
- Duplicated definition of
on_execute
callback is not allowed. - Fix bug on
StateMachine.on_<transition.identifier>
being called with extraself
param.
- Python 3.6 support.
- Drop official support for Python 3.3.
- Transition can be used as decorator for on_execute callback definition.
- Transition can point to multiple destination states.
- README getting started section.
- Tests to state machine without model.
State
can hold a value that will be assigned to the model as the state value.- Travis-CI integration.
- RTD integration.
- First release on PyPI.