All Versions
Latest Version
Avg Release Cycle
42 days
Latest Release

Changelog History
Page 8

  • v3.0.3 Changes

    πŸš€ :release-date: 2013-11-04 03:00 P.M UTC πŸš€ :release-by: Ask Solem

    • βͺ SQS: Properly reverted patch that caused delays between messages.

      Contributed by James Saryerwinnie

    • select: Clear all registerd fds on poller.cloe

    • Eventloop: unregister if EBADF raised.

    .. _version-3.0.2:

  • v3.0.2 Changes

    πŸš€ :release-date: 2013-10-29 02:00 P.M UTC πŸš€ :release-by: Ask Solem

    • Now depends on :mod:amqp version 1.3.2.

    • 🚚 select: Fixed problem where unregister did not properly remove the fd.

    .. _version-3.0.1:

  • v3.0.1 Changes

    πŸš€ :release-date: 2013-10-24 04:00 P.M UTC πŸš€ :release-by: Ask Solem

    • Now depends on :mod:amqp version 1.3.1.

    • Redis: New option fanout_keyprefix

      This transport option is recommended for all users as it ensures that broadcast (fanout) messages sent is only seen by the current virtual host:

      .. code-block:: python

      Connection('redis://', transport_options={'fanout_keyprefix': True})

      However, enabling this means that you cannot send or receive messages from older Kombu versions so make sure all of your participants are upgraded and have the transport option enabled.

      This will be the default behavior in Kombu 4.0.

    • 🚚 Distribution: Removed file requirements/py25.txt.

    • MongoDB: Now disables auto_start_request.

    • MongoDB: Enables use_greenlets if eventlet/gevent used.

    • πŸ›  Pidbox: Fixes problem where expires header was None, which is a value not supported by the amq protocol.

    • ConsumerMixin: New consumer_context method for starting the consumer without draining events.

    .. _version-3.0.0:

  • v3.0.0 Changes

    πŸš€ :release-date: 2013-10-14 04:00 P.M BST πŸš€ :release-by: Ask Solem

    • Now depends on :mod:amqp version 1.3.

    • πŸ‘ No longer supports Python 2.5

      The minimum Python version supported is now Python 2.6.0 for Python 2, and Python 3.3 for Python 3.

    • πŸ‘ Dual codebase supporting both Python 2 and 3.

      No longer using 2to3, making it easier to maintain support for both versions.

    • 0️⃣ pickle, yaml and msgpack deserialization is now disabled by default.

      This means that Kombu will by default refuse to handle any content type other than json.

      Pickle is known to be a security concern as it will happily load any object that is embedded in a pickle payload, and payloads can be crafted to do almost anything you want. The default serializer in Kombu is json but it also supports a number of other serialization formats that it will evaluate if received: including pickle.

      It was always assumed that users were educated about the security implications of pickle, but in hindsight we don't think users should be expected to secure their services if we have the ability to be secure by default.

      By disabling any content type that the user did not explicitly want enabled we ensure that the user must be conscious when they add pickle as a serialization format to support.

      The other built-in serializers (yaml and msgpack) are also disabled even though they aren't considered insecure [#f1]_ at this point. Instead they're disabled so that if a security flaw is found in one of these libraries in the future, you will only be affected if you have explicitly enabled them.

      To have your consumer accept formats other than json you have to explicitly add the wanted formats to a white-list of accepted content types:

      .. code-block:: pycon

      >>> c = Consumer(conn, accept=['json', 'pickle', 'msgpack'])

      or when using synchronous access:

      .. code-block:: pycon

      >>> msg = queue.get(accept=['json', 'pickle', 'msgpack'])

      The accept argument was first supported for consumers in version 2.5.10, and first supported by Queue.get in version 2.5.15 so to stay compatible with previous versions you can enable the previous behavior:

      >>> from kombu import enable_insecure_serializers
      >>> enable_insecure_serializers()

      But note that this has global effect, so be very careful should you use it.

      .. rubric:: Footnotes

      .. [#f1] The PyYAML library has a :func:yaml.load function with some of the same security implications as pickle, but Kombu uses the :func:yaml.safe_load function which is not known to be affected.

    • kombu.async: Experimental event loop implementation.

      This code was previously in Celery but was moved here to make it easier for async transport implementations.

      The API is meant to match the Tulip API which will be included in Python 3.4 as the asyncio module. It's not a complete implementation obviously, but the goal is that it will be easy to change to it once that is possible.

    • 🚚 Utility function kombu.common.ipublish has been removed.

      Use Producer(..., retry=True) instead.

    • 🚚 Utility function kombu.common.isend_reply has been removed

      Use send_reply(..., retry=True) instead.

    • kombu.common.entry_to_queue and kombu.messaging.entry_to_queue has been removed.

      Use Queue.from_dict(name, **options) instead.

    • βͺ Redis: Messages are now restored at the end of the list.

      Contributed by Mark Lavin.

    • 🚚 StdConnectionError and StdChannelError is removed and :exc:amqp.ConnectionError and :exc:amqp.ChannelError is used instead.

    • 🚚 Message object implementation has moved to :class:kombu.message.Message.

    • Serailization: Renamed functions encode/decode to :func:~kombu.serialization.dumps and :func:~kombu.serialization.loads.

      For backward compatibility the old names are still available as aliases.

    • 🚚 The kombu.log.anon_logger function has been removed.

      Use :func:~kombu.log.get_logger instead.

    • queue_declare now returns namedtuple with queue, message_count, and consumer_count fields.

    • πŸ”’ LamportClock: Can now set lock class

    • :mod:kombu.utils.clock: Utilities for ordering events added.

    • :class:~kombu.simple.SimpleQueue now allows you to override the exchange type used.

      Contributed by Vince Gonzales.

    • ⚑️ Zookeeper transport updated to support new changes in the :mod:kazoo library.

      Contributed by Mahendra M.

    • pyamqp/librabbitmq: Transport options are now forwarded as keyword arguments to the underlying connection (Issue #214).

    • Transports may now distinguish between recoverable and irrecoverable connection and channel errors.

    • 🚚 kombu.utils.Finalize has been removed: Use :mod:multiprocessing.util.Finalize instead.

    • πŸ‘ Memory transport now supports the fanout exchange type.

      Contributed by Davanum Srinivas.

    • Experimental new Pyro_ transport (:mod:kombu.transport.pyro).

      Contributed by Tommie McAfee.

    .. _Pyro:

    • Experimental new SoftLayer MQ_ transport (:mod:kombu.transport.SLMQ).

      Contributed by Kevin McDonald

    .. _SoftLayer MQ:

    • Eventio: Kqueue breaks in subtle ways so select is now used instead.

    • SQLAlchemy transport: Can now specify table names using the queue_tablename and message_tablename transport options.

      Contributed by Ryan Petrello.

    πŸ‘ Redis transport: Now supports using local UNIX sockets to communicate with the Redis server (Issue #1283)

    To connect using a UNIX socket you have to use the ``redis+socket``
    URL-prefix: ``redis+socket:///tmp/redis.sock``.
    This functionality was merged from the `celery-redis-unixsocket`_ project.
    Contributed by Maxime Rouyrre.

    ⏱ ZeroMQ transport: drain_events now supports timeout.

    Contributed by Jesper ThomschΓΌtz.

    .. _celery-redis-unixsocket:

    .. _version-2.5.16:

  • v2.5.16 Changes

    πŸš€ :release-date: 2013-10-04 03:30 P.M BST πŸš€ :release-by: Ask Solem

    • πŸ›  Python 3: Fixed problem with dependencies not being installed.

    .. _version-2.5.15:

  • v2.5.15 Changes

    πŸš€ :release-date: 2013-10-04 03:30 P.M BST πŸš€ :release-by: Ask Solem

    • Declaration cache: Now only keeps hash of declaration so that it does not keep a reference to the channel.

    • Declaration cache: Now respects entity.can_cache_declaration attribute.

    • πŸ›  Fixes Python 2.5 compatibility.

    • πŸ›  Fixes tests after python-msgpack changes.

    • πŸ‘ Queue.get: Now supports accept argument.

    .. _version-2.5.14:

  • v2.5.14 Changes

    πŸš€ :release-date: 2013-08-23 05:00 P.M BST πŸš€ :release-by: Ask Solem

    • safe_str did not work properly resulting in :exc:UnicodeDecodeError (Issue #248).

    .. _version-2.5.13:

  • v2.5.13 Changes

    πŸš€ :release-date: 2013-08-16 04:00 P.M BST πŸš€ :release-by: Ask Solem

    • Now depends on :mod:amqp 1.0.13

    • πŸ›  Fixed typo in Django functional tests.

    • safe_str now returns Unicode in Python 2.x

      Fix contributed by GermΓ‘n M. Bravo.

    • πŸ”€ amqp: Transport options are now merged with arguments supplied to the connection.

    • βœ… Tests no longer depends on distribute, which was deprecated and merged back into setuptools.

      Fix contributed by Sascha Peilicke.

    • ConsumerMixin now also restarts on channel related errors.

      Fix contributed by Corentin Ardeois.

    .. _version-2.5.12:

  • v2.5.12 Changes

    πŸš€ :release-date: 2013-06-28 03:30 P.M BST πŸš€ :release-by: Ask Solem

    • Redis: Ignore errors about keys missing in the round-robin cycle.

    • πŸ›  Fixed test suite errors on Python 3.

    • πŸ›  Fixed msgpack test failures.

    .. _version-2.5.11:

  • v2.5.11 Changes

    πŸš€ :release-date: 2013-06-25 02:30 P.M BST πŸš€ :release-by: Ask Solem

    • Now depends on amqp 1.0.12 (Py3 compatibility issues).

    • 🚚 MongoDB: Removed cause of a "database name in URI is being ignored" warning.

      Fix by Flavio Percoco Premoli

    • βž• Adds passive option to :class:~kombu.Exchange.

      Setting this flag means that the exchange will not be declared by kombu, but that it must exist already (or an exception will be raised).

      Contributed by Rafal Malinowski

    • now gives the current hostname and not the list of available hostnames.

      Fix contributed by John Shuping.

    • pyamqp: Transport options are now forwarded as kwargs to amqp.Connection.

    • librabbitmq: Transport options are now forwarded as kwargs to librabbitmq.Connection.

    • librabbitmq: Now raises :exc:NotImplementedError if SSL is enabled.

      The librabbitmq library does not support ssl, but you can use stunnel or change to the pyamqp:// transport instead.

      Fix contributed by Dan LaMotte.

    • πŸ›  librabbitmq: Fixed a cyclic reference at connection close.

    • 🚚 eventio: select implementation now removes bad file descriptors.

    • πŸ›  eventio: Fixed Py3 compatibility problems.

    • βœ… Functional tests added for py-amqp and librabbitmq transports.

    • Resource.force_close_all no longer uses a mutex.

    • Pidbox: Now ignores IconsistencyError when sending replies, as this error simply means that the client may no longer be alive.

    • βž• Adds new :meth:Connection.collect <~kombu.Connection.collect> method, that can be used to clean up after connections without I/O.

    • queue_bind is no longer called for queues bound to the "default exchange" (Issue #209).

      Contributed by Jonathan Halcrow.

    • The max_retries setting for retries was not respected correctly (off by one).

    .. _version-2.5.10: