CHANGES
=======

1.8.0
-----

* Update link to docs in README
* Bring doc build up to standard
* Add pbr to installation requirements
* Add more detail to the README
* Updated from global requirements
* Add docs environment to tox.ini
* mock.assert_called_once() is not a valid method
* Work toward Python 3.4 support and testing
* warn against sorting requirements

1.7.0
-----

* Add release notes for 1.7.0
* Fix stable integration tests
* Updated from global requirements
* Clean up default tox environment list
* Do not allow wheels for stable tests
* Set the main logger name to match the application
* CSV formatter should use system-dependent line ending
* Make show option compatible with Python 2.6
* Use six.add_metaclass instead of __metaclass__
* fixed typos found by RETF rules
* The --variable option to shell format is redundant
* Expose load_commands publicly
* Fix wrong method name assert_called_once
* Updated from global requirements
* Fix pep8 failures on rule E265

1.6.1
-----

* Remove PrettyTable from documentation requirements
* Fix a bug in ShellFormatter's escaping of double quotes in strings
* Import run_cross_tests.sh from oslo-incubator
* add doc requirements to venv

1.6.0
-----

* Add max-width support for table formatter
* Add value only output formattter
* Update readme with links to bug tracker and source
* Move pep8 dependency into pep8 tox test
* Fix doc build with Python 2.6.x
* Fix interactive mode with command line args
* Update .gitreview after repo rename
* Escape double quotes in shell formatter
* Add unit test for shell formatter
* Rename private attribute to avoid conflict
* Sync with global requirements
* Add integration tests with known consumers
* update history for previous change
* Make the formatters a private part of the command

1.5.2
-----

* move to pbr for packaging

1.5.1
-----

* add venv environ to tox config

1.5.0
-----

* Update history for next release
* Move to stackforge
* update history for stevedore change
* Use stevedore to load formatter plugins
* use entry points for completion plugins
* Clean up recursive data handling
* Always install complete command
* attribution for bash completion work in history
* code style fixes
* code style fixes
* various python code optimizations; shuffle I/O to shell classes
* add bash complete
* Enable debug in help mode
* Pass the right args when pulling help from commands
* prepare for 1.4.5 release
* add pypy test env configuration
* Update pyparsing dependency to 2.0.1

1.4.4
-----

* update for release 1.4.4
* Re-raise Exception on debug mode
* Add test to check if return code is 2 on unknown command
* Return code 1 is already use, use code 2 instead
* Reraise error on debug
* Display better error message on unknown command, and return code 1
* update announce file

1.4.3
-----

* prepare for 1.4.3 release
* force python2.6 for that test env
* Provide a default output encoding

1.4.2
-----

* prepare for release 1.4.2

1.4.1
-----

* prepare for release 1.4.1
* Tighten requirements on cmd2
* remove use of distribute in demo app
* Fix default encoding issue with python 2.6
* move tests into cliff package
* add tests for dict2columns
* Add dict2columns()
* turn off distribute in tox

1.4
---

* prep for release 1.4
* fix flake8 issues with setup.py
* remove the other traces of distribute
* Remove explicit depend on distribute
* update history for recent contribution
* Expose instantiated interpreter instance and assign it to the 'interpreter' variable on the App instance
* Update announcement for release 1.3.3

1.3.3
-----

* Prepare for release 1.3.3
* declare support for python 3.3
* cmd2 0.6.5.1 was released, and is compatible
* Restore compatibility with Prettytable < 0.7.2

1.3.2
-----

* Prepare 1.3.2 release
* Bump prettytable version accepted
* add python 3.3 to tox
* add style checks to tests
* Add tests for underscore handling
* use flake8 for style checks
* update history.rst with convert_underscores change
* make converting underscores optional in CommandManager
* fix version in docs

1.3.1
-----

* prepare for 1.3.1 release
* Fix PyParsing dependency
* Fix typo
* update history file for previous merge
* Make list of application commands lexicographically ordered for help command in interactive mode

1.3
---

* Prepare for 1.3 release
* clean up history file
* Document dependency on distribute
* fix rst formatting in docstring
* Update history file
* Add tests for new functionality
* Allow user to pass argparse_kwargs argument to the build_option_parser method. Those arguments gets passed to the ArgumentParser constructor

1.2.1
-----

* Set up for 1.2.1 release
* Remove unused logging import
* Fix problem with missing izip import in lister.py
* Update announcement file for new release

1.2
---

* Set up release 1.2
* Add python2.6 support
* remove debug print
* remove tablib from test requirements
* Fix logging default behavior
* Fix interactive help command

1.1.2
-----

* bumping version number for release
* remove the entry point data for the moved formatters

1.1.1
-----

* bump the version number to release a clean build

1.1
---

* Update version and status values
* Remove tablib formatters from core
* fix version # in announcement

1.0
---

* Doc updates for API changes. Clean up docstrings. Bump version to 1.0
* merge API refactoring work
* yet more pep8 work
* fix help and tests for API change
* Move take_action() to Command
* more pep8 work
* Refactor DisplayBase.run() to make it easier to override separate parts in subclasses. Rename get_data() to take_action() so subclasses that do something other than query for values have a clear place to override
* pep8 cleanup
* add attribution to history for the previous merge
* Adding new line to tablib formatters
* fix tags declaration
* document updates for 0.7
* disable py26 tests since I do not have an environment for running them

0.7
---

* bump version
* fix interactive command processor to handle multi-part commands, including some that use the same first word as existing commands
* declare a couple of commands that use builtin command names but use multiple words
* update changelog
* set the interactive mode flag before initializing the app so subclasses can check it; handle initialization errors more cleanly
* add travis-ci status image to developer docs
* add travis-ci status image to README
* add a requirements file for travis-ci
* bogus commit to trigger ci build
* add travis-ci.org configuration file
* add version num to history file

0.6
---

* bump version number
* pass more details to initialize_app so subclasses can decide what sort of initialization to do
* enable to use in Python2.6

0.5.1
-----

* remove hard version requirement to unbreak the OpenStack build

0.5
---

* prepare for 0.5 release
* document changes in history file
* make the organization of the classes page a little more clear
* update formatter documentation
* fix yaml, html, and json show formatters
* move the column option so it applies to "show" commands, too
* add yaml, json, and html formatters
* move the columns option out of the table formatter and into the lister base
* make help list commands if none match exactly; fixes #8
* require at least PrettyTable 0.6 for Python 3 support, fixes #7
* changes in the prettytable API rolled into the python 3 support update
* add a tox stage for pep8 testing
* python 3.2 does not have a unicode type so ignore the error if it is missing
* move todo list to github issues
* update todo list
* note about prettytable and python3
* refactor ShowOne and Lister to share a common base class
* more todo notes
* tests for cliff.help
* pass the App to the help action instead of passing just the command manager, since the app has the stout handle we want to use for printing the help
* 100% coverage of cliff.command
* 100% coverage for commandmanager.py
* 100% coverage of cliff.app module
* let the interactive app set its own prompt
* add tests for App and fix an issue with error handling and clean_up() in python 3
* use the stderr handle given to the app instead of assuming the default

0.4
---

* version number and release note updates for 0.4
* documentation improvements
* simplify packaging file for demo app
* ignore files generated by dev environment
* first pass at interactive app
* note to add more options to csv formatter
* add --prefix option for shell formatter; add docs for shell formatter
* clean up help text for the other formatters
* add shell output formatter for single items
* add longer docstring to show how it is printed by help
* update todo list
* fix typo in blog post

0.3
---

* update blog announcement
* bump the version number and update the release notes
* add ShowOne base class for commands that need to show properties of an individual object make the table formatter work as a single object formatter update the docs for the new features
* handle an empty data set
* correct the doctoring
* fix version # in doc build script
* 0.2 release announcement post

0.2
---

* bump version number
* start a release log
* update doc instructions for getting help
* only show the one-line description in the command list; add a description of "help"
* register a custom help action that knows how to print the list of commands available and a help command to generate help for the other commands
* provide an internal API for applications to register commands without going through setuptools (used for help handler)
* Use argparse for global arguments
* fix doc build instructions
* add some developer instructions and links ot the source repo and bug tracker
* add announcement blog post source
* advice from the distutils list was to stick with distribute for now
* add Makefile with some common release operations
* add example output to the list formatters
* add a requirements file for doc build on readthedocs.org
* add some real documentation
* Add get_data() to the Lister base class
* remove example that I was using as a syntax reminder
* Add a link to the docs
* while looking for documentation on entry points I realized distutils2 doesn't seem to support them in the same way
* fill in a real description of the project
* start sphinx documentation
* Added a bit more to the README
* flesh out instructions for using the demo app
* add a few more ideas
* Added a README for the demo app
* Added download url to both setup.py files and updated the demo setup.py with the new url

0.1
---

* Added missing distribute setup file
* move repo link to the dreamhost project
* more to-do items
* add demoapp to release package and clean up files being distributed from the test directory
* notes about work still to be done
* require PrettyTable package for the table formatter
* improve error handling when loading formatter plugins
* add a csv formatter for list apps
* start creating a subclass of command for producing a list of output in different formats, using prettytable as an example formatter
* remove unused import
* better error handling of post-action hook in app
* Pass the I/O streams into the app
* add some error handling to App
* make the log messages slightly easier to parse
* tweak App api to make it easier to override and perform global actions before and after a command runs
* use logging for controlling console output verbosity
* clean up argv handling
* install nose for tox tests
* if no arguments are provided at all show the help message
* replace default --help processor with one that includes the list of subcommands available
* add debug option to nose
* clean up dead code
* include version info when configuring opt parse
* Sample program with command plugins
* first pass at an app class that can invoke commands
* save commands using the name representation to be used in help output; don't modify the input arg list when searching for the command; return the name of the command found so the app can stuff it into the help text of the command
* start building command manager
* change to apache license
* add tox config file for tests
* add distribute_setup.py so install works
* add setup.py and package directory
* add a basic description to readme
* convert readme to rst
* initial commit
