CHANGES
=======

* Updated from global requirements
* Update .gitreview for stable/liberty

0.7.0
-----

* Updated from global requirements
* Updated from global requirements
* Updated from global requirements

0.6.0
-----

* Activate pep8 check that _ is imported
* Updated from global requirements

0.5.0
-----

* Ensure doctesting and doc8 testing done in py27 env
* Updated from global requirements
* Remove setup.cfg 'requires-python' incorrect entry
* Document `process_event` return and expose return namedtuple type
* Allow providing and using a 'nested_start_state_fetcher'
* Allow providing a state-name translation dict

0.4.0
-----

* Add a bigger CD-player state-machine doctest(ed) example
* Add `is_actionable_event` checking function
* Disallow adding transitions from terminal states
* Add and use a callback name fetching utility function
* Add runners to features.rst & add a runner base & update docstrings

0.3.0
-----

* Add badge support to README.rst
* Add code repo, mail list, and IRC to CONTRIBUTING
* Remove 3.3 classifier
* Remove 2.6 classifier + 2.6 compatibility code
* Add history.rst that uses generated 'ChangeLog' file
* Add base exception class for this library
* Updated from global requirements
* Add optional machine conversion into a pydot graph
* Updated from global requirements
* Updated from global requirements
* When a state has no transitions show its own `on_exit` and `on_enter`
* Add a more complex doctest(ed) example
* Add simple machine doctest(ed) example into docs

0.2.0
-----

* Split the state machine runners off into own file
* Use debtcollector removals function instead of warnings.warn
* Revamp repo to match openstack repos
* Allow the hierarchical machine to provide back the nested machines
* Retain & deprecate default_start_state via constructor
* Amend the unittest due to more on_exit being triggered
* Have the start state 'on_exit' be called when exit occurs
* Use a property setter instead of a method
* Require using set_default_start_state to set the default
* Add more checks on setting a alternative start state default
* Rename start_state to default_start_state
* Use type(self) instead of self.__class__
* Correctly copy derived classes
* Allow initialize to take an alternative start_state
* Update message when processing event and not initialized
* Add pre and post event processing methods
* Share the same not found template between machines
* Avoid having a _generate_runner method when inheritance is ok
* Allow frozen to be set/unset
* Add testrepository to testing requirements
* Fixup the classifiers
* Fix the tox to install the right requirements
* Just use _generate_runner to generate the different runner types
* Use quoting in the machine code documentation
* Adjust pformat() + add examples
* Remove version caps
* Split the requirements file into py2/py3 variations
* Move process event to be a static method
* Add a HierarchicalFiniteMachine + Runner
* Use a helper classmethod to create machines
* Rename _Runner -> _FiniteRunner
* Move to top level machines module, seems cleaner this way
* Fix the pformat() example
* Move the fsm -> machines/finite.py and split off the running methods
* Allow copies to be unfrozen (if the parent is frozen)
* Make frozen a non-settable attribute and copy it correctly
* Allow machines to be shallow or deep copied
* Three is the number for alpha
* Change beta to alpha (for now)

0.1
---

* Add the travis badge
* Add a travis testing file
* Also install the main requirements.txt when using tox
* Move over the fsm test
* Add testtools testing requirement
* Use the test-requirements.txt for tox.ini deps
* Add needed testing requirement and tox.ini file
* Don't forget the requirements.txt file
* Fixup the README.rst and setup.cfg
* Use prettytable
* Move a bunch of files into there rightful places
* Initial commit
