All Versions
152
Latest Version
Avg Release Cycle
42 days
Latest Release
-

Changelog History
Page 4

  • v4.2.2-post1 Changes

    January 08, 2019

    πŸš€ :release-date: 2019-01-01 04:00 P.M IST πŸš€ :release-by: Omer Katz

    .. note::

    The previous release contained code from master. It is now deleted from PyPi. Please use this release instead.

    • πŸš€ No changes since previous release.

    .. _version-4.2.2:

  • v4.2.1 Changes

    May 30, 2018

    πŸš€ :release-date: 2018-05-21 09:00 A.M IST πŸš€ :release-by: Omer Katz

    .. note::

    The 4.2.0 release contained remains of the async module by accident. This is now fixed.

    • πŸ– Handle librabbitmq fileno raising a ValueError when socket is not connected.

    Contributed by Bryan Shelton

    .. _version-4.2.0:

  • v4.2.0 Changes

    πŸš€ :release-date: 2018-05-21 09:00 A.M IST πŸš€ :release-by: Omer Katz

    • Now passing max_retries, interval_start, interval_step, interval_max parameters from broker transport_options to :meth:~kombu.Connection.ensure_connection when returning :meth:~kombu.Connection.default_connection (Issue #765).

      Contributed by Anthony Lukach.

    • 0️⃣ Qpid: messages are now durable by default

      Contributed by David Davis

    • Kombu now requires version 2.10.4 or greater of the redis library, in line with Celery

      Contributed by Colin Jeanne

    • πŸ›  Fixed ImportError in some environments with outdated simplejson

      Contributed by Aaron Morris

    • πŸ›  MongoDB: fixed failure on MongoDB versions with an "-rc" tag

      Contributed by dust8

    • ⏱ Ensure periodic polling frequency does not exceed timeout in virtual transport

      Contributed by Arcadiy Ivanov

    • πŸ›  Fixed string handling when using python-future module

      Contributed by John Koehl

    • Replaced "async" with "asynchronous" in preparation for Python 3.7

      Contributed by Thomas Achtemichuk

    • πŸ‘ Allow removing pool size limit when in use

      Contributed by Alex Hill

    • πŸ›  Codebase improvements and fixes by:

      • j2gg0s
      • Jon Dufresne
      • Jonas Lergell
      • Mads Jensen
      • Nicolas Delaby
      • Omer Katz
    • πŸ“š Documentation improvements by:

      • Felix Yan
      • Harry Moreno
      • Mads Jensen
      • Omer Katz
      • Radha Krishna. S.
      • Wojciech MatyΕ›kiewicz

    .. _version-4.1.0:

  • v4.1.0 Changes

    πŸš€ :release-date: 2017-07-17 04:45 P.M MST πŸš€ :release-by: Anthony Lukach

    • πŸ›  SQS: Added support for long-polling on all supported queries. Fixed bug causing error on parsing responses with no retrieved messages from SQS.

      Contributed by Anthony Lukach.

    • πŸ›  Async hub: Fixed potential infinite loop while performing todo tasks (Issue celery/celery#3712).

    • πŸ›  Qpid: Fixed bug where messages could have duplicate delivery_tag (Issue #563).

      Contributed by bmbouter.

    • πŸ›  MongoDB: Fixed problem with using readPreference option at pymongo 3.x.

      Contributed by Mikhail Elovskikh.

    • πŸ‘ Re-added support for :pypi:SQLAlchemy

      Contributed by Amin Ghadersohi.

    • 0️⃣ SQS: Fixed bug where hostname would default to localhost if not specified in settings.

      Contributed by Anthony Lukach.

    • πŸ‘ Redis: Added support for reading password from transport URL (Issue #677).

      Contributed by George Psarakis.

    • RabbitMQ: Ensured safer encoding of queue arguments.

      Contributed by Robert Kopaczewski.

    • βž• Added fallback to :func:uuid.uuid5 in :func:generate_oid if :func:uuid.uuid3 fails.

      Contributed by Bill Nottingham.

    • πŸ›  Fixed race condition and innacurrate timeouts for :class:kombu.simple.SimpleBase (Issue #720).

      Contributed by c-nichols.

    • πŸ›  Zookeeper: Fixed last chroot character trimming

      Contributed by Dima Kurguzov.

    • πŸ›  RabbitMQ: Fixed bug causing an exception when attempting to close an already-closed connection (Issue #690).

      Contributed by eavictor.

    • βœ‚ Removed deprecated use of StopIteration in generators and invalid regex escape sequence.

      Contributed by Jon Dufresne.

    • βž• Added Python 3.6 to CI testing.

      Contributed by Jon Dufresne.

    • SQS: Allowed endpoint URL to be specified in the boto3 connection.

      Contributed by georgepsarakis.

    • πŸ‘ SQS: Added support for Python 3.4.

      Contributed by Anthony Lukach.

    • SQS: kombu[sqs] now depends on :pypi:boto3 (no longer using :pypi:boto).

      • Adds support for Python 3.4+
      • Adds support for FIFO queues (Issue #678) and (Issue celery/celery#3690)
      • Avoids issues around a broken endpoints file (Issue celery/celery#3672)

      Contributed by Mischa Spiegelmock and Jerry Seutter.

    • πŸ‘ Zookeeper: Added support for delaying task with Python 3.

      Contributed by Dima Kurguzov.

    • πŸ›  SQS: Fixed bug where :meth:kombu.transport.SQS.drain_events did not support callback argument (Issue #694).

      Contributed by Michael Montgomery.

    • πŸ›  Fixed bug around modifying dictionary size while iterating over it (Issue #675).

      Contributed by Felix Yan.

    • πŸ‘» etcd: Added handling for :exc:EtcdException exception rather than :exc:EtcdError.

      Contributed by Stephen Milner.

    • πŸ“š Documentation improvements by:

      • Mads Jensen
      • Matias Insaurralde
      • Omer Katz
      • Dmitry Dygalo
      • Christopher Hoskin

    .. _version-4.0.2:

  • v4.0.2 Changes

    πŸš€ :release-date: 2016-12-15 03:31 P.M PST πŸš€ :release-by: Ask Solem

    • Now depends on :mod:amqp 2.1.4

      This new version takes advantage of TCP Keepalive settings on Linux, making it better at detecting closed connections, also in failover conditions.

    • Redis: Priority was reversed so, e.g. priority 0 became priority 9.

    .. _version-4.0.1:

  • v4.0.1 Changes

    πŸš€ :release-date: 2016-12-07 06:00 P.M PST πŸš€ :release-by: Ask Solem

    • Now depends on :mod:amqp 2.1.3

      This new version takes advantage of the new TCP_USER_TIMEOUT socket option on Linux.

    • 🐎 Producer: Fixed performance degradation when default exchange specified (Issue #651).

    • QPid: Switch to using getattr in qpid.Transport.del (Issue #658)

      Contributed by Patrick Creech.

    • QPid: Now uses monotonic time for timeouts.

    • πŸ›  MongoDB: Fixed compatibility with Python 3 (Issue #661).

    • Consumer: __exit__ now skips cancelling consumer if connection-related error raised (Issue #670).

    • 🚚 MongoDB: Removes use of natural sort (Issue #638).

      Contributed by Anton Chaporgin.

    • πŸ›  Fixed wrong keyword argument channel error (Issue #652).

      Contributed by Toomore Chiang.

    • Safe argument to urllib.quote must be bytes on Python 2.x (Issue #645).

    • πŸ“š Documentation improvements by:

      • Carlos Edo
      • Cemre Mengu

    .. _version-4.0:

    4.0

    πŸš€ :release-date: 2016-10-28 16:45 P.M UTC πŸš€ :release-by: Ask Solem

    • Now depends on :mod:amqp 2.0.

      The new py-amqp version have been refactored for better performance, using modern Python socket conventions, and API consistency.

    • No longer depends on :mod:anyjson.

      Kombu will now only choose between :pypi:simplejson and the built-in :mod:json.

      Using the latest version of simplejson is recommended:

      .. code-block:: console

      $ pip install -U simplejson
      
    • βœ‚ Removed transports that are no longer supported in this version:

      • Django ORM transport
      • SQLAlchemy ORM transport
      • Beanstalk transport
      • ZeroMQ transport
      • amqplib transport (use pyamqp).
    • API Changes

      • Signature of :class:kombu.Message now takes body as first argment.

        It used to be Message(channel, body=body, **kw), but now it's Message(body, channel=channel, **kw).

        This is unlikey to affect you, as the Kombu API does not have users instantiate messages manually.

    • πŸ†• New SQS transport

      Donated by NextDoor, with additional contributions from mdk.

      .. note::

      ``kombu[sqs]`` now depends on :pypi:`pycurl`.
      
    • πŸ†• New Consul transport.

      Contributed by Wido den Hollander.

    • πŸ†• New etcd transport.

      Contributed by Stephen Milner.

    • πŸ†• New Qpid transport.

      It was introduced as an experimental transport in Kombu 3.0, but is now mature enough to be fully supported.

      Created and maintained by Brian Bouterse.

    • Redis: Priority 0 is now lowest, 9 is highest. (backward incompatible)

      This to match how priorities in AMQP works.

      Fix contributed by Alex Koshelev.

    • πŸ‘ Redis: Support for Sentinel

      You can point the connection to a list of sentinel URLs like:

      .. code-block:: text

      sentinel://0.0.0.0:26379;sentinel://0.0.0.0:26380/...
      

      where each sentinel is separated by a ;. Multiple sentinels are handled by :class:kombu.Connection constructor, and placed in the alternative list of servers to connect to in case of connection failure.

    Contributed by Sergey Azovskov, and Lorenzo Mancini

    • RabbitMQ Queue Extensions

      New arguments have been added to :class:kombu.Queue that lets you directly and conveniently configure the RabbitMQ queue extensions.

      • Queue(expires=20.0)

        Set queue expiry time in float seconds.

        See :attr:kombu.Queue.expires.

      • Queue(message_ttl=30.0)

        Set queue message time-to-live float seconds.

        See :attr:kombu.Queue.message_ttl.

      • Queue(max_length=1000)

        Set queue max length (number of messages) as int.

        See :attr:kombu.Queue.max_length.

      • Queue(max_length_bytes=1000)

        Set queue max length (message size total in bytes) as int.

        See :attr:kombu.Queue.max_length_bytes.

      • Queue(max_priority=10)

        Declare queue to be a priority queue that routes messages based on the priority field of the message.

        See :attr:kombu.Queue.max_priority.

    • πŸ‘ RabbitMQ: Message.ack now supports the multiple argument.

      If multiple is set to True, then all messages received before the message being acked will also be acknowledged.

    • amqps:// can now be specified to require SSL (Issue #610).

    • Consumer.cancel_by_queue is now constant time.

    • Connection.ensure* now raises :exc:kombu.exceptions.OperationalError.

      Things that can be retried are now reraised as :exc:kombu.exceptions.OperationalError.

    • πŸ›  Redis: Fixed SSL support.

      Contributed by Robert Kolba.

    • πŸ†• New Queue.consumer_arguments can be used for the ability to set consumer priority via x-priority.

    See https://www.rabbitmq.com/consumer-priority.html

    Example:

    .. code-block:: python

        Queue(
            'qname',
            exchange=Exchange('exchange'),
            routing_key='qname',
            consumer_arguments={'x-priority': 3},
        )
    
    • Queue/Exchange: no_declare option added (also enabled for internal amq. exchanges) (Issue #565).

    • JSON serializer now calls obj.__json__ for unsupported types.

      This means you can now define a __json__ method for custom types that can be reduced down to a built-in json type.

      Example:

      .. code-block:: python

      class Person:
          first_name = None
          last_name = None
          address = None
      
          def __json__(self):
              return {
                  'first_name': self.first_name,
                  'last_name': self.last_name,
                  'address': self.address,
              }
      
    • JSON serializer now handles datetimes, Django promise, UUID and Decimal.

    • Beanstalk: Priority 0 is now lowest, 9 is highest. (backward incompatible)

      This to match how priorities in AMQP works.

      Fix contributed by Alex Koshelev.

    • πŸ‘ Redis: now supports SSL using the ssl argument to :class:~kombu.Connection.

    • Redis: Fanout exchanges are no longer visible between vhosts, and fanout messages can be filtered by patterns. (backward incompatible)

      It was possible to enable this mode previously using the fanout_prefix, and fanout_patterns transport options, but now these are enabled by default.

      If you want to mix and match producers/consumers running different versions you need to configure your kombu 3.x clients to also enable these options:

      .. code-block:: pycon

      >>> Connection(transport_options={
          'fanout_prefix': True,
          'fanout_patterns': True,
      })
      
    • Pidbox: Mailbox new arguments: TTL and expiry.

      Mailbox now supports new arguments for controlling message TTLs and queue expiry, both for the mailbox queue and for reply queues.

      • queue_expires (float/int seconds).
      • queue_ttl (float/int seconds).
      • reply_queue_expires (float/int seconds).
      • reply_queue_ttl (float/int seconds).

      All take seconds in int/float.

      Contributed by Alan Justino.

    • 0️⃣ Exchange.delivery_mode now defaults to :const:None, and the default is instead set by Producer.publish.

    • πŸ‘ :class:~kombu.Consumer now supports a new prefetch_count argument, which if provided will force the consumer to set an initial prefetch count just before starting.

    • Virtual transports now stores priority as a property, not in delivery_info, to be compatible with AMQP.

    • reply_to argument to Producer.publish can now be :class:~kombu.Queue instance.

    • Connection: There's now a new method Connection.supports_exchange_type(type) that can be used to check if the current transport supports a specific exchange type.

    • SQS: Consumers can now read json messages not sent by Kombu.

      Contributed by Juan Carlos Ferrer.

    • 🌲 SQS: Will now log the access key used when authentication fails.

      Contributed by Hank John.

    • βž• Added new :class:kombu.mixins.ConsumerProducerMixin for consumers that will also publish messages on a separate connection.

    • Messages: Now have a more descriptive repr.

      Contributed by Joshua Harlow.

    • Async: HTTP client based on curl.

    • πŸ“Š Async: Now uses poll instead of select where available.

    • πŸ‘ MongoDB: Now supports priorities

      Contributed by Alex Koshelev.

    • πŸ‘ Virtual transports now supports multiple queue bindings.

      Contributed by Federico Ficarelli.

    • πŸ‘ Virtual transports now supports the anon exchange.

      If when publishing a message, the exchange argument is set to '' (empty string), the routing_key will be regarded as the destination queue.

      This will bypass the routing table compeltely, and just deliver the message to the queue name specified in the routing key.

    • Zookeeper: Transport now uses the built-in suport in kazoo to handle failover when using a list of server names.

      Contributed by Joshua Harlow.

    • ConsumerMixin.run now passes keyword arguments to .consume.

    πŸ—„ Deprecations and removals

    • The deprecated method Consumer.add_queue_from_dict has been removed.

      Use instead:

      .. code-block:: python

      consumer.add_queue(Queue.from_dict(queue_name, **options))
      
    • 🚚 The deprecated function kombu.serialization.encode has been removed.

      Use :func:kombu.serialization.dumps instead.

    • 🚚 The deprecated function kombu.serialization.decode has been removed.

      Use :func:kombu.serialization.loads instead.

    • βœ‚ Removed module kombu.syn

      detect_environment has been moved to kombu.utils.compat

    .. _version-3.0.37:

  • v3.0.37 Changes

    πŸš€ :release-date: 2016-10-06 05:00 P.M PDT πŸš€ :release-by: Ask Solem

    • Connection: Return value of .info() was no longer JSON serializable, leading to "itertools.cycle object not JSON serializable" errors (Issue #635).

    .. _version-3.0.36:

  • v3.0.36 Changes

    πŸš€ :release-date: 2016-09-30 03:06 P.M PDT πŸš€ :release-by: Ask Solem

    • πŸ›  Connection: Fixed bug when cloning connection with alternate urls.

      Fix contributed by Emmanuel Cazenave.

    • πŸ›  Redis: Fixed problem with unix socket connections.

      https://github.com/celery/celery/issues/2903

      Fix contributed by Raphael Michel.

    • πŸ›  Redis: Fixed compatibility with older redis-py versions (Issue #576).

    • Broadcast now retains queue name when being copied/pickled (Issue #578).

    .. _version-3.0.35:

  • v3.0.35 Changes

    πŸš€ :release-date: 2016-03-22 11:22 P.M PST πŸš€ :release-by: Ask Solem

    • πŸ‘ msgpack: msgpack support now requires msgpack-python > 0.4.7.

    • Redis: TimeoutError was no longer handled as a recoverable error.

    • Redis: Adds the ability to set more Redis connection options using Connection(transport_options={...}).

      • socket_connect_timeout
      • socket_keepalive (requires :mod:redis-py > 2.10)
      • socket_keepalive_options (requires :mod:redis-py > 2.10)
    • πŸ›  msgpack: Fixes support for binary/unicode data

    .. _version-3.0.34:

  • v3.0.34 Changes

    πŸš€ :release-date: 2016-03-03 05:30 P.M PST πŸš€ :release-by: Ask Solem

    • Qpid: Adds async error handling.

      Contributed by Brian Bouterse.

    • Qpid: Delivery tag is now a UUID4 (Issue #563).

      Fix contributed by Brian Bouterse.

    • Redis: Connection.as_uri() returned malformed URLs when the redis+socket scheme was ised (Issue celery/celery#2995).

    • msgpack: Use binary encoding instead of utf-8 (Issue #570).

    .. _version-3.0.33: