python-kombu/python-kombu.changes

478 lines
20 KiB
Plaintext
Raw Normal View History

-------------------------------------------------------------------
Tue Apr 3 16:49:46 UTC 2012 - alexandre@exatati.com.br
- Update to 2.1.4:
* MongoDB: URL parsing are now delegated to the pymongo library
(Fixes Issue #103 and Issue #87).
Fix contributed by Flavio Percoco Premoli and James Sullivan
* SQS: A bug caused SimpleDB to be used even if sdb persistence
was not enabled (Issue #108).
Fix contributed by Anand Kumria.
* Django: Transaction was committed in the wrong place, causing
data cleanup to fail (Issue #115).
Fix contributed by Daisuke Fujiwara.
* MongoDB: Now supports replica set URLs.
Contributed by Flavio Percoco Premoli.
* Redis: Now raises a channel error if a queue key that is currently
being consumed from disappears.
Fix contributed by Stephan Jaekel.
* All transport 'channel_errors' lists now includes
kombu.exception.StdChannelError.
* All kombu exceptions now inherit from a common
kombu.exceptions.KombuError.
-------------------------------------------------------------------
Tue Mar 27 08:35:53 UTC 2012 - saschpe@suse.de
- Change rabbitmq-server recommends to suggests, OpenStack doesn't like that
- Simplified macro usage
- Use upstream tarball
-------------------------------------------------------------------
Tue Mar 20 17:42:53 UTC 2012 - alexandre@exatati.com.br
- Update to 2.1.3:
* Fixes Jython compatibility issues.
* Fixes Python 2.5 compatibility issues.
-------------------------------------------------------------------
Wed Mar 14 13:45:07 UTC 2012 - alexandre@exatati.com.br
- Add BuildRequires python-unittest2 to fix SLE builds.
-------------------------------------------------------------------
Wed Mar 14 13:26:04 UTC 2012 - alexandre@exatati.com.br
- Do not touch files without a submitrequest.
-------------------------------------------------------------------
Sat Mar 10 17:49:39 UTC 2012 - saschpe@gmx.de
- Require rabbitmq-server, suggest mongodb or couchdb
-------------------------------------------------------------------
Sat Mar 10 17:00:40 UTC 2012 - saschpe@gmx.de
- Update to version 2.1.1:
* Connection URLs now supports encoded characters.
* Fixed a case where connection pool could not recover from connection loss.
* We now patch amqplib's ``__del__`` method to skip trying to close the socket
if it is not connected, as this resulted in an annoying warning.
* Compression can now be used with binary message payloads.
- Don't install INSTALL
- Run testsuite
-------------------------------------------------------------------
Sat Feb 4 18:00:49 UTC 2012 - alexandre@exatati.com.br
- Update to 2.1.0:
* MongoDB: Now supports fanout (broadcast) (Issue #98).
Contributed by Scott Lyons.
* pika transport: Now works with pika 0.9.5 and 0.9.6dev.
The old pika transport (supporting 0.5.x) is now available
as alias oldpika.
(Note terribly latency has been experienced with the new pika
versions, so this is still an experimental transport).
-------------------------------------------------------------------
Tue Jan 17 01:15:23 UTC 2012 - alexandre@exatati.com.br
- Update to 2.0.0:
Important Notes
- No longer supports Python 2.4.
New Transports
- django-kombu is now part of Kombu core.
- kombu-sqlalchemy is now part of Kombu core.
News
- kombu.mixins.ConsumerMixin is a mixin class that lets you
easily write consumer programs and threads.
- SQS Transport: Added support for SQS queue prefixes (Issue #84).
- Producer.publish now supports automatic retry.
- Producer.publish now supports a declare keyword argument.
Fixes
- Redis transport: Timeout was multiplied by 1000 seconds when
using select for event I/O (Issue #86).
-------------------------------------------------------------------
Wed Nov 30 14:55:08 UTC 2011 - alexandre@exatati.com.br
- Update to 1.5.1:
* Fixes issue with kombu.compat introduced in 1.5.0 (Issue #83).
* Adds the ability to disable content_types in the serializer registry.
-------------------------------------------------------------------
- Update to 1.5.0: * kombu.pools: Fixed a bug resulting in resources not being properly released. This was caused by the use of __hash__ to distinguish them. * Virtual transports: Dead-letter queue is now disabled by default. The dead-letter queue was enabled by default to help application authors, but now that Kombu is stable it should be removed. There are after all many cases where messages should just be dropped when there are no queues to buffer them, and keeping them without supporting automatic cleanup is rather considered a resource leak than a feature. If wanted the dead-letter queue can still be enabled, by using the deadletter_queue transport option: >>> x = BrokerConnection("redis://", ... transport_options={"deadletter_queue": "ae.undeliver"}) In addition, an UndeliverableWarning is now emitted when the dead-letter queue is enabled and a message ends up there. * MongoDB transport now supports Replicasets (Issue #81). * The Connection.ensure`` methods now accepts a max_retries value of 0. A value of 0 now means *do not retry*, which is distinct from :const:`None` which means *retry indefinitely*. * SQS Transport: Now has a lowercase `sqs alias, so that it can be used with broker URLs (Issue #82). * SQS Transport: Fixes KeyError on message acknowledgements (Issue #73). The SQS transport now uses UUID's for delivery tags, rather than a counter. * SQS Transport: Unicode related fixes (Issue #82). * Redis version check could crash because of improper handling of types (Issue #63). * Fixed error with Resource.force_close_all, when resources OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=24
2011-11-28 03:28:28 +01:00
Mon Nov 28 02:19:24 UTC 2011 - alexandre@exatati.com.br
- Update to 1.5.0: * kombu.pools: Fixed a bug resulting in resources not being properly released. This was caused by the use of __hash__ to distinguish them. * Virtual transports: Dead-letter queue is now disabled by default. The dead-letter queue was enabled by default to help application authors, but now that Kombu is stable it should be removed. There are after all many cases where messages should just be dropped when there are no queues to buffer them, and keeping them without supporting automatic cleanup is rather considered a resource leak than a feature. If wanted the dead-letter queue can still be enabled, by using the deadletter_queue transport option: >>> x = BrokerConnection("redis://", ... transport_options={"deadletter_queue": "ae.undeliver"}) In addition, an UndeliverableWarning is now emitted when the dead-letter queue is enabled and a message ends up there. * MongoDB transport now supports Replicasets (Issue #81). * The Connection.ensure`` methods now accepts a max_retries value of 0. A value of 0 now means *do not retry*, which is distinct from :const:`None` which means *retry indefinitely*. * SQS Transport: Now has a lowercase `sqs alias, so that it can be used with broker URLs (Issue #82). * SQS Transport: Fixes KeyError on message acknowledgements (Issue #73). The SQS transport now uses UUID's for delivery tags, rather than a counter. * SQS Transport: Unicode related fixes (Issue #82). * Redis version check could crash because of improper handling of types (Issue #63). * Fixed error with Resource.force_close_all, when resources OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=24
2011-11-28 03:28:28 +01:00
- Update to 1.5.0:
* kombu.pools: Fixed a bug resulting in resources not being properly released.
This was caused by the use of __hash__ to distinguish them.
* Virtual transports: Dead-letter queue is now disabled by default.
The dead-letter queue was enabled by default to help application
authors, but now that Kombu is stable it should be removed.
There are after all many cases where messages should just be dropped
when there are no queues to buffer them, and keeping them without
supporting automatic cleanup is rather considered a resource leak
than a feature.
If wanted the dead-letter queue can still be enabled, by using
the deadletter_queue transport option:
>>> x = BrokerConnection("redis://",
... transport_options={"deadletter_queue": "ae.undeliver"})
In addition, an UndeliverableWarning is now emitted when
the dead-letter queue is enabled and a message ends up there.
* MongoDB transport now supports Replicasets (Issue #81).
* The Connection.ensure`` methods now accepts a max_retries value
of 0.
A value of 0 now means *do not retry*, which is distinct from :const:`None`
which means *retry indefinitely*.
* SQS Transport: Now has a lowercase `sqs alias, so that it can be
used with broker URLs (Issue #82).
* SQS Transport: Fixes KeyError on message acknowledgements (Issue #73).
The SQS transport now uses UUID's for delivery tags, rather than
a counter.
* SQS Transport: Unicode related fixes (Issue #82).
* Redis version check could crash because of improper handling of types
(Issue #63).
* Fixed error with Resource.force_close_all, when resources
not yet properly initialized. (Issue #78).
-------------------------------------------------------------------
Thu Oct 27 22:33:03 UTC 2011 - alexandre@exatati.com.br
- Update to 1.4.3:
- Fixes bug in ProducerPool where too many resources would be acquired.
-------------------------------------------------------------------
Wed Oct 26 18:12:33 UTC 2011 - alexandre@exatati.com.br
- Update to 1.4.2:
- Eventio: Polling should ignore errno.EINTR
- SQS: str.encode did only start accepting kwargs after Py2.7.
- simple_task_queue example didnt run correctly (Issue #72).
- Empty messages would not raise an exception not able to be
handled by on_decode_error (Issue #72)
- CouchDB: Properly authenticate if user/password set (Issue #70)
- BrokerConnection.Consumer had the wrong signature.
-------------------------------------------------------------------
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.
- 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 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-kombu?expand=0&rev=14
2011-09-06 00:56:33 +02:00
-------------------------------------------------------------------
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 dont 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.