* Wed Sep 11 2019 Tomá? Chvátal <firstname.lastname@example.org>
- Update to 4.6.4:
- Use importlib-metadata instead of pkg_resources for better performance
- Allow users to switch URLs while omitting the resource identifier (#1032)
- Don't stop receiving tasks on 503 SQS error. (#1064)
- Fix maybe declare (#1066)
- Revert "Revert "Use SIMEMBERS instead of SMEMBERS to check for queue (Redis Broker)
- Fix MongoDB backend to work properly with TTL (#1076)
- Make sure that max_retries=0 is treated differently than None (#1080)
- Bump py-amqp to 2.5.1
- Add patch to fix build with py 3.8:
* Fri Jul 19 2019 Tomá? Chvátal <email@example.com>
- Do not depend on pytest-sugar, it is just pretty-formatter
* Wed Jun 19 2019 firstname.lastname@example.org
- version update to 4.6.3
* Revert FastUUID for kombu 4.6
* Fix sbugs and regressions
* other bu fixes
* Tue Apr 23 2019 Thomas Bechtold <email@example.com>
- Add redis version for BuildRequires. The tests fail with a
lower version so detect that early
* Fri Apr 05 2019 firstname.lastname@example.org
- version update to 4.5.0
- The Redis transport now supports a custom separator for keys.
- When the SQS server returns a timeout we ignore it and keep trying
instead of raising an error.
- Properly declare async support for the Qpid transport.
- Revert `celery/kombu#906 <https://github.com/celery/kombu/pull/906>`_ and
introduce unique broadcast queue names as an optional keyword argument.
- Codebase improvements and fixes
* Thu Mar 28 2019 email@example.com
- version update to 4.4.0
* Restore bz2 import checks in compression module.
* Fix regression that occurred in 4.3.0
when parsing Redis Sentinel master URI containing password.
* Handle the case when only one Redis Sentinel node is provided.
* Support SSL URL parameters correctly for `rediss://`` URIs.
* Revert `celery/kombu#954 <https://github.com/celery/kombu/pull/954>`_.
Instead bump the required redis-py dependency to 3.2.0
to include this fix `andymccurdy/redis-py@4e1e748
* Added support for broadcasting using a regular expression pattern
or a glob pattern to multiple Pidboxes.
* Wed Mar 13 2019 Hans-Peter Jansen <firstname.lastname@example.org>
- Build require a more current msgpack version
* Fri Feb 15 2019 John Vandenberg <email@example.com>
- Added minimum versions to dependencies where provided by upstream
- Re-enable tests on Python 3
- Update to 4.3.0
* Added Python 3.7 support.
* Avoid caching queues which are declared with a TTL.
Queues that are declared with a TTL are now also be excluded from the
in-memory cache in case they expire between publishes on the same channel.
* Added an index to the Message table for the SQLAlchemy transport.
The index allows to effectively sorting the table by the message's timestamp.
* Added a timeout that limits the amount of time we retry
to reconnect to a transport.
* Class celery.asynchronous.hub.Hub is now reentrant.
This allows calling celery.bin.celery.main to revive a worker in
the same process after rescuing from shutdown.
* Queues now accept string exchange names as arguments as documented.
Tests were added to avoid further regressions.
* Specifying names for broadcast queues now work as expected.
Previously, named broadcast queues did not create multiple queues per worker.
They incorrectly declared the named queue which resulted in one queue per
fanout exchange, thus missing the entire point of a fanout exchange.
The behavior is now matched to unnamed broadcast queues.
* When initializing the Redis transport in conjunction with gevent
restore all unacknowledged messages to queue.
* Allow kombu.simple.SimpleQueue to pass queue_arguments to Queue object,
which allows it to connect to RabbitMQ queues with custom arguments
* Add support for 'rediss' scheme for secure Redis connections.
* Added the Azure Storage Queues transport.
* Added the Azure Service Bus transport.
* Drop remaining mentions of Jython support completely.
* When publishing messages to the Pidbox, retry if an error occurs.
* Fix infinite loop in kombu.asynchronous.hub.Hub.create_loop.
Previous attempt to fix the problem (PR kombu/760) did not consider
an edge case. It is now fixed.
* Worker shutdown no longer duplicates messages when using the SQS broker.
* When using the SQS broker, prefer boto's default region before our hardcoded default.
* Fixed closing of shared redis sockets which previously caused Celery to hang.
* the Pyro transport now works with recent Pyro versions.
Also added a Pyro Kombu Broker that this transport needs for its queues.
* Handle non-base64-encoded SQS messages.
* Move the handling of Sentinel failures to the redis library itself.
Previously, Redis Sentinel worked only if the first node's sentinel
service in the URI was up. A server outage would have caused downtime.
* When using Celery and the pickle serializer with binary data as part of the
payload, `UnicodeDecodeError` would be raised as the content was not utf-8.
We now replace on errors.
* Allow setting boto3.sqs.create_queue Attributes via transport_options.
* Fixed infinite loop when entity.channel is replaced by revive() on connection
* Added optional support for Brotli compression.
* When using the SQS broker, FIFO queues with names that ended with the 'f' letter
were incorrectly parsed. This is now fixed.
* Added optional support for LZMA compression.
* Added optional support for ZStandard compression.
* Require py-amqp 2.4.0 as the minimum version.
* The value of DISABLE_TRACEBACKS environment variable is now respected on debug, info
and warning logger level.
* As documented in kombu/#741 and eventlet/eventlet#415 there is a mismatch
between the monkey-patched eventlet queue and the interface Kombu is
expecting. This causes Celery to crash when the broker_pool_limit
configuration option is set. eventlet/eventlet#415 suggests that the
mutex can be a noop. This is now the case.
* Documentation improvements
* Thu Jul 09 2020 Matthias Fehring <firstname.lastname@example.org>
- update to 4.6.11
- Revert incompatible changes in #1193 and additional improvements (#1211)
- Default_channel should reconnect automatically (#1209)
- drop unnecessary fakeredis dependency to fix build on older distros
* Sun Jun 14 2020 Dirk Mueller <email@example.com>
- update to 4.6.10:
- set _connection in _ensure_connection (#1205)
- Fix for the issue #1172
- reuse connection [bug fix]
- Prevent failure if AWS creds are not explicitly defined on predefined.
- Raise RecoverableConnectionError in maybe_declare with retry on and.
- possible fix for #1174 .
- Fix: make SQLAlchemy Channel init thread-safe
- Added integration testing infrastructure for RabbitMQ
- Initial redis integration tests implementation
- SQLAlchemy transport: Use Query.with_for_update() instead of deprecated
- Fix Consumer Encoding
- Added Integration tests for direct, topic and fanout exchange types
- Added TTL integration tests
- Added integration tests for priority queues
- fix 100% cpu usage on linux while using sqs
- Modified Mutex to use redis LuaLock implementation
- Fix: eliminate remaining race conditions from SQLAlchemy Channel
- Fix connection imaybe_declare (#1196)
- Fix for issue #1198: Celery crashes in cases where there aren?t enough
- Ensure connection when connecting to broker
- update pyamqp to 2.6 with optional cythonization
* Mon Mar 30 2020 Marketa Calabkova <firstname.lastname@example.org>
- Update to 4.6.8
* Add support for health_check_interval option in broker_transport_options.
* Adding retry_on_timeout parameter
* Support standard values for ssl_cert_reqs query parameter.
* enabled ssl certificate verification when amqps is used for pyamqp transport
* Thu Mar 12 2020 Tomá? Chvátal <email@example.com>
- Fix build without python2
* Fri Dec 20 2019 Dirk Mueller <firstname.lastname@example.org>
- drop unnecessary zstandard dependency to fix build on older distros
* Fri Dec 13 2019 Matthias Fehring <email@example.com>
- Update to 4.6.7:
- Use importlib.metadata from the standard library on Python 3.8+ (#1086).
- Add peek lock settings to be changed using transport options (#1119).
- Fix redis health checks (#1122).
- Reset ready before execute callback (#1126).
- Add missing parameter queue_args in kombu.connection.SimpleBuffer (#1128)
- Update to 4.6.6:
- Revert _lookup_direct and related changes of redis.
- Python 3.8 support
- Fix 'NoneType' object has no attribute 'can_read' bug of redis transport
- Issue #1019 Fix redis transport socket timeout
- Add wait timeout settings to receive queue message (#1110)
- Bump py-amqp to 2.5.2
- Remove patches now included upstream:
* Tue Oct 08 2019 Tomá? Chvátal <firstname.lastname@example.org>
- Update to 4.6.5:
- Revert _lookup api and correct redis implemetnation.
- Major overhaul of redis test cases by adding more full featured fakeredis module.
- Add more test cases to boost coverage of kombu redis transport.
- Refactor the producer consumer test cases to be based on original mocks and be passing
- Fix lingering line length issue in test.
- Sanitise url when include_password is false
- Pinned pycurl to 22.214.171.124 as it is the latest build with wheels provided
- Bump py-amqp to 2.5.2
- Rebase python38.patch
* Tue Jan 30 2018 email@example.com
- update to 4.1.0:
- RabbitMQ: Ensured safer encoding of queue arguments.
- Added fallback to :func:``uuid.uuid5`` in :func:``generate_oid`` if
- Added Python 3.6 to CI testing
- Fixed bug around modifying dictionary size while iterating over it
* Wed Jun 28 2017 firstname.lastname@example.org
- convert the package to singlespec
- import changes from python3-kombu:
* add AUTHORS to the package documentation
* use a more precise file list
- drop test BuildRequires mock, nose-cover3 and unittest2:
not needed anymore
- add fdupes as BuildRequires and call it after install
- skip the tests for python3 since they fail with python 3.6 (#675)
* Thu Mar 16 2017 email@example.com
- update to 4.0.2:
- 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
- Removed transports that are no longer supported in this version:
- Django ORM transport
- SQLAlchemy ORM transport
- Beanstalk transport
- ZeroMQ transport
- amqplib transport (use pyamqp).
* Mon Nov 14 2016 firstname.lastname@example.org
- update to 3.0.35:
- msgpack: msgpack support now requires msgpack-python > 0.4.7.
- Redis: TimeoutError was no longer handled as a recoverable error.
- msgpack: Fixes support for binary/unicode data
- Qpid: Adds async error handling.
- msgpack: Use binary encoding instead of utf-8 (Issue #570).
* Wed Jan 13 2016 email@example.com
- Update to 3.0.33:
* Now depends on :mod:`amqp` 1.4.9
* Redis: Fixed problem with auxilliary connections causing the
main consumer connection to be closed (Issue #550)
* Qpid: No longer uses threads to operate, to ensure
compatibility with all environments (Issue #531)
- See /usr/share/doc/packages/python-kombu/Changelog for changes
introduced between 3.0.27 and 3.0.32
- Remove fix-tests.patch
* Mon Sep 14 2015 firstname.lastname@example.org
- Add fix-tests.patch to fix testcases with newer python-mock.
* Fri Jul 24 2015 email@example.com
- fix non-SUSE build by conditionalizing Suggests: tag
* Thu May 07 2015 firstname.lastname@example.org
- update to 3.0.26:
* Fixed compatibility with py-redis versions before 2.10.3
- update project URL
- set a minimum version for python-anyjson in BuildRequires
- add back python-msgpack-python as test requirement
- pass -q to test to avoid spamming the build log
* Wed Apr 22 2015 email@example.com
- update to 3.0.25:
- pyamqp/librabbitmq now uses 5671 as default port when SSL is enabled
- Redis: Now supports passwords in ``redis+socket://:pass@host:port`` URLs
- ``Producer.publish`` now defines the ``expiration`` property in support
of the `RabbitMQ per-message TTL extension`_.
- Connection transport attribute now set correctly for all transports.
- qpid: Fixed bug where the connectionw as not being closed properly.
- :class:`~kombu.entity.bindings` is now JSON serializable (Issue #453).
- Fixed typo in error when yaml is not installed (said ``msgpack``).
- Redis: Now properly handles ``TimeoutError raised by py-redis.
- qpid: Adds additional string to check for when connecting to qpid.
When we connect to qpid, we need to ensure that we skip to the next SASL
mechanism if the current mechanism fails. Otherwise, we will keep retrying
the connection with a non-working mech.
- qpid: Handle ``NotFound`` exceptions.
- :class:`Queue.__repr__` now makes sure return value is not unicode
- qpid: ``Queue.purge`` incorrectly raised :exc:`AttributeErrror` if the
does not exist (Issue #439).
- Linux: Now ignores permission errors on epoll unregister.
* Thu Nov 20 2014 firstname.lastname@example.org
- update to version 3.0.24:
- The `Qpid <http://qpid.apache.org/>`_ broker is supported for Python 2.x
environments. The Qpid transport includes full SSL support within Kombu. See
the :mod:`kombu.transport.qpid` docs for more info.
- Dependencies: extra[librabbitmq] now requires librabbitmq 1.6.0
- Docstrings for :class:`~kombu.utils.limit.TokenBucket` did not match
- :func:`~kombu.common.oid_from` accidentally called ``uuid.getnode()`` but
did not use the return value.
- Redis: Now ignores errors when cosing the underlying connection.
- Redis: Restoring messages will now use a single connection.
- ``kombu.five.monotonic``: Can now be imported even if ctypes is not
available for some reason (e.g. App Engine)
- Documentation: Improved example to use the ``declare`` argument to
``Producer`` (Issue #423).
- Django: Fixed ``app_label`` for older Django versions (``< 1.7``).
- fixed python-amqp BuildRequire
* Mon Sep 15 2014 email@example.com
- update to version 3.0.23:
* Django: Fixed bug in the Django 1.7 compatibility improvements related
to autocommit handling.
* Django: The Django transport models would not be created on syncdb
after app label rename (Issue #406).
* kombu.async: Min. delay between waiting for timer was always increased to
* Fixed bug in itermessages where message is received after the with
statement exits the block.
* Connection.autoretry: Now works with functions missing wrapped attributes
(``__module__``, ``__name__``, ``__doc__``). Fixes #392.
* Django: Now sets custom app label for ``kombu.transport.django`` to work
with recent changes in Django 1.7.
* SimpleQueue removed messages from the wrong end of buffer (Issue #380).
* Tests: Now using ``unittest.mock`` if available (Issue #381).
- adjust python-amqp Require
* Fri Aug 15 2014 firstname.lastname@example.org
- update to 3.0.21;
- see http://kombu.readthedocs.org/en/latest/changelog.html for full changelog
* Mon May 26 2014 email@example.com
- update to 3.0.16:
- ``kombu[librabbitmq]`` now depends on librabbitmq 1.5.1.
- Tests: Some unit tests accidentally required the `redis-py` library.
- librabbitmq: Would crash when using an older version of :mod:`librabbitmq`,
now emits warning instead.
- remove kombu-fix-redis-tests.patch: Fixed differently upstream
* Mon May 05 2014 firstname.lastname@example.org
- add kombu-fix-redis-tests.patch
* Add skip_if_no_module decorator
* Fri May 02 2014 email@example.com
- update to 3.0.15:
* Now depends on :mod:`amqp` 1.4.5.
* RabbitMQ 3.3 changes QoS semantics (Issue #339).
* Users of :mod:`librabbitmq` is encouraged to upgrade to librabbitmq 1.5.0.
* Pools: Now takes transport options into account when comparing connections
* MongoDB: Fixes Python 3 compatibility.
* Async: select: Ignore socket errors when attempting to unregister handles
from the loop.
* Pidbox: Can now be configured to use a serializer other than json,
but specifying a serializer argument to :class:`~kombu.pidbox.Mailbox`.
* Message decompression now works with Python 3.
- update to 3.0.14:
* **MongoDB**: Now endures a connection failover (Issue #123).
* **MongoDB**: Fixed ``KeyError`` when a replica set member is removed.
* **MongoDB**: Fixed MongoDB broadcast cursor re-initialization bug.
* **Async**: Fixed bug in lax semaphore implementation where in
some usage patterns the limit was not honored correctly.
* **Redis**: Fixed problem with fanout when using Python 3 (Issue #324).
* **Redis**: Fixed ``AttributeError`` from attempting to close a non-existing
connection (Issue #320).
- update to 3.0.13:
* Redis: Fixed serious race condition that could lead to data loss.
* Now depends on :mod:`amqp` 1.4.4.
* Pidbox: Now makes sure message encoding errors are handled by default,
so that a custom error handler does not need to be specified.
* Redis: The fanout exchange can now use AMQP patterns to route and filter
* Redis: Fixed ``cycle`` no such attribute error.
- update to 3.0.12:
* Now depends on :mod:`amqp` 1.4.3.
* Fixes Python 3.4 logging incompatibility (Issue #311).
* Redis: Now properly handles unknown pub/sub messages.
* amqplib: Fixed bug where more bytes were requested from the socket
- update to 3.0.11:
* Now depends on :mod:`amqp` 1.4.2.
* Now always trusts messages of type `application/data` and `application/text`
or which have an unspecified content type (Issue #306).
* Compression errors are now handled as decode errors and will trigger
the ``Consumer.on_decode_error`` callback if specified.
* New ``kombu.Connection.get_heartbeat_interval()`` method that can be
used to access the negotiated heartbeat value.
* `kombu.common.oid_for` no longer uses the MAC address of the host, but
instead uses a process*wide UUID4 as a node id.
* Hub.add: Now normalizes registered fileno.
* SQS: Fixed bug where the prefetch count limit was not respected.
* Wed Feb 19 2014 firstname.lastname@example.org
- Demote recommends back to suggests, it is really sufficent to document
the possible backend options. But we want to avoid they're installed
* Tue Jan 21 2014 email@example.com
- update to 3.0.10:
* Now depends on amqp 1.4.1.
* maybe_declare now raises a ?recoverable connection error?
if the channel is disconnected
* Redis: Consumer.cancel() is now thread safe.
* Fixed ?unhashable type? error on Python 3
* Do not attempt to unregister operations on an already closed
* Tue Jan 14 2014 firstname.lastname@example.org
- update to 3.0.9:
- Now depends on :mod:`amqp` 1.4.0.
- Redis: Basic cancel for fanout based queues now sends a corresponding
``UNSUBSCRIBE`` command to the server.
- MongoDB: Improved connection string and options handling
(Issue #266 + Issue #120).
- SQS: Limit the number of messages when receiving in batch to 10.
- ConsumerMixin: ``consume`` now checks heartbeat every time the
socket times out.
- Retry Policy: A max retries of 0 did not retry forever.
- Simple: If passing a Queue object the simple utils will now take
default routing key from that queue.
- Redis: The map of Redis error classes are now exposed at the module level
using the :func:`kombu.transport.redis.get_redis_error_classes` function.
- Async: ``Hub.close`` now sets ``.poller`` to None.
* Mon Jan 13 2014 email@example.com
- update to 3.0.8:
- Redis: Would attempt to read from the wrong connection if a select/epoll/kqueue
exception event happened.
- Redis: Disabling ack emulation now works properly.
- Redis: :exc:`IOError` and :exc:`OSError` are now treated as recoverable
- SQS: Improved performance by reading messages in bulk.
- Connection Pool: Attempting to acquire from a closed pool will now
- Changes from 3.0.7:
- Fixes Python 2.6 compatibility.
- Redis: Fixes 'bad file descriptor' issue.
* Mon Dec 09 2013 firstname.lastname@example.org
- Fixup amqp dependency version check