CHANGES
=======

1.8.3
-----

* Adding Publisher Acknowledgements/confirms
* consumer connections not closed properly
* rabbit: Set timeout on the underlying socket
* Updated from global requirements

1.8.2
-----

* rabbit: add some notes about heartbeat
* Disable and mark heartbeat as experimental
* rabbit: fix ipv6 support
* Fix changing keys during iteration in matchmaker heartbeat
* Add pluggability for matchmakers
* Don't raise Timeout on no-matchmaker results
* Fix the bug redis do not delete the expired keys
* set defaultbranch for reviews

1.8.1
-----

* Publish tracebacks only on debug level
* Reconnect on connection lost in heartbeat thread
* cleanup connection pool return
* rabbit: Improves logging
* fix up verb tense in log message
* rabbit: heartbeat implementation
* Add support for multiple namespaces in Targets

1.8.0
-----

* Updated from global requirements
* NotifyPublisher need handle amqp_auto_delete
* Fix matchmaker_redis ack_alive fails with KeyError

1.7.0
-----

* Add FAQ entry for notifier configuration
* rabbit: Fix behavior of rabbit_use_ssl
* amqp1: fix functional tests deps
* Skip functional tests that fail due to a qpidd bug
* Use import of zmq package for test skip
* Remove unnecessary log messages from amqp1 unit tests
* Include missing parameter in call to listen_for_notifications
* Fix the import of the driver by the unit test
* Add a new aioeventlet executor
* Add missing unit test for a recent commit
* Add the threading executor setup.cfg entrypoint
* Move each drivers options into its own group
* Refactor the replies waiter code
* Imported Translations from Transifex
* Fix notifications broken with ZMQ driver
* Gate functionnal testing improvements
* Treat sphinx warnings as errors
* Move gate hooks to the oslo.messaging tree
* Set the password used in gate
* Update README.rst format to match expectations

1.6.0
-----

* Declare DirectPublisher exchanges with passive=True
* Updated from global requirements
* Expose _impl_test for designate
* Update Oslo imports to remove namespace package
* Speedup the rabbit tests
* Fix functionnal tests
* kombu: fix driver loading with kombu+qpid scheme
* Fixed docstring for Notifier
* zmq: Refactor test case shared code
* Add more private symbols to the old namespace package
* Updated from global requirements
* Fixes test_two_pools_three_listener
* Add TimerTestCase missing tests case
* Ensure kombu channels are closed
* fix qpid test issue with eventlet monkey patching
* Make setup.cfg packages include oslo.messaging
* Upgrade to hacking 0.10
* Implements notification-dispatcher-filter
* Add oslo.messaging._drivers.common for heat tests
* Port zmq driver to Python 3
* Make sure zmq can work with redis
* fix qpid test issue with eventlet monkey patching
* Move files out of the namespace package
* Add a info log when a reconnection occurs
* rabbit: fix timeout timer when duration is None
* Don't log each received messages
* Fix some comments in a backporting review session
* Enable IPv6-support in libzmq by default
* Add a thread + futures executor based executor
* safe_log Sanitize Passwords in List of Dicts
* Updated from global requirements
* rabbit: add some tests when rpc_backend is set
* Warns user if thread monkeypatch is not done
* Add functional and unit 0mq driver tests
* The executor doesn't need to set the timeout
* qpid: honor iterconsume timeout
* rabbit: more precise iterconsume timeout
* Workflow documentation is now in infra-manual
* Touch up grammar in warning messages

1.5.1
-----

* Reintroduces fake_rabbit config option
* Make the RPCVersionCapError message clearer
* Doc: 'wait' releases driver connection, not 'stop'
* Don't allow call with fanout target
* Imported Translations from Transifex
* Add an optional executor callback to dispatcher

1.5.0
-----

* Rabbit: Fixes debug message format
* Rabbit: iterconsume must honor timeout
* Don't use oslo.cfg to set kombu in-memory driver
* Don't share connection pool between driver object
* Show what the threshold is being increased to
* Wait for expected messages in listener pool test
* Dispath messages in all listeners in a pool
* Reduces the unit tests run times
* Set correctly the messaging driver to use in tests
* Always use a poll timeout in the executor
* Have the timeout decrement inside the wait() method
* Warn user if needed when the process is forked
* Renamed PublishErrorsHandler
* Fix reconnect race condition with RabbitMQ cluster
* Create a new connection when a process fork has been detected
* Add more TLS protocols to rabbit impl
* Remove the use of PROTOCOL_SSLv3
* Add qpid and amqp 1.0 tox targets
* Updated from global requirements
* Imported Translations from Transifex
* rabbit: uses kombu instead of builtin stuffs
* Allows to overriding oslotest environ var
* Create ZeroMQ Context per socket
* Remove unuseful param of the ConnectionContext
* Updated from global requirements
* Add basic tests for 0mq matchmakers
* Notification listener pools
* Updated from global requirements
* Fix tiny typo in server.py
* Switch to oslo.middleware
* Updated from global requirements
* Activate pep8 check that _ is imported
* Enable user authentication in the AMQP 1.0 driver
* Documentation anomaly in TransportURL parse classmethod
* Don't put the message payload into warning log
* Updated from global requirements
* Fix incorrect attribute name in matchmaker_redis
* Add pbr to installation requirements
* Updated from global requirements
* Add driver independent functional tests
* Imported Translations from Transifex
* zmq: Remove dead code
* Updated from global requirements
* Finish transition to oslo.i18n
* Imported Translations from Transifex
* Imported Translations from Transifex
* qpid: Always auto-delete queue of DirectConsumer
* Updated from global requirements
* Imported Translations from Transifex
* Enable oslo.i18n for oslo.messaging
* Switch to oslo.serialization
* Cleanup listener after stopping rpc server
* Updated from global requirements
* Track the attempted method when raising UnsupportedVersion
* fix memory leak for function _safe_log
* Stop using importutils from oslo-incubator
* Add missing deprecated group amqp1
* Updated from global requirements
* Stop using intersphinx
* Add documentation explaining how to use the AMQP 1.0 driver
* Imported Translations from Transifex
* Construct ZmqListener with correct arguments
* Message was send to wrong node with use zmq as rpc_backend
* Work toward Python 3.4 support and testing
* Ensure the amqp options are present in config file
* Add contributing page to docs
* Import notifier middleware from oslo-incubator
* Let oslotest manage the six.move setting for mox

1.4.1
-----

* Imported Translations from Transifex
* Add square brackets for ipv6 based hosts
* An initial implementation of an AMQP 1.0 based messaging driver
* warn against sorting requirements
* Improve help strings
* Switch to oslo.utils
* Fix Python 3 testing
* Import oslo-incubator context module
* Import oslo-incubator/middleware/base
* Should not send replies for cast messages
* Port to Python 3
* Sync jsonutils from oslo-incubator
* Add parameter to customize Qpid receiver capacity
* Make tests pass with random python hashseed
* Set sample_default for rpc_zmq_host
* Enable PEP8 check E714
* Enable PEP8 check E265
* Enable PEP8 check E241
* Fix error in example of an RPC server
* Replace lambda method _
* Enable check for E226
* Updated from global requirements
* Add release notes for 1.4.0.0a4
* Add release notes for stable/icehouse 1.3.1 release

1.4.0.0a4
---------

* Enabled hacking checks H305 and H307
* Bump hacking to version 0.9.2
* Fixes incorrect exchange lock in fake driver
* Imported Translations from Transifex

1.4.0.0a3
---------

* Add release notes for 1.4.0.0a2/a3
* Fix AMQPListener for polling with timeout
* Replaced 'e.g.' with 'for example'
* Use assertEqual instead of assertIs for strings

1.4.0.0a2
---------

* Fix structure of unit tests in oslo.messaging (part 3 last)
* Fix structure of unit tests in oslo.messaging (part 2)
* Fix slow notification listener tests
* encoding error in file
* Fix info method of ListenerSetupMixin

1.4.0.0a1
---------

* Add release notes for 1.4.0.0a1
* Fix formatting of TransportURL.parse() docs
* Remove duplicate docs for MessageHandlingServer
* Add missing docs for list_opts()
* Add 'docs' tox environment
* Replace usage of str() with six.text_type
* Fix structure of unit tests in oslo.messaging (part 1)
* Synced jsonutils and its dependencies from oslo-incubator
* Ensures listener queues exist in fake driver
* RPC server doc: use the blocking executor
* Fix the notifier example
* 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
* fixed pep8 issue E265
* 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
