------------------------------------------------------------------- Mon Sep 26 18:46:36 UTC 2011 - alexandre@exatati.com.br - Update to 1.4.1: - 1.4.0 broke the producer pool, resulting in new connections being established for every acquire. ------------------------------------------------------------------- Thu Sep 22 16:59:42 UTC 2011 - alexandre@exatati.com.br - Update to 1.4.0: - Adds module kombu.mixins. - New example: Task Queue Example - MongoDB transport did not work with MongoDB >= 2.0 (Issue #66) - Redis-py version check did not account for beta identifiers in version string. - Producer and Consumer now accepts a connection instance as the first argument. - BrokerConnection has aquired a connected attribute that can be used to check if the connection instance has established a connection. - ConnectionPool.acquire_channel now returns the connections default channel rather than establising a new channel that must be manually handled. - Added kombu.common.maybe_declare - kombu.compat.entry_to_queue() has been moved to kombu.common - New module kombu.clocks now contains an implementation of Lamports logical clock. ------------------------------------------------------------------- Mon Sep 19 18:45:36 UTC 2011 - alexandre@exatati.com.br - Update to 1.3.5: * Python 3: AMQP_PROTOCOL_HEADER must be bytes, not str. - Changes from 1.3.4: * Fixes syntax error in pools.reset ------------------------------------------------------------------- Thu Sep 15 16:55:35 UTC 2011 - alexandre@exatati.com.br - Update to 1.3.3: * pools.reset did not support after forker arguments. ------------------------------------------------------------------- Sun Sep 11 01:15:42 UTC 2011 - alexandre@exatati.com.br - Update to 1.3.2: * Broke Python 2.5 compatibility by importing parse_qsl from urlparse * Connection.default_channel is now closed when connection is revived after connection failures. * Pika: Channel now supports the connection.client attribute as required by the simple interface. * pools.set_limit now raises an exception if the limit is lower than the previous limit. * pools.set_limit no longer resets the pools. ------------------------------------------------------------------- Thu Sep 8 01:40:01 UTC 2011 - alexandre@exatati.com.br - Update to 1.3.1: * Last release broke after fork for pool reinitialization. * Producer/Consumer now has a connection attribute, giving access to the BrokerConnection of the instance. * Pika: Channels now have access to the underlying BrokerConnection instance using channel.connection.client. This was previously required by the Simple classes and is now also required by Consumer and Producer. * Connection.default_channel is now closed at object revival. * Adds kombu.clocks.LamportClock. * compat.entry_to_queue has been moved to new module kombu.common. ------------------------------------------------------------------- Mon Sep 5 22:53:31 UTC 2011 - alexandre@exatati.com.br - Update to 1.3.0: * Broker connection info can be now be specified using URLs * Now comes with default global connection and producer pools * SQS Transport: Persistence using SimpleDB is now disabled by default, after reports of unstable SimpleDB connections leading to errors * Producer can now be used as a context manager * Producer.__exit__ now properly calls release instead of close * Now silences all exceptions from import ctypes to match behaviour of the standard Python uuid module, and avoid passing on MemoryError exceptions on SELinux-enabled systems (Issue #52 + Issue #53) * amqp is now an alias to the amqplib transport * kombu.syn.detect_environment now returns ‘default’, ‘eventlet’, or ‘gevent’ depending on what monkey patches have been installed * Serialization registry has new attribute type_to_name so it is possible to lookup serializater name by content type * Exchange argument to Producer.publish can now be an Exchange instance * compat.Publisher now supports the channel keyword argument * Acking a message on some transports could lead to KeyError being raised (Issue #57) * Connection pool: Connections are no long instantiated when the pool is created, but instantiated as needed instead * Tests now pass on PyPy * Connection.as_uri now includes the password if the keyword argument include_password is set * Virtual transports now comes with a default default_connection_params attribute ------------------------------------------------------------------- Fri Jul 29 12:44:33 UTC 2011 - alexandre@exatati.com.br - Update to 1.2.1: * Now depends on amqplib >= 1.0.0. * Redis: Now automatically deletes auto_delete queues at basic_cancel. * serialization.unregister added so it is possible to remove unwanted seralizers. * Fixes MemoryError while importing ctypes on SELinux (Issue #52). * BrokerConnection.autoretry is a version of ensure that works with arbitrary functions (i.e. it does not need an associated object that implements the revive method. * ConnectionPool.acquire no longer force establishes the connection. The connection will be established as needed. * BrokerConnection.ensure now supports an on_revive callback that is applied whenever the connection is re-established. * Consumer.consuming_from(queue) returns True if the Consumer is consuming from queue. * Consumer.cancel_by_queue did not remove the queue from queues. * compat.ConsumerSet.add_queue_from_dict now automatically declared the queue if auto_declare set. ------------------------------------------------------------------- Fri Jul 15 12:52:07 UTC 2011 - alexandre@exatati.com.br - Update to 1.2.0: * Virtual: Fixes cyclic reference in Channel.close (Issue #49). * Producer.publish: Can now set additional properties using keyword arguments (Issue #48). * Adds Queue.no_ack option to control the no_ack option for individual queues. * Recent versions broke pylibrabbitmq support. * SimpleQueue and SimpleBuffer can now be used as contexts. * Test requirements specifies PyYAML==3.09 as 3.10 dropped Python 2.4 support * Now properly reports default values in Connection.info/.as_uri ------------------------------------------------------------------- Mon Jun 13 22:42:00 UTC 2011 - alexandre@exatati.com.br - Update to 1.1.6: * Redis: Fixes issue introduced in 1.1.4, where a redis connection failure could leave consumer hanging forever. * SQS: Now supports fanout messaging by using SimpleDB to store routing tables. This can be disabled by setting the `supports_fanout` transport option: >>> BrokerConnection(transport="SQS", ... transport_options={"supports_fanout": False}) * SQS: Now properly deletes a message when a message is acked. * SQS: Can now set the Amazon AWS region, by using the ``region`` transport option. * amqplib: Now uses `localhost` as default hostname instead of raising an error. ------------------------------------------------------------------- Tue Jun 7 22:57:44 UTC 2011 - alexandre@exatati.com.br - Update to 1.1.5: * Fixes compatibility with redis-py 2.4.4. - Aditional changes from: * Redis transport: Now requires redis-py version 2.4.4 or later. * New Amazon SQS transport added. * librabbitmq transport: Fixes default credentials support. * amqplib transport: Now supports `login_method` for SSL auth. Default login_method is AMQPLAIN. ------------------------------------------------------------------- Thu Apr 21 18:07:47 UTC 2011 - alexandre@exatati.com.br - Update to 1.1.3: * Redis: Consuming from multiple connections now works with Eventlet. * Redis: Can now perform channel operations while the channel is in BRPOP/LISTEN mode (Issue #35). Also the async BRPOP now times out after 1 second, this means that cancelling consuming from a queue/starting consuming from additional queues has a latency of up to one second (BRPOP does not support subsecond timeouts). * Virtual: Allow channel objects to be closed multiple times without error. * amqplib: AttributeError has been added to the list of known connection related errors (Connection.connection_errors). * amqplib: Now converts SSLError timeout errors to socket.timeout (http://bugs.python.org/issue10272) * Ensures cyclic references are destroyed when the connection is closed. ------------------------------------------------------------------- Wed Apr 6 17:43:07 UTC 2011 - alexandre@exatati.com.br - Update to 1.1.2: * Redis: Fixes serious issue where messages could be lost. The issue could happen if the message exceeded a certain number of kilobytes in size. It is recommended that all users of the Redis transport should upgrade to this version, even if not currently experiencing any issues. ------------------------------------------------------------------- Wed Apr 6 00:59:48 UTC 2011 - alexandre@exatati.com.br - Update to 1.1.1: * Virtual transports: Message body is now base64 encoded by default (Issue #27). This should solve problems sending binary data with virtual transports. Message compatibility is handled by adding a body_encoding property, so messages sent by older versions is compatible with this release. However – If you are accessing the messages directly not using Kombu, then you have to respect the body_encoding property. For transport authors: You don’t have to change anything in your custom transports, as this is handled automatically by the base class. If you want to use a different encoder you can do so by adding a key to Channel.codecs. Default encoding is specified by the Channel.body_encoding attribute. A new codec must provide two methods: encode(data) and decode(data). * ConnectionPool/ChannelPool/Resource: Setting limit=None (or 0) now disables pool semantics, and will establish and close the resource whenever acquired or released. * ConnectionPool/ChannelPool/Resource: Is now using a LIFO queue instead of the previous FIFO behavior. * BrokerConnection: Cloned connections did not inherit transport_options (__copy__). * contrib/requirements is now located in the top directory of the distribution. * MongoDB: Now supports authentication using the userid and password arguments to BrokerConnection (Issue #30). * BrokerConnection: Default autentication credentials are now delegated to the individual transports. * Consumer.__exit__() did not have the correct signature (Issue #32). * Channel objects now have a channel_id attribute. * MongoDB: Version sniffing broke with development versions of mongod (Issue #29). * New environment variable KOMBU_LOG_CONNECTION will now emit debug log messages for connection related actions. KOMBU_LOG_DEBUG will also enable KOMBU_LOG_CONNECTION. ------------------------------------------------------------------- Tue Mar 29 01:14:55 UTC 2011 - alexandre@exatati.com.br - Update to 1.0.7: * Now depends on anyjson 0.3.1 cjson is no longer a recommended json implementation, and anyjson will now emit a deprecation warning if used. * Please note that the Pika backend only works with version 0.5.2. The latest version (0.9.x) drastically changed API, and it is not compatible yet. * on_decode_error is now called for exceptions in message_to_python (Issue #24). * Redis: did not respect QoS settings. * Redis: Creating a connection now ensures the connection is established. This means BrokerConnection.ensure_connection works properly with Redis. * consumer_tag argument to Queue.consume can't be None (Issue #21). A None value is now automatically converted to empty string. An empty string will make the server generate a unique tag. * BrokerConnection now supports a transport_options argument. This can be used to pass additional arguments to transports. * Pika: drain_events raised socket.timeout even if no timeout set (Issue #8). ------------------------------------------------------------------- Tue Mar 22 16:59:52 UTC 2011 - alexandre@exatati.com.br - Update to 1.0.6: - The delivery_mode aliases (persistent/transient) were not automatically converted to integer, and would cause a crash if using the amqplib transport. - Redis: The redis-py InvalidData exception suddenly changed name to DataError. - The KOMBU_LOG_DEBUG environment variable can now be set to log all channel method calls. - Support for the following environment variables have been added: - KOMBU_LOG_CHANNEL will wrap channels in an object that logs every method call. - KOMBU_LOG_DEBUG both enables channel logging and configures the root logger to emit messages to standard error. - Aditional changes from 1.0.5: - Fixed memory leak when creating virtual channels. All virtual transports affected (redis, mongodb, memory, django, sqlalchemy, couchdb, beanstalk). - Virtual Transports: Fixed potential race condition when acking messages. - If you have been affected by this, the error would show itself as an exception raised by the OrderedDict implementation. (object no longer exists). - MongoDB transport requires the findandmodify command only available in MongoDB 1.3+, so now raises an exception if connected to an incompatible server version. - Virtual Transports: basic.cancel should not try to remove unknown consumer tag. - Added AUTHORS Changelog FAQ INSTALL README THANKS TODO files as documentation. ------------------------------------------------------------------- Tue Mar 1 00:31:41 UTC 2011 - alexandre@exatati.com.br - Update to 1.0.4: * Added Transport.polling_interval Used by django-kombu to increase the time to sleep between SELECTs when there are no messages in the queue. Users of django-kombu should upgrade to django-kombu v0.9.2. ------------------------------------------------------------------- Sat Feb 12 17:17:22 UTC 2011 - alexandre@exatati.com.br - Initial package (1.0.3) for openSUSE.