CHANGES
=======

1.4.0.0a1
---------

* Add release notes for 1.4.0.0a1
* Fix structure of unit tests in oslo.messaging (part 1)
* Ensures listener queues exist in fake driver
* RPC server doc: use the blocking executor
* Removes the use of mutables as default args
* Set correct group for matchmaker_redis options
* replace string format arguments with function parameters
* Removes contextlib.nested
* Transport reconnection retries for notification
* Disable connection pool in qpid interfaces tests
* Updated from global requirements
* Add check credentials to log message if rabbmitmq closes socket
* Fix the notify method of the routing notifier
* Handle unused allowed_remote_exmods in _multi_send
* rabbit/qpid: remove the args/kwargs from ensure()
* Add an example usage of RPCClient retry parameter
* Add transport reconnection retries
* Add an optional timeout parameter to Listener.poll
* Bump hacking to 0.9.x series
* Removes unused config option
* Setup for translation
* Updated from global requirements
* Remove amqp default exchange hack
* remove default=None for config options
* Cleaned up references to executor specific RPCServer types
* Make the TransportUrl hashable
* debug level logs should not be translated
* Explicitly name subscription queue for responses
* Fix passing envelope variable as timeout
* Updated from global requirements
* Synced jsonutils from oslo-incubator
* Remove str() from LOG.* and exceptions
* Remove dependent module py3kcompat
* Enable log messages to handle exceptions containing unicode
* Updated from global requirements
* Fix typo in docstring of notify/notifier
* Full support of multiple hosts in transport url
* Logical error in blockless fanout of zmq
* Select AMQP message broker at random
* Use a for loop to set the defaults for __call__ params
* Update ensure()/reconnect() to catch MessagingError
* Remove old drivers dead code
* Import run_cross_tests.sh from oslo-incubator
* Remove rendundant parentheses of cfg help strings
* zmq: switch back to not using message envelopes
* Trival:Fix assertEqual arguments order
* Oslo-messaging-zmq-receiver cannot recive any messages

1.3.0
-----

* Add release notes for 1.3.0
* Ensure routing key is specified in the address for a direct producer
* Fix wrong parameter description in docstring
* Fixed inconsistent EventletContextManagerSpawnTest failures
* Use messaging_conf fixture configuration by default
* Fixed possible pep8 failure due to pyflakes bug
* Refactor AMQP message broker selection
* Add unit test to check the order of Qpid hosts on reconnect
* Fixed the issue for pop exception
* Clean up for qpid tests
* Add kombu driver library to requirements.txt
* Use driver's notify_send() method again
* Remove vim header
* Updated from global requirements
* Fixed spelling error - runnung to running
* Build log_handler documentation
* Add release notes up to 1.3.0a9

1.3.0a9
-------

* Remove use of sslutils

1.3.0a8
-------

* Expose PublishErrorsHandler through oslo.messaging
* Use mock's call assert methods over call_args_list
* notify listener: document the metadata callback parameter
* Add missing data into the notif. endpoint callback
* notification listener: add allow_requeue param
* Adds unit test cases to impl_qpid
* Do not leak _unique_id out of amqp drivers
* Add multiple exchange per listerner in fake driver
* Allow to requeue the notification message
* Slow down Kombu reconnect attempts
* Don't run python 3 tests by default
* Gracefully handle consumer cancel notifications
* Updated from global requirements
* Convert to oslo.test
* Add log_handler to oslo.messaging
* Add a link to the docs from the README
* Pass the session to QpidMessage constructor
* User a more accurate max_delay for reconnects
* Make the dispatcher responsible of the message ack
* Don't reply to notification message
* Abstract the acknowledge layer of a message
* Implements notification listener and dispatcher
* Switch over to oslosphinx
* Improve help strings
* Update ExpectedException handling
* Ignore any egg and egg-info directories
* Qpid: advance thru the list of brokers on reconnect
* RabbitMQ: advance thru the list of brokers on reconnect

1.3.0a7
-------

* Make the dispatcher responsible to listen()
* Allow fake driver to consume multiple topics
* Allow different login methods to be used with kombu connections

1.3.0a6
-------

* Use stevedore's make_test_instance
* Expose an entry point to list all config options
* Fix test case name typo
* Fix UnboundLocalError error

1.3.0a5
-------

* Fix help strings
* Add release notes for 1.3.0a3
* python3: Switch to mox3 instead of mox
* Remove dependencies on pep8, pyflakes and flake8
* Routing notifier

1.3.0a4
-------

* Removes use of timeutils.set_time_override
* Fix spelling errors in comments
* Fix test_notifier_logger for Python 3
* Minor Python 3 fixes
* Remove copyright from empty files
* Fix duplicate topic messages for Qpid topology=2
* Replace dict.iteritems() with six.iteritems()
* Remove unused eventlet/greenlet from qpid/rabbit
* fix test_rabbit for Python 3
* Fix try/except syntax for Python 3
* Fix exception deserialiation on Python 3
* Add Sample priority
* sysnchronize oslo-incubator modules
* Remove eventlet related code in amqp driver
* Fix syntax of relative imports for Python3
* Updated from global requirements
* Updated from global requirements
* Unify different names between Python2 and Python3
* Replace data structures' attribute with six module
* Avoid creating qpid connection twice in initialization
* Use six.moves.queue instead of Queue
* Add transport aliases
* Remove the partial implementation of ack_on_error
* Fixed misspellings of common words
* Add release notes for 1.3.0a2
* Unify different names between Python2/3 with six.moves
* Remove vim header
* Ensure context type is handled when using to_dict
* Refactors boolean returns

1.3.0a2
-------

* Simplify common base exception prototype
* Properly reconnect subscribing clients when QPID broker restarts
* Remove useless global vars / import
* Avoid storing configuration in notifier
* Implement a log handler using notifier
* notifier: add audit level
* Add 'warning' as an alias to 'warn'
* Decouple from Oslo uuidutils module
* Supply missing argument to raise_invalid_topology_version()
* Support a new qpid topology
* Remove hosts as property in TransportURL
* Remove property on virtual_host in TransportURL
* Updated from global requirements
* Fix some typos and adjust capitalization
* Changes driver method for notifications

1.3.0a1
-------

* Properly handle transport URL config on the client
* Updated from global requirements
* Updated from global requirements
* Replace assertEquals with assertEqual
* Properly handle transport:///vhost URL
* Updated from global requirements
* Make rpc_backend default to 'rabbit'
* Apply six for metaclass
* Add third element to RPC versions for backports
* Fix rpc client docs
* Updated from global requirements
* Remove cruft from setup.cfg
* Updated from global requirements
* Fixes a typo in the address string syntax
* Implement the server side of ZmqDriver
* Add zmq-receiver
* Implement the client side of ZmqDriver
* Import zmq driver code with minimal modifications

1.2.0a11
--------

* Fix race-condition in rabbit reply processing
* Fix error message if message handler fails
* Don't include msg_id or reply_q in casts
* Remove check_for_lock support in RPCClient

1.2.0a10
--------

* Add a Notifier.prepare(

1.2.0a9
-------

* Fix dictionary changed size during iteration

1.2.0a8
-------

* Fix transport URL parsing bug

1.2.0a7
-------

* Fix rabbit driver handling of None, etc. replies

1.2.0a6
-------

* Remove ConfFixture from toplevel public API
* Fix fake driver handling of failure replies
* Bumps hacking to 0.7.0
* Fix transport URL ipv6 parsing support

1.2.0a5
-------

* Fix handling of None, etc. replies

1.2.0a4
-------


1.2.0a3
-------

* Add a unit testing configuration fixture
* Add a TransportURL class to the public API

1.2.0a2
-------

* Ensure namespace package is installed

1.2.0a1
-------

* Add transport URL support to rabbit driver
* Kill ability to specify exchange in transport URL
* Fix capitalization, it's OpenStack
* Fix handling expected exceptions in rabbit driver
* Add thread-local store of request context
* Add a context serialization hook
* Removes a redundant version_is_compatible function
* Document how call() handles remote exceptions
* Add a per-transport allow_remote_exmods API
* Expose RemoteError exception in the public API
* Implement failure replies in the fake driver
* Add API for expected endpoint exceptions
* Add a driver method specifically for sending notifications
* Enforce target preconditions outside of drivers
* Add comments to ReplyWaiter.wait()
* Remove some FIXMEs and debug logging
* Remove unused IncomingMessage.done()
* Implement wait_for_reply timeout in rabbit driver
* Use testtools.TestCase assertion methods
* Implement failure replies in rabbit driver
* Add test with multiple waiting sender threads
* Fix race condition in ReplyWaiters.wake_all()
* Add rabbit unit test for sending and receiving replies
* Add some docs on target version numbers
* Add tests for rabbit driver wire protcol
* Pop _unique_id when checking for duplicates
* Add a transport cleanup() method
* Remove my notes and test scripts
* Add initial qpid driver
* Move most new rabbit driver code into amqpdriver
* Move rpc_conn_pool_size into amqp
* Add simple rabbit driver unit test
* Temporarily add eventlet to requirements
* Add missing gettextutils
* Add unit tests for object pool
* Remove only_free param to Pool.get()
* Connection pool bugfix
* Remove unused file
* Add exception serialization tests
* Don't call consume() each time iterconsume() is called
* Add test code for the rabbit driver
* Remove use of gettextutils
* Add initial rabbit driver
* Remove use of openstack.common.local
* Use stdlib logging
* Don't register options with cfg.CONF at module import
* Port away from some eventlet infrastructure
* Adjust imports in rabbit/qpid drivers
* Import some needed modules from oslo-incubator
* Add oslo-incubator code unmodified
* Make executor threads more robust
* Allow use of hacking 0.6.0 and fix min version
* Include docstrings in published docs
* Use oslo.sphinx and remove local copy of doc theme
* Add some notes
* Unit tests for notifier
* Make test notifier useful
* Use lowercase priority in log notifier
* Use lowercase priority in notifications topic
* Handle case where no drivers configured
* Fix buglet in v2 messaging notifier
* Make LOG private in notifier
* Require a transport to construct a Notifier
* Add serializer support to notifier
* Rename context to ctxt in serializer API
* Rename context to ctxt in notify API
* Make Notifier public at top-level
* Docstrings for notifier API
* Fix notify drivers namespace
* Remove backwards compat entry point aliases
* Simplify public symbol exports
* Use assertEqual() rather than assertEquals()
* Remove accidental use of messaging.rpc_server
* Make exchange_from_url() use parse_url()
* Unit tests for URL parsing code
* Fix parse_urls() buglets
* Move url utils into messaging._urls
* Don't use common logging
* Update example scripts for recent API changes
* Fix fake driver with eventlet
* Use log.warning() instead of log.warn()
* Fix some pep8 issues
* Don't translate exception messages
* Knock off a few TODOs
* Add can_send_version() to RPCClient
* Check start() does nothing on a running server
* Remove unused statements in base serializer
* Fix thinko in exchange_from_url()
* Call wait() in server tests
* Add docstrings for base executor class
* Remove a fixed fixme
* Add a client call timeout test
* Don't raise a driver-specific error on send
* Add some docstrings to driver base
* Test a bunch more RPC server scenarios
* Make it possible to call prepare() on call context
* Rework how queues get created in fake driver
* Use testscenarios
* Move files to new locations for oslo.messaging
* Import stuff from oslo-incubator
* Add oslo.messaging project infrastructure
* Add some RPC server tests
* More gracefully handle "no listeners" in fake driver
* Better error handling in server.start()
* Re-work server API to eliminate server subclasses
* Add license header to _executors/__init__.py
* Add RPCDispatcher tests
* Check for return value in client serializer test
* Add note about can_send_version()
* More client unit tests
* Make RPCClient.check_for_lock a callable
* Apply version cap check when casting
* Make RPCVersionCapError extend base exception
* Remove a bogus param from client.prepare() docs
* pep8 fixes for serializer code
* Simple RPCClient test
* Unit tests
* Move some stuff into doc/
* Implement Target.__eq__()
* Fix bug in exchange_from_url()
* pep8 fixes for fake driver
* Make utils.parse_url() docstring pep8 compliant
* Don't translate exceptions
* Misc pep8 fixes
* pep8 fixes for toplevel package
* Some error handling improvements
* Recommend wrapping the client class rather than subclassing
* Document how to use RPCClient directly
* Document the public RPC API
* Fix defaults for client.prepare() args
* Fix client.cast() typo
* Fix version_cap typo
* Allow all target attributes in client.prepare()
* Expose Serializer from top-level namespace
* Allow specifying a serializer when creating a server
* Make endpoint.target optional
* Dispatch methods in their own greenthreads
* Make rpc.dispatcher private
* Make the base RPCServer class private
* Fix typo with the serializer work
* Update use of stevedore
* Require topics and target in notify driver constructors
* Add generic serialization support
* Support namespace in RPCClient.prepare()
* Add parse_url to _utils
* Remove entry point lists from the public API
* Support capping message versions in the client
* Fix RPCClient check_for_lock()
* First cut at the notifier API
* Add some notes
* Add IncomingMessage abstraction
* Pass a context dict
* Fix docstring
* Implement a fake driver
* Adding reply infrastructure
* Add some exceptions
* Fix buglet with default timeout
* Fix target/namespace target buglet
* Fix rpc client buglets
* Fix 'Blockinging' typos
* Missing self parameter to server start()
* Fix default_exchange typo
* Add forgotten piece of eventlet executor
* It's _executors not _executor
* Make poll() just return the message
* Make drivers list public again
* Add top-level convenience aliases
* Prefix the executors module with underscore
* Prefix the messaging.server module with an underscore
* Prefix the drivers module with an underscore
* Make transport methods private
* Fix little typo in server exception class name
* Add missing utils module
* Add convenience RPC server classes
* Update changes.txt for recent API changes
* Use : for loading classes in entry_points
* Split the dispatcher from the executor and server
* Make driver and transport methods public
* Pass the driver instance to the listener instead of config
* Try out replacing "executor" for "dispatcher"
* Fix host vs server typo
* Initial framework
