CHANGES
=======

0.3.0
-----

* 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
* 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
