CHANGES
=======

0.2.6
-----

* Add support for ProxyCommand in GerritSSHClient
* Upgrade paramiko to 1.14.0
* Revert "Remove support for Gerrit over ssh"
* Update the README
* Upgdade requests to 2.2.1
* Include full description in the setup config
* Set Content-Type header on PUT and POST requests
* Set HTTP headers to reduce data transfer time
* Migrate setup to pbr
* Stop using pylint
* Remove support for Gerrit over ssh

0.2.5
-----

* Version 0.2.5
* Fix up usage of argparse in examples
* Update examples to use argparse instead of optparse
* Fix for hanging connections

0.2.4
-----

* Version 0.2.4
* Accept kwargs for request functions
* Correct Gerrit documentation link
* Add badges to the README
* Fix README markup to work properly on Gitlab

0.2.3
-----

* Version 0.2.3
* Use find_packages() in setup

0.2.2
-----

* Bump version to 0.2.2
* Release notes for 0.2.2
* Add user in the Approval object
* Add support for CurrentPatchSet
* Include change status in Change object
* Always set sortkey in Change object
* Handle errors in REST API example
* Simplify REST API error handling
* Add username field in the account data
* Add method to run a gerrit command from the client
* Add method to get username and Gerrit version
* Fix NameError in REST API example
* Bump to requests 2.0.1 also in setup.py
* Bump requests version up to 2.0.1

0.2.1
-----

* Update change log for 0.2.1
* Document the HTTP password configuration for REST API usage
* Reword the prerequisites in the readme
* Separate prerequisites and configuration in the readme

0.2.0
-----

* Bump version to 0.2.0
* Update change log for 0.2.0
* Suppress pylint "Unable to import" error
* Suppress pylint warning about catching too general exception
* Fix pylint error in rest_example.py
* Change abandoned and restored events don't have a patchset field
* Add myself to authors
* Add an authors list that contributors can add themselves to
* Fix indentation
* Ensure errors in json parsing doesn't leave everything in a broken state
* Reason is optional in abandon and restore changes
* Return sortKey from query result, to allow resuming query
* Update the README to mention the REST API
* Avoid busy loop when receiving incoming stream data
* Add more detailed examples of SSH interface usage in the README
* Update the README notes about ssh configuration
* Add support for Kerberos authentication in example script
* Allow client to disable SSL certificate verification
* Add REST API example
* Refactor the authentication handling
* Add MANIFEST to .gitignore
* Add method to build url from endpoint

0.1.1
-----

* Bump version to 0.1.1
* Add changelog
* Make get, put, post and delete REST methods public
* Fix #10: Allow to manually specify ssh username and port
* Completely refactor the stream event handling
* Add missing __repr__ methods on ErrorEvent and UnhandledEvent
* Fix initialisation of error event
* Fix #11: correct handling of `identityfile` in the ssh config
* Allow example script to continue if errors are received
* Fix #9: Add a bit more detail in the documentation
* Fix #8: Support the "topic-changed" stream event
* Fix #7: Support the "reviewer-added" stream event
* Fix #6: Support the "merge-failed" stream event
* Fix #5: Move json parsing and error handling into the event factory
* Improved logging in the example script
* Fix #3: Don't treat unhandled event types as errors
* Fix #4: Keep event's raw json data in the event object
* Add __repr__ methods on event and model classes
* Remove redundant `exec_command` method
* Fix #2: Establish SSH connection in a thread-safe way
* Fix #1: Use select.select() instead of select.poll()
* Fix authentication setup
* Add handling of HTTP error status codes in responses
* Add support for HTTP digest authentication
* Initial implementation of Gerrit REST API interface
* Disable W0142 'Used * or ** magic' in the Pylint configuration

0.1.0
-----

* Bump version to 0.1.0
* Add Python trove classifiers to the setup
* Include full license text in the license parameter of setup
* Add long description in the setup
* Add MANIFEST.in file
* Improve formatting in the README file
* Rename README to README.rst
* Add make target and rules to ensure environment setup tools are OK
* Add a make target to build the API documentation zip archive
* Don't put copyright and license headers in Python module docstrings
* Add a make target to build the source distribution
* Add a make target to check for clean git status
* Add a make target to check that the git is tagged properly
* Add generation of package documentation
* Separate test dependency installation into its own build target
* Separate environment intialisation into its own build target
* Make the shebangs consistent
* Add pylint check in the Makefile
* Fix pylint warnings
* Add PEP-257 conformance check in the Makefile
* Add a unit test to ensure dependency package version consistency
* Separate package dependencies from verification/test dependencies
* Bump paramiko dependency to version 1.11.0
* Fix relative imports
* Fix one more PEP-257 violation
* Add a `clean` target in the Makefile
* Add PEP-8 conformance check in the Makefile
* Add pyflakes check in the Makefile
* Add a Makefile to install dependencies and run unit tests
* Only allow strings as query terms and commands
* Don't hard code version in setup.py
* Include command in GerritCommandResult
* Don't open ssh connection until needed
* Fix UnboundLocalError when stream-event connection fails
* Add missing docstrings to conform to PEP-257
* Explicitly depend on paramiko v1.7.6
* Move requirements.txt to the root
* Add requirements file

0.0.7
-----

* Bump to version 0.0.7
* Better error message in example script
* Rename the readme and license files

0.0.6
-----

* Bump to version 0.0.6
* Better error handling in the example script
* Move license to its own file and add basic documentation
* Use correct URL in setup information
* Handle socket connection error in SSH client
* Python 2.6 style exception handling
* Add Eclipse and Pydev project files

0.0.5
-----

* Bump to version 0.0.5
* Revert "Basic thread-safeness in the SSH client"
* Encapsulate the SSH command results in a class
* Update pylint config to work with version 0.26
* Only add query result lines to returned data
* Handle JSON errors in query results
* Refactor getting the Gerrit version
* Reduce nested `if` blocks in stream handling
* Add pylint configuration file
* More error handling improvements in stream
* Handle exception when running ssh command
* Fix pylint warnings in stream.py
* Basic thread-safeness in the SSH client
* More exception handling in stream

0.0.4
-----

* Bump version to 0.0.4
* Fix hostname in unit tests
* Get Gerrit version during client initialisation
* Add query functionality
* Add __str__ on event base class
* Move SSH client from stream class to main client class
* Add license information
* Simplify the unit test structure

0.0.3
-----

* Bump version to 0.0.3
* Add an example of how the Gerrit client class is used
* Wait for thread to complete when stopping stream
* Handle errors when reading event stream
* Fix event registration from other module
* Refactor event stream handling to use SSH client
* Handle invalid port in ssh config
* Add GerritSSHClient
* Add initial stub of GerritClient class
* Inject event name into event classes with decorator
* Revert "GerritEventFactory should be a singleton"
* GerritEventFactory should be a singleton
* Pass input stream in the constructor of GerritStream
* Add support for topic name in change attribute
* Add event factory and refactor event dispatching
* Events unit tests should also test event dispatching
* Add helper methods for initialisation from json data
* Add setup.py

0.0.2
-----

* Tidy up docstrings to follow the PEP-257 docstring convention
* Refactor into submodules
* Add .settings to .gitignore
* Remove check for supported approval types

0.0.1
-----

* Add .gitignore
* Add Makefile and script for unit tests
* Add unit tests for event handling
* Reason is missing in ChangeRestoredEvent
* `comment-added` event can have multiple approvals
* Add support for the `draft-published` event
* Minor refactoring of unit tests
* Fixing PEP-8 and pylint warnings
* Python cleanup: inherit from object
* Undefined variable in GerritCommentAddedEvent
* Check for callable event handler on attach
* Minor refactoring and adding initial unit tests
* Initial version of class for handling Gerrit stream events
* Initial empty commit
