Changelog
### 5.3.0
```
=====
:release-date: 03 Jun, 2023
:release-by: Asif Saif Uddin
- Support for Kafka as transport.
- Add fanout to filesystem (1499).
- Added possibility to serialize and deserialize binary messages in json (1516).
- Support pymongo 4.x (1536).
- Support redis-py 4.5.x.
- Upgrade Azure Storage Queues transport to version 12 (1539).
- Add support to SQS DelaySeconds (1567).
- Add WATCH to prefixed complex commands.
- Avoid losing type of UUID when serializing/deserializing (1575).
- Added HLEN to the list of prefixed redis commands (1540).
- Add managed identity support to azure storage queue (1631).
- Add Support of sqlalchemy v2.0.
- Deprecate pytz and use zoneinfo (1680)
.. _version-5.3.0rc2:
```
### 5.3.0rc2
```
========
:release-date: 31 May, 2023
:release-by: Asif Saif Uddin
- add missing zoneinfo dependency (1732).
- Support redis >= 4.5.2
- Loosen urlib3 version range for botocore compat
.. _version-5.3.0rc1:
```
### 5.3.0rc1
```
========
:release-date: 24 May, 2023
:release-by: Asif Saif Uddin
- Moved to pytest-freezer (1683).
- Deprecate pytz and use zoneinfo (1680).
- handle keyerror in azureservicebus transport when message is not
found in qos and perform basic_ack (1691).
- fix mongodb transport obsolete calls (1694).
- SQS: avoid excessive GetQueueURL calls by using cached queue url (1621).
- Update confluentkafka.txt version (1727).
- Revert back to pyro4 for now.
.. _version-5.3.0b3:
```
### 5.3.0b3
```
=======
:release-date: 20 Mar, 2023
:release-by: Asif Saif Uddin
- Use SPDX license expression in project metadata.
- Allowing Connection.ensure() to retry on specific exceptions given by policy (1629).
- Redis==4.3.4 temporarilly in an attempt to avoid BC (1634).
- Add managed identity support to azure storage queue (1631).
- Support sqla v2.0 (1651).
- Switch to Pyro5 (1655).
- Remove unused _setupfuns from serialization.py.
- Refactor: Refactor utils/json (1659).
- Adapt the mock to correctly mock the behaviors as implemented on Python 3.10. (Ref 1663).
.. _version-5.3.0b2:
```
### 5.3.0b2
```
=======
:release-date: 19 Oct, 2022
:release-by: Asif Saif Uddin
- fix: save QueueProperties to _queue_name_cache instead of QueueClient.
- hub: tick delay fix (1587).
- Fix incompatibility with redis in disconnect() (1589).
- Solve Kombu filesystem transport not thread safe.
- importlib_metadata remove deprecated entry point interfaces (1601).
- Allow azurestoragequeues transport to be used with Azurite emulator in docker-compose (1611).
.. _version-5.3.0b1:
```
### 5.3.0b1
```
=======
:release-date: 1 Aug, 2022
:release-by: Asif Saif Uddin
- Add ext.py files to setup.cfg.
- Add support to SQS DelaySeconds (1567).
- Add WATCH to prefixed complex commands.
- Avoid losing type of UUID when serializing/deserializing (1575).
- chore: add confluentkafka to extras.
.. _version-5.3.0a1:
```
### 5.3.0a1
```
=======
:release-date: 29 Jun, 2022
:release-by: Asif Saif Uddin
- Add fanout to filesystem (1499).
- Protect set of ready tasks by lock to avoid concurrent updates. (1489).
- Correct documentation stating kombu uses pickle protocol version 2.
- Use new entry_points interface.
- Add mypy to the pipeline (1512).
- Added possibility to serialize and deserialize binary messages in json (1516).
- Bump pyupgrade version and add __future__.annotations import.
- json.py cleaning from outdated libs (1533).
- bump new py-amqp to 5.1.1 (1534).
- add GitHub URL for PyPi.
- Upgrade pytest to ~=7.1.1.
- Support pymongo 4.x (1536).
- Initial Kafka support (1506).
- Upgrade Azure Storage Queues transport to version 12 (1539).
- move to consul2 (1544).
- Datetime serialization and deserialization fixed (1515).
- Bump redis>=4.2.2 (1546).
- Update sqs dependencies (1547).
- Added HLEN to the list of prefixed redis commands (1540).
- Added some type annotations.
.. _version-5.2.4:
```
### 5.2.7
```
=====
:release-date: 2022-5-26 12:15 P.M UTC+2:00
:release-by: Omer Katz
- Fix packaging issue which causes poetry 1.2b1 and above to fail install Celery (7534).
.. _version-5.2.6:
```
### 5.2.6
```
=====
:release-date: 2022-4-04 21:15 P.M UTC+2:00
:release-by: Omer Katz
- load_extension_class_names - correct module_name (7433).
This fixes a regression caused by 7218.
.. _version-5.2.5:
```
### 5.2.5
```
=====
:release-date: 2022-4-03 20:42 P.M UTC+2:00
:release-by: Omer Katz
**This release was yanked due to a regression caused by the PR below**
- Use importlib instead of deprecated pkg_resources (7218).
.. _version-5.2.4:
```
### 5.2.4
```
=====
:release-date: 06 Mar, 2022
:release-by: Asif Saif Uddin
- Allow getting recoverable_connection_errors without an active transport.
- Prevent KeyError: 'purelib' by removing INSTALLED_SCHEME hack from setup.py.
- Revert "try pining setuptools (1466)" (1481).
- Fix issue 789: Async http code not allowing for proxy config (790).
- Fix The incorrect times of retrying.
- Set redelivered property for Celery with Redis (1484).
- Remove use of OrderedDict in various places (1483).
- Warn about missing hostname only when default one is available (1488).
- All supported versions of Python define __package__.
- Added global_keyprefix support for pubsub clients (1495).
- try pytest 7 (1497).
- Add an option to not base64-encode SQS messages.
- Fix SQS extract_task_name message reference.
.. _version-5.2.3:
```
### 5.2.3
```
=====
:release-date: 29 Dec, 2021
:release-by: Asif Saif Uddin
- Allow redis >= 4.0.2.
- Fix PyPy CI jobs.
- SQS transport: detect FIFO queue properly by checking queue URL (1450).
- Ensure that restore is atomic in redis transport (1444).
- Restrict setuptools>=59.1.1,<59.7.0.
- Bump minimum py-amqp to v5.0.9 (1462).
- Reduce memory usage of Transport (1470).
- Prevent event loop polling on closed redis transports (and causing leak).
- Respect connection timeout (1458)
- prevent redis event loop stopping on 'consumer: Cannot connect' (1477).
.. _version-5.2.2:
```
### 5.2.2
```
=====
:release-date: 16 Nov, 2021
:release-by: Asif Saif Uddin
- Pin redis version to >= 3.4.1<4.0.0 as it is not fully compatible yet.
.. _version-5.2.1:
```
### 5.2.1
```
=====
:release-date: 8 Nov, 2021
:release-by: Asif Saif Uddin
- Bump redis version to >= 3.4.1.
- try latest sqs dependencies ti fix security warning.
- Tests & dependency updates
.. _version-5.2.0:
```
### 5.2.0
```
=====
:release-date: 5 Nov, 2021
:release-by: Naomi Elstein
- v 1.4.x (1338).
- stop mentioning librabbitmq (1381).
- Merge branch 'master' of https://github.com/celery/kombu
- test new pytest version (1383).
- drop python 3.6 from CI (1382).
- Use ANY from unittest instead of case.mock.
- Fix missing dependency to redis in docs requirements.
- [pre-commit.ci] pre-commit autoupdate.
- Remove dependency to case (1389).
- Fix: check redis response type.
- [pre-commit.ci] pre-commit autoupdate (1393).
- py3.7+ on setup (1392).
- Prevent caching of oid in pidbox (1394).
- Added unittests for 1394 .
- fix flake8 in kombu/asynchronous/aws/connection.py (1397).
- [pre-commit.ci] pre-commit autoupdate.
- Fix test_pidbox unittests to support non-linux platforms (1398).
- [pre-commit.ci] pre-commit autoupdate.
- removre bdist.
- add python 3.10 to CI & fix other issues (1402).
- try to fix CI (1407).
- Dont failfast when pypy3 tests fail (1408).
- Return empty list instead of InconsistencyError when exchange table is empty (1404).
- [pre-commit.ci] pre-commit autoupdate.
.. _version-5.2.0rc1:
```
### 5.2.0rc2
```
========
:release-date: 2021-11-02 1.54 P.M UTC+3:00
:release-by: Naomi Elstein
- Bump Python 3.10.0 to rc2.
- [pre-commit.ci] pre-commit autoupdate (6972).
- autopep8.
- Prevent worker to send expired revoked items upon hello command (6975).
- docs: clarify the 'keeping results' section (6979).
- Update deprecated task module removal in 5.0 documentation (6981).
- [pre-commit.ci] pre-commit autoupdate.
- try python 3.10 GA.
- mention python 3.10 on readme.
- Documenting the default consumer_timeout value for rabbitmq >= 3.8.15.
- Azure blockblob backend parametrized connection/read timeouts (6978).
- Add as_uri method to azure block blob backend.
- Add possibility to override backend implementation with celeryconfig (6879).
- [pre-commit.ci] pre-commit autoupdate.
- try to fix deprecation warning.
- [pre-commit.ci] pre-commit autoupdate.
- not needed anyore.
- not needed anyore.
- not used anymore.
- add github discussions forum
.. _version-5.2.0rc1:
```
### 5.2.0rc1
```
========
:release-date: 2021-09-07 7:00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Remove backward compatible code not used anymore (1344).
- Add support for setting redis username (1351).
- Add support for Python 3.9.
- Use hostname from URI when server_host is None.
- Use Python's built-in json module by default, instead of simplejson.
- SQS Channel.predefined_queues should be {} if not defined.
- Add global key prefix for keys set by Redis transporter (1349).
- fix: raise BrokenPipeError (1231).
- fix: add missing commands to prefix.
- Make BrokerState Transport specific.
- Tests & Docs cleanup.
.. _version-5.1.0:
```
### 5.2.0b3
```
=======
:release-date: 2021-09-02 8.38 P.M UTC+3:00
:release-by: Omer Katz
- Add args to LOG_RECEIVED (fixes 6885) (6898).
- Terminate job implementation for eventlet concurrency backend (6917).
- Add cleanup implementation to filesystem backend (6919).
- [pre-commit.ci] pre-commit autoupdate (69).
- Add before_start hook (fixes 4110) (6923).
- Restart consumer if connection drops (6930).
- Remove outdated optimization documentation (6933).
- added https verification check functionality in arangodb backend (6800).
- Drop Python 3.6 support.
- update supported python versions on readme.
- [pre-commit.ci] pre-commit autoupdate (6935).
- Remove appveyor configuration since we migrated to GA.
- pyugrade is now set to upgrade code to 3.7.
- Drop exclude statement since we no longer test with pypy-3.6.
- 3.10 is not GA so it's not supported yet.
- Celery 5.1 or earlier support Python 3.6.
- Fix linting error.
- fix: Pass a Context when chaining fail results (6899).
- Bump version: 5.2.0b2 → 5.2.0b3.
.. _version-5.2.0b2:
```
### 5.2.0b2
```
=======
:release-date: 2021-08-17 5.35 P.M UTC+3:00
:release-by: Omer Katz
- Test windows on py3.10rc1 and pypy3.7 (6868).
- Route chord_unlock task to the same queue as chord body (6896).
- Add message properties to app.tasks.Context (6818).
- handle already converted LogLevel and JSON (6915).
- 5.2 is codenamed dawn-chorus.
- Bump version: 5.2.0b1 → 5.2.0b2.
.. _version-5.2.0b1:
```
### 5.2.0b1
```
=======
:release-date: 2021-08-11 5.42 P.M UTC+3:00
:release-by: Omer Katz
- Add Python 3.10 support (6807).
- Fix docstring for Signal.send to match code (6835).
- No blank line in log output (6838).
- Chords get body_type independently to handle cases where body.type does not exist (6847).
- Fix 6844 by allowing safe queries via app.inspect().active() (6849).
- Fix multithreaded backend usage (6851).
- Fix Open Collective donate button (6848).
- Fix setting worker concurrency option after signal (6853).
- Make ResultSet.on_ready promise hold a weakref to self (6784).
- Update configuration.rst.
- Discard jobs on flush if synack isn't enabled (6863).
- Bump click version to 8.0 (6861).
- Amend IRC network link to Libera (6837).
- Import celery lazily in pytest plugin and unignore flake8 F821, "undefined name '...'" (6872).
- Fix inspect --json output to return valid json without --quiet.
- Remove celery.task references in modules, docs (6869).
- The Consul backend must correctly associate requests and responses (6823).
Change log
```
### 5.1.1
```
=====
:release-date: 2022-04-17 12:45 P.M. UTC+6:00
:release-by: Asif Saif Uddin
- Use AF_UNSPEC for name resolution (389).
.. _version-5.1.0:
```
### 5.1.0
```
=====
:release-date: 2021-05-23 7:00 P.M UTC+3:00
:release-by: Omer Katz
- Fix queue names special characters replacement for Azure Service Bus. (1324)
- Add support for SQLAlchemy 1.4. (1328)
- Coerce seconds argument to a floating point number in ``Timer.enter_after``. (1330)
- Add accept parameter to SimpleQueue class. (1140)
- ``prepare_accept_content()`` now raises ``SerializerNotInstalled`` instead of ``KeyError``. (1343)
.. _version-5.1.0b1:
```
### 5.1.0b1
```
=======
:release-date: 2021-04-01 10:30 P.M UTC+6:00
:release-by: Asiff Saif Uddin
- Wheels are no longer universal.
- Revert "Added redis transport key_prefix from envvars".
- Redis Transport: Small improvements of `SentinelChannel` (1253).
- Fix pidbox not using default channels.
- Revert "on worker restart - restore visible regardless to time (905)".
- Add vine to dependencies.
- Pin urllib3<1.26 to fix failing unittests.
- Add timeout to producer publish (1269).
- Remove python2 compatibility code (1277).
- redis: Support Sentinel with SSL.
- Support for Azure Service Bus 7.0.0 (1284).
- Allow specifying session token (1283).
- kombu/asynchronous/http/curl: implement _set_timeout.
- Disable namedtuple to object feature in simplejson (1297).
- Update to tox docker 2.0.
- SQS back-off policy (1301).
- Fixed SQS unittests.
- Fix: non kombu json message decoding in SQS transport (1306).
- Add Github Actions CI (1309).
- Update default pickle protocol version to 4 (1314).
- Update connection.py (1311).
- Drop support for the lzma backport.
- Drop obsolete code importing pickle (1315).
- Update default login method for librabbitmq and pyamqp (936).
- SQS Broker - handle STS authentication with AWS (1322).
- Min py-amqp version is v5.0.6 (1325).
- Numerous docs & example fixes.
- Use a thread-safe implementation of cached_property (1316).
.. _version-5.0.2:
```
### 5.0.9
```
=====
:release-date: 2021-12-20 11:00 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Append to _used_channel_ids in _used_channel_ids
.. _version-5.0.8:
```
### 5.0.8
```
=====
:release-date: 2021-12-19 11:15 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Reduce memory usage of Connection (377)
- Add additional error handling around code where an OSError
may be raised on failed connections. Fixes (378)
.. _version-5.0.7:
```
### 5.0.7
```
=====
:release-date: 2021-12-13 15:45 P.M. UTC+6:00
:release-by: Asif Saif Uddin
- Remove dependency to case
- Bugfix: not closing socket after server disconnect
.. _version-5.0.6:
```
### 5.0.6
```
=====
:release-date: 2021-04-01 10:45 A.M. UTC+6:00
:release-by: Asif Saif Uddin
- Change the order in which context.check_hostname and context.verify_mode get set
in SSLTransport._wrap_socket_sni. Fixes bug introduced in 5.0.3 where setting
context.verify_mode = ssl.CERT_NONE would raise
"ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled."
Setting context.check_hostname prior to setting context.verify_mode resolves the
issue.
- Remove TCP_USER_TIMEOUT option for Solaris (355)
- Pass long_description to setup() (353)
- Fix for tox-docker 2.0
- Moved to GitHub actions CI (359)
.. _version-5.0.5:
```
### 5.0.5
```
=====
:release-date: 2021-01-28 4:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Removed mistakenly introduced code which was causing import errors
.. _version-5.0.4:
```
### 5.0.4
```
=====
:release-date: 2021-01-28 2:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Add missing load_default_certs() call to fix a regression in v5.0.3 release. (350)
.. _version-5.0.3:
```
### 5.0.3
```
=====
:release-date: 2021-01-19 9:00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Change the default value of ssl_version to None. When not set, the
proper value between ssl.PROTOCOL_TLS_CLIENT and ssl.PROTOCOL_TLS_SERVER
will be selected based on the param server_side in order to create
a TLS Context object with better defaults that fit the desired
connection side.
- Change the default value of cert_reqs to None. The default value
of ctx.verify_mode is ssl.CERT_NONE, but when ssl.PROTOCOL_TLS_CLIENT
is used, ctx.verify_mode defaults to ssl.CERT_REQUIRED.
- Fix context.check_hostname logic. Checking the hostname depends on
having support of the SNI TLS extension and being provided with a
server_hostname value. Another important thing to mention is that
enabling hostname checking automatically sets verify_mode from
ssl.CERT_NONE to ssl.CERT_REQUIRED in the stdlib ssl and it cannot
be set back to ssl.CERT_NONE as long as hostname checking is enabled.
- Refactor the SNI tests to test one thing at a time and removing some
tests that were being repeated over and over.
.. _version-5.0.2:
```
### 5.0.2
```
=====
:release-date: 2020-09-06 6:30 P.M UTC+3:00
:release-by: Omer Katz
- Bump required amqp version to 5.0.0.
.. _version-5.0.1:
```
### 5.0.1
```
=====
:release-date: 2020-08-23 19:10 P.M UTC+3:00
:release-by: Omer Katz
- Removed kombu.five from the reference documentation since it no longer exists
- Adjusted the stable documentation's version in Sphinx's configuration since that was overlooked in the latest release
.. _version-5.0.0:
```
### 5.0.0
```
=====
:release-date: 2020-08-05 16:00 P.M UTC+3:00
:release-by: Omer Katz
- **BREAKING CHANGE**: Dropped support for Python 2 (1232)
- Add an SQS transport option for custom botocore config (1219)
.. _version-4.6.11:
```
### 5.0.0b1
```
=======
:release-date: 2020-09-01 6:20 P.M UTC+3:00
:release-by: Omer Katz
- Dropped Python 3.5 support.
Contributed by **Omer Katz**
- Removed additional compatibility code.
Contributed by **Omer Katz**
.. _version-5.0.0a1:
```
### 5.0.0a1
```
=======
:release-date: 2019-04-01 4:30 P.M UTC+3:00
:release-by: Omer Katz
- Dropped Python 2.x support.
Contributed by **Omer Katz**
- Dropped Python 3.4 support.
Contributed by **Omer Katz**
- Removed the :mod:`vine.five` module.
Contributed by **Omer Katz**
- Removed the :mod:`vine.backports.weakref_backports` module.
Contributed by **Omer Katz**
.. _version-1.3.0:
```
### 4.6.11
```
=======
:release-date: 2020-06-24 1.15 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Revert incompatible changes in 1193 and additional improvements (1211)
- Default_channel should reconnect automatically (1209)
.. _version-4.6.10:
```
### 4.6.10
```
======
:release-date: 2020-06-03 10.45 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Doc improvement.
- set _connection in _ensure_connection (1205)
- Fix for the issue 1172
- reuse connection [bug fix]
.. _version-4.6.9:
```
### 4.6.9
```
=====
:release-date: 2020-06-01 14.00 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Prevent failure if AWS creds are not explicitly defined on predefined.
- Raise RecoverableConnectionError in maybe_declare with retry on and.
- Fix for the issue 1172 .
- 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
.. _version-4.6.8:
```
### 4.6.8
```
=====
:release-date: 2020-03-29 20:45 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Added support for health_check_interval option in broker_transport_options (1145)
- Added retry_on_timeout parameter to Redis Channel (1150)
- Added support for standard values for ssl_cert_reqs query parameter for Redis (1139)
- Added predefined_queues option to SQS transport (1156)
- Added ssl certificate verification against ca certificates when amqps is used for pyamqp transport (1151)
- Fix issue (701) where kombu.transport.redis.Mutex is broken in python 3 (1141)
- Fix brop error in Redis Channel (1144)
.. _version-4.6.7:
```
### 4.6.7
```
=====
:release-date: 2019-12-07 20:45 A.M UTC+6:00
:release-by: Asif Saif Uddin
- 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)
.. _version-4.6.6:
```
### 4.6.6
```
=====
:release-date: 2019-11-11 00:15 A.M UTC+6:00
:release-by: Asif Saif Uddin
- 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
.. _version-4.6.5:
```
### 4.6.5
```
=====
:release-date: 2019-09-30 19:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- 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 7.43.0.2 as it is the latest build with wheels provided
- Bump py-amqp to 2.5.2
.. _version-4.6.4:
```
### 4.6.4
```
=====
:release-date: 2019-08-14 22:45 P.M UTC+6:00
:release-by: Asif Saif Uddin
- 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
.. _version-4.6.3:
```
### 4.6.3
```
=====
:release-date: 2019-06-15 12:45 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Revert FastUUID for kombu 4.6
.. _version-4.6.2:
```
### 4.6.2
```
=====
:release-date: 2019-06-15 12:45 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Fix sbugs and regressions
.. _version-4.6.1:
```
### 4.6.1
```
=====
:release-date: 2019-06-06 10:30 A.M UTC+6:00
:release-by: Asif Saif Uddin
- Fix some newly introduced bug in kombu 4.6
.. _version-4.6.0:
```
### 4.6.0
```
=====
:release-date: 2019-05-30 15:30 P.M UTC+6:00
:release-by: Asif Saif Uddin
- Dropped python 3.4
- Bump py-amqp to 2.5.0
- Use SIMEMBERS instead of SMEMBERS to check for queue (redis broker)
* Add `_lookup_direct` method to virtual channel. (994)
Add possibility to optimize lookup for queue in direct
exchange set.
* Add `_lookup_direct` method to redis virtual channel. (994)
Use `SISMEMBER` instead of `SMEMBERS` command to check if queue
exists in a set. Time complexity is increased from O(N) to O(1)
where N is the set cardinality.
Contributed by **Stevan Milic** and **Asif Saif Uddin**
- Include priority in properties only if it's not None.
Since we attempt to serialize the priority property if it exists
in the dictionary it must be an integer.
Contributed by **Omer Katz**
- Removed dangerous default mutable arguments from function
definitions where appropriate.
Contributed by **Todd Cook**
- Codebase improvements and fixes by:
- **Omer Katz**
- **Asif Saif Uddin**
.. _version-4.5.0:
```
### 4.5.0
```
=====
:release-date: 2019-03-3 18:30 P.M UTC+3:00
:release-by: Omer Katz
- The Redis transport now supports a custom separator for keys.
Previously when storing a key in Redis which represents a queue
we used the hardcored value ``\x06\x16`` separator to store
different attributes of the queue in the queue's name.
The separator is now configurable using the sep
transport option:
.. code-block:: python
with Connection('redis://', transport_options={
'sep': ':',
}):
...
pass
Contributed by **Joris Beckers**
- When the SQS server returns a timeout we ignore it and keep trying
instead of raising an error.
This will prevent Celery from raising an error and hanging.
Contributed by **Erwin Rossen**
- Properly declare async support for the Qpid transport.
If you are using this transport we strongly urge you to upgrade.
Contributed by **Rohan McGovern**
- Revert `celery/kombu906 <https://github.com/celery/kombu/pull/906>`_ and
introduce unique broadcast queue names as an optional keyword argument.
If you want each broadcast queue to have a unique name specify `unique=True`:
.. code-block:: pycon
>>> from kombu.common import Broadcast
>>> q = Broadcast(queue='foo', unique=True)
>>> q.name
'foo.7ee1ac20-cda3-4966-aaf8-e7a3bb548688'
>>> q = Broadcast(queue='foo')
>>> q.name
'foo'
- Codebase improvements and fixes by:
- **Omer Katz**
.. _version-4.4.0:
```
### 4.4.0
```
=====
:release-date: 2019-03-3 9:00 P.M UTC+2:00
:release-by: Omer Katz
- Restore bz2 import checks in compression module.
The checks were removed in `celery/kombu938 <https://github.com/celery/kombu/pull/938>`_ due to assumption that it only affected Jython.
However, bz2 support can be missing in Pythons built without bz2 support.
Contributed by **Patrick Woods**
- Fix regression that occurred in 4.3.0
when parsing Redis Sentinel master URI containing password.
Contributed by **Peter Lithammer**
- Handle the case when only one Redis Sentinel node is provided.
Contributed by **Peter Lithammer**
- Support SSL URL parameters correctly for `rediss://`` URIs.
Contributed by **Paul Bailey**
- Revert `celery/kombu954 <https://github.com/celery/kombu/pull/954>`_.
Instead bump the required redis-py dependency to 3.2.0
to include this fix `andymccurdy/redis-py4e1e748 <https://github.com/andymccurdy/redis-py/commit/4e1e74809235edc19e03edb79c97c80a3e4e9eca>`_.
Contributed by **Peter Lithammer**
- Added support for broadcasting using a regular expression pattern
or a glob pattern to multiple Pidboxes.
Contributed by **Jason Held**
.. _version-4.3.0:
```
Links
- PyPI: https://pypi.org/project/celery
- Changelog: https://pyup.io/changelogs/celery/
- Homepage: https://docs.celeryq.dev/
- Docs: https://pythonhosted.org/celery/
This PR updates celery from 4.3.0 to 5.3.0.
Changelog
### 5.3.0 ``` ===== :release-date: 03 Jun, 2023 :release-by: Asif Saif Uddin - Support for Kafka as transport. - Add fanout to filesystem (1499). - Added possibility to serialize and deserialize binary messages in json (1516). - Support pymongo 4.x (1536). - Support redis-py 4.5.x. - Upgrade Azure Storage Queues transport to version 12 (1539). - Add support to SQS DelaySeconds (1567). - Add WATCH to prefixed complex commands. - Avoid losing type of UUID when serializing/deserializing (1575). - Added HLEN to the list of prefixed redis commands (1540). - Add managed identity support to azure storage queue (1631). - Add Support of sqlalchemy v2.0. - Deprecate pytz and use zoneinfo (1680) .. _version-5.3.0rc2: ``` ### 5.3.0rc2 ``` ======== :release-date: 31 May, 2023 :release-by: Asif Saif Uddin - add missing zoneinfo dependency (1732). - Support redis >= 4.5.2 - Loosen urlib3 version range for botocore compat .. _version-5.3.0rc1: ``` ### 5.3.0rc1 ``` ======== :release-date: 24 May, 2023 :release-by: Asif Saif Uddin - Moved to pytest-freezer (1683). - Deprecate pytz and use zoneinfo (1680). - handle keyerror in azureservicebus transport when message is not found in qos and perform basic_ack (1691). - fix mongodb transport obsolete calls (1694). - SQS: avoid excessive GetQueueURL calls by using cached queue url (1621). - Update confluentkafka.txt version (1727). - Revert back to pyro4 for now. .. _version-5.3.0b3: ``` ### 5.3.0b3 ``` ======= :release-date: 20 Mar, 2023 :release-by: Asif Saif Uddin - Use SPDX license expression in project metadata. - Allowing Connection.ensure() to retry on specific exceptions given by policy (1629). - Redis==4.3.4 temporarilly in an attempt to avoid BC (1634). - Add managed identity support to azure storage queue (1631). - Support sqla v2.0 (1651). - Switch to Pyro5 (1655). - Remove unused _setupfuns from serialization.py. - Refactor: Refactor utils/json (1659). - Adapt the mock to correctly mock the behaviors as implemented on Python 3.10. (Ref 1663). .. _version-5.3.0b2: ``` ### 5.3.0b2 ``` ======= :release-date: 19 Oct, 2022 :release-by: Asif Saif Uddin - fix: save QueueProperties to _queue_name_cache instead of QueueClient. - hub: tick delay fix (1587). - Fix incompatibility with redis in disconnect() (1589). - Solve Kombu filesystem transport not thread safe. - importlib_metadata remove deprecated entry point interfaces (1601). - Allow azurestoragequeues transport to be used with Azurite emulator in docker-compose (1611). .. _version-5.3.0b1: ``` ### 5.3.0b1 ``` ======= :release-date: 1 Aug, 2022 :release-by: Asif Saif Uddin - Add ext.py files to setup.cfg. - Add support to SQS DelaySeconds (1567). - Add WATCH to prefixed complex commands. - Avoid losing type of UUID when serializing/deserializing (1575). - chore: add confluentkafka to extras. .. _version-5.3.0a1: ``` ### 5.3.0a1 ``` ======= :release-date: 29 Jun, 2022 :release-by: Asif Saif Uddin - Add fanout to filesystem (1499). - Protect set of ready tasks by lock to avoid concurrent updates. (1489). - Correct documentation stating kombu uses pickle protocol version 2. - Use new entry_points interface. - Add mypy to the pipeline (1512). - Added possibility to serialize and deserialize binary messages in json (1516). - Bump pyupgrade version and add __future__.annotations import. - json.py cleaning from outdated libs (1533). - bump new py-amqp to 5.1.1 (1534). - add GitHub URL for PyPi. - Upgrade pytest to ~=7.1.1. - Support pymongo 4.x (1536). - Initial Kafka support (1506). - Upgrade Azure Storage Queues transport to version 12 (1539). - move to consul2 (1544). - Datetime serialization and deserialization fixed (1515). - Bump redis>=4.2.2 (1546). - Update sqs dependencies (1547). - Added HLEN to the list of prefixed redis commands (1540). - Added some type annotations. .. _version-5.2.4: ``` ### 5.2.7 ``` ===== :release-date: 2022-5-26 12:15 P.M UTC+2:00 :release-by: Omer Katz - Fix packaging issue which causes poetry 1.2b1 and above to fail install Celery (7534). .. _version-5.2.6: ``` ### 5.2.6 ``` ===== :release-date: 2022-4-04 21:15 P.M UTC+2:00 :release-by: Omer Katz - load_extension_class_names - correct module_name (7433). This fixes a regression caused by 7218. .. _version-5.2.5: ``` ### 5.2.5 ``` ===== :release-date: 2022-4-03 20:42 P.M UTC+2:00 :release-by: Omer Katz **This release was yanked due to a regression caused by the PR below** - Use importlib instead of deprecated pkg_resources (7218). .. _version-5.2.4: ``` ### 5.2.4 ``` ===== :release-date: 06 Mar, 2022 :release-by: Asif Saif Uddin - Allow getting recoverable_connection_errors without an active transport. - Prevent KeyError: 'purelib' by removing INSTALLED_SCHEME hack from setup.py. - Revert "try pining setuptools (1466)" (1481). - Fix issue 789: Async http code not allowing for proxy config (790). - Fix The incorrect times of retrying. - Set redelivered property for Celery with Redis (1484). - Remove use of OrderedDict in various places (1483). - Warn about missing hostname only when default one is available (1488). - All supported versions of Python define __package__. - Added global_keyprefix support for pubsub clients (1495). - try pytest 7 (1497). - Add an option to not base64-encode SQS messages. - Fix SQS extract_task_name message reference. .. _version-5.2.3: ``` ### 5.2.3 ``` ===== :release-date: 29 Dec, 2021 :release-by: Asif Saif Uddin - Allow redis >= 4.0.2. - Fix PyPy CI jobs. - SQS transport: detect FIFO queue properly by checking queue URL (1450). - Ensure that restore is atomic in redis transport (1444). - Restrict setuptools>=59.1.1,<59.7.0. - Bump minimum py-amqp to v5.0.9 (1462). - Reduce memory usage of Transport (1470). - Prevent event loop polling on closed redis transports (and causing leak). - Respect connection timeout (1458) - prevent redis event loop stopping on 'consumer: Cannot connect' (1477). .. _version-5.2.2: ``` ### 5.2.2 ``` ===== :release-date: 16 Nov, 2021 :release-by: Asif Saif Uddin - Pin redis version to >= 3.4.1<4.0.0 as it is not fully compatible yet. .. _version-5.2.1: ``` ### 5.2.1 ``` ===== :release-date: 8 Nov, 2021 :release-by: Asif Saif Uddin - Bump redis version to >= 3.4.1. - try latest sqs dependencies ti fix security warning. - Tests & dependency updates .. _version-5.2.0: ``` ### 5.2.0 ``` ===== :release-date: 5 Nov, 2021 :release-by: Naomi Elstein - v 1.4.x (1338). - stop mentioning librabbitmq (1381). - Merge branch 'master' of https://github.com/celery/kombu - test new pytest version (1383). - drop python 3.6 from CI (1382). - Use ANY from unittest instead of case.mock. - Fix missing dependency to redis in docs requirements. - [pre-commit.ci] pre-commit autoupdate. - Remove dependency to case (1389). - Fix: check redis response type. - [pre-commit.ci] pre-commit autoupdate (1393). - py3.7+ on setup (1392). - Prevent caching of oid in pidbox (1394). - Added unittests for 1394 . - fix flake8 in kombu/asynchronous/aws/connection.py (1397). - [pre-commit.ci] pre-commit autoupdate. - Fix test_pidbox unittests to support non-linux platforms (1398). - [pre-commit.ci] pre-commit autoupdate. - removre bdist. - add python 3.10 to CI & fix other issues (1402). - try to fix CI (1407). - Dont failfast when pypy3 tests fail (1408). - Return empty list instead of InconsistencyError when exchange table is empty (1404). - [pre-commit.ci] pre-commit autoupdate. .. _version-5.2.0rc1: ``` ### 5.2.0rc2 ``` ======== :release-date: 2021-11-02 1.54 P.M UTC+3:00 :release-by: Naomi Elstein - Bump Python 3.10.0 to rc2. - [pre-commit.ci] pre-commit autoupdate (6972). - autopep8. - Prevent worker to send expired revoked items upon hello command (6975). - docs: clarify the 'keeping results' section (6979). - Update deprecated task module removal in 5.0 documentation (6981). - [pre-commit.ci] pre-commit autoupdate. - try python 3.10 GA. - mention python 3.10 on readme. - Documenting the default consumer_timeout value for rabbitmq >= 3.8.15. - Azure blockblob backend parametrized connection/read timeouts (6978). - Add as_uri method to azure block blob backend. - Add possibility to override backend implementation with celeryconfig (6879). - [pre-commit.ci] pre-commit autoupdate. - try to fix deprecation warning. - [pre-commit.ci] pre-commit autoupdate. - not needed anyore. - not needed anyore. - not used anymore. - add github discussions forum .. _version-5.2.0rc1: ``` ### 5.2.0rc1 ``` ======== :release-date: 2021-09-07 7:00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Remove backward compatible code not used anymore (1344). - Add support for setting redis username (1351). - Add support for Python 3.9. - Use hostname from URI when server_host is None. - Use Python's built-in json module by default, instead of simplejson. - SQS Channel.predefined_queues should be {} if not defined. - Add global key prefix for keys set by Redis transporter (1349). - fix: raise BrokenPipeError (1231). - fix: add missing commands to prefix. - Make BrokerState Transport specific. - Tests & Docs cleanup. .. _version-5.1.0: ``` ### 5.2.0b3 ``` ======= :release-date: 2021-09-02 8.38 P.M UTC+3:00 :release-by: Omer Katz - Add args to LOG_RECEIVED (fixes 6885) (6898). - Terminate job implementation for eventlet concurrency backend (6917). - Add cleanup implementation to filesystem backend (6919). - [pre-commit.ci] pre-commit autoupdate (69). - Add before_start hook (fixes 4110) (6923). - Restart consumer if connection drops (6930). - Remove outdated optimization documentation (6933). - added https verification check functionality in arangodb backend (6800). - Drop Python 3.6 support. - update supported python versions on readme. - [pre-commit.ci] pre-commit autoupdate (6935). - Remove appveyor configuration since we migrated to GA. - pyugrade is now set to upgrade code to 3.7. - Drop exclude statement since we no longer test with pypy-3.6. - 3.10 is not GA so it's not supported yet. - Celery 5.1 or earlier support Python 3.6. - Fix linting error. - fix: Pass a Context when chaining fail results (6899). - Bump version: 5.2.0b2 → 5.2.0b3. .. _version-5.2.0b2: ``` ### 5.2.0b2 ``` ======= :release-date: 2021-08-17 5.35 P.M UTC+3:00 :release-by: Omer Katz - Test windows on py3.10rc1 and pypy3.7 (6868). - Route chord_unlock task to the same queue as chord body (6896). - Add message properties to app.tasks.Context (6818). - handle already converted LogLevel and JSON (6915). - 5.2 is codenamed dawn-chorus. - Bump version: 5.2.0b1 → 5.2.0b2. .. _version-5.2.0b1: ``` ### 5.2.0b1 ``` ======= :release-date: 2021-08-11 5.42 P.M UTC+3:00 :release-by: Omer Katz - Add Python 3.10 support (6807). - Fix docstring for Signal.send to match code (6835). - No blank line in log output (6838). - Chords get body_type independently to handle cases where body.type does not exist (6847). - Fix 6844 by allowing safe queries via app.inspect().active() (6849). - Fix multithreaded backend usage (6851). - Fix Open Collective donate button (6848). - Fix setting worker concurrency option after signal (6853). - Make ResultSet.on_ready promise hold a weakref to self (6784). - Update configuration.rst. - Discard jobs on flush if synack isn't enabled (6863). - Bump click version to 8.0 (6861). - Amend IRC network link to Libera (6837). - Import celery lazily in pytest plugin and unignore flake8 F821, "undefined name '...'" (6872). - Fix inspect --json output to return valid json without --quiet. - Remove celery.task references in modules, docs (6869). - The Consul backend must correctly associate requests and responses (6823). Change log ``` ### 5.1.1 ``` ===== :release-date: 2022-04-17 12:45 P.M. UTC+6:00 :release-by: Asif Saif Uddin - Use AF_UNSPEC for name resolution (389). .. _version-5.1.0: ``` ### 5.1.0 ``` ===== :release-date: 2021-05-23 7:00 P.M UTC+3:00 :release-by: Omer Katz - Fix queue names special characters replacement for Azure Service Bus. (1324) - Add support for SQLAlchemy 1.4. (1328) - Coerce seconds argument to a floating point number in ``Timer.enter_after``. (1330) - Add accept parameter to SimpleQueue class. (1140) - ``prepare_accept_content()`` now raises ``SerializerNotInstalled`` instead of ``KeyError``. (1343) .. _version-5.1.0b1: ``` ### 5.1.0b1 ``` ======= :release-date: 2021-04-01 10:30 P.M UTC+6:00 :release-by: Asiff Saif Uddin - Wheels are no longer universal. - Revert "Added redis transport key_prefix from envvars". - Redis Transport: Small improvements of `SentinelChannel` (1253). - Fix pidbox not using default channels. - Revert "on worker restart - restore visible regardless to time (905)". - Add vine to dependencies. - Pin urllib3<1.26 to fix failing unittests. - Add timeout to producer publish (1269). - Remove python2 compatibility code (1277). - redis: Support Sentinel with SSL. - Support for Azure Service Bus 7.0.0 (1284). - Allow specifying session token (1283). - kombu/asynchronous/http/curl: implement _set_timeout. - Disable namedtuple to object feature in simplejson (1297). - Update to tox docker 2.0. - SQS back-off policy (1301). - Fixed SQS unittests. - Fix: non kombu json message decoding in SQS transport (1306). - Add Github Actions CI (1309). - Update default pickle protocol version to 4 (1314). - Update connection.py (1311). - Drop support for the lzma backport. - Drop obsolete code importing pickle (1315). - Update default login method for librabbitmq and pyamqp (936). - SQS Broker - handle STS authentication with AWS (1322). - Min py-amqp version is v5.0.6 (1325). - Numerous docs & example fixes. - Use a thread-safe implementation of cached_property (1316). .. _version-5.0.2: ``` ### 5.0.9 ``` ===== :release-date: 2021-12-20 11:00 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Append to _used_channel_ids in _used_channel_ids .. _version-5.0.8: ``` ### 5.0.8 ``` ===== :release-date: 2021-12-19 11:15 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Reduce memory usage of Connection (377) - Add additional error handling around code where an OSError may be raised on failed connections. Fixes (378) .. _version-5.0.7: ``` ### 5.0.7 ``` ===== :release-date: 2021-12-13 15:45 P.M. UTC+6:00 :release-by: Asif Saif Uddin - Remove dependency to case - Bugfix: not closing socket after server disconnect .. _version-5.0.6: ``` ### 5.0.6 ``` ===== :release-date: 2021-04-01 10:45 A.M. UTC+6:00 :release-by: Asif Saif Uddin - Change the order in which context.check_hostname and context.verify_mode get set in SSLTransport._wrap_socket_sni. Fixes bug introduced in 5.0.3 where setting context.verify_mode = ssl.CERT_NONE would raise "ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled." Setting context.check_hostname prior to setting context.verify_mode resolves the issue. - Remove TCP_USER_TIMEOUT option for Solaris (355) - Pass long_description to setup() (353) - Fix for tox-docker 2.0 - Moved to GitHub actions CI (359) .. _version-5.0.5: ``` ### 5.0.5 ``` ===== :release-date: 2021-01-28 4:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Removed mistakenly introduced code which was causing import errors .. _version-5.0.4: ``` ### 5.0.4 ``` ===== :release-date: 2021-01-28 2:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Add missing load_default_certs() call to fix a regression in v5.0.3 release. (350) .. _version-5.0.3: ``` ### 5.0.3 ``` ===== :release-date: 2021-01-19 9:00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Change the default value of ssl_version to None. When not set, the proper value between ssl.PROTOCOL_TLS_CLIENT and ssl.PROTOCOL_TLS_SERVER will be selected based on the param server_side in order to create a TLS Context object with better defaults that fit the desired connection side. - Change the default value of cert_reqs to None. The default value of ctx.verify_mode is ssl.CERT_NONE, but when ssl.PROTOCOL_TLS_CLIENT is used, ctx.verify_mode defaults to ssl.CERT_REQUIRED. - Fix context.check_hostname logic. Checking the hostname depends on having support of the SNI TLS extension and being provided with a server_hostname value. Another important thing to mention is that enabling hostname checking automatically sets verify_mode from ssl.CERT_NONE to ssl.CERT_REQUIRED in the stdlib ssl and it cannot be set back to ssl.CERT_NONE as long as hostname checking is enabled. - Refactor the SNI tests to test one thing at a time and removing some tests that were being repeated over and over. .. _version-5.0.2: ``` ### 5.0.2 ``` ===== :release-date: 2020-09-06 6:30 P.M UTC+3:00 :release-by: Omer Katz - Bump required amqp version to 5.0.0. .. _version-5.0.1: ``` ### 5.0.1 ``` ===== :release-date: 2020-08-23 19:10 P.M UTC+3:00 :release-by: Omer Katz - Removed kombu.five from the reference documentation since it no longer exists - Adjusted the stable documentation's version in Sphinx's configuration since that was overlooked in the latest release .. _version-5.0.0: ``` ### 5.0.0 ``` ===== :release-date: 2020-08-05 16:00 P.M UTC+3:00 :release-by: Omer Katz - **BREAKING CHANGE**: Dropped support for Python 2 (1232) - Add an SQS transport option for custom botocore config (1219) .. _version-4.6.11: ``` ### 5.0.0b1 ``` ======= :release-date: 2020-09-01 6:20 P.M UTC+3:00 :release-by: Omer Katz - Dropped Python 3.5 support. Contributed by **Omer Katz** - Removed additional compatibility code. Contributed by **Omer Katz** .. _version-5.0.0a1: ``` ### 5.0.0a1 ``` ======= :release-date: 2019-04-01 4:30 P.M UTC+3:00 :release-by: Omer Katz - Dropped Python 2.x support. Contributed by **Omer Katz** - Dropped Python 3.4 support. Contributed by **Omer Katz** - Removed the :mod:`vine.five` module. Contributed by **Omer Katz** - Removed the :mod:`vine.backports.weakref_backports` module. Contributed by **Omer Katz** .. _version-1.3.0: ``` ### 4.6.11 ``` ======= :release-date: 2020-06-24 1.15 P.M UTC+6:00 :release-by: Asif Saif Uddin - Revert incompatible changes in 1193 and additional improvements (1211) - Default_channel should reconnect automatically (1209) .. _version-4.6.10: ``` ### 4.6.10 ``` ====== :release-date: 2020-06-03 10.45 A.M UTC+6:00 :release-by: Asif Saif Uddin - Doc improvement. - set _connection in _ensure_connection (1205) - Fix for the issue 1172 - reuse connection [bug fix] .. _version-4.6.9: ``` ### 4.6.9 ``` ===== :release-date: 2020-06-01 14.00 P.M UTC+6:00 :release-by: Asif Saif Uddin - Prevent failure if AWS creds are not explicitly defined on predefined. - Raise RecoverableConnectionError in maybe_declare with retry on and. - Fix for the issue 1172 . - 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 .. _version-4.6.8: ``` ### 4.6.8 ``` ===== :release-date: 2020-03-29 20:45 A.M UTC+6:00 :release-by: Asif Saif Uddin - Added support for health_check_interval option in broker_transport_options (1145) - Added retry_on_timeout parameter to Redis Channel (1150) - Added support for standard values for ssl_cert_reqs query parameter for Redis (1139) - Added predefined_queues option to SQS transport (1156) - Added ssl certificate verification against ca certificates when amqps is used for pyamqp transport (1151) - Fix issue (701) where kombu.transport.redis.Mutex is broken in python 3 (1141) - Fix brop error in Redis Channel (1144) .. _version-4.6.7: ``` ### 4.6.7 ``` ===== :release-date: 2019-12-07 20:45 A.M UTC+6:00 :release-by: Asif Saif Uddin - 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) .. _version-4.6.6: ``` ### 4.6.6 ``` ===== :release-date: 2019-11-11 00:15 A.M UTC+6:00 :release-by: Asif Saif Uddin - 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 .. _version-4.6.5: ``` ### 4.6.5 ``` ===== :release-date: 2019-09-30 19:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - 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 7.43.0.2 as it is the latest build with wheels provided - Bump py-amqp to 2.5.2 .. _version-4.6.4: ``` ### 4.6.4 ``` ===== :release-date: 2019-08-14 22:45 P.M UTC+6:00 :release-by: Asif Saif Uddin - 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 .. _version-4.6.3: ``` ### 4.6.3 ``` ===== :release-date: 2019-06-15 12:45 A.M UTC+6:00 :release-by: Asif Saif Uddin - Revert FastUUID for kombu 4.6 .. _version-4.6.2: ``` ### 4.6.2 ``` ===== :release-date: 2019-06-15 12:45 A.M UTC+6:00 :release-by: Asif Saif Uddin - Fix sbugs and regressions .. _version-4.6.1: ``` ### 4.6.1 ``` ===== :release-date: 2019-06-06 10:30 A.M UTC+6:00 :release-by: Asif Saif Uddin - Fix some newly introduced bug in kombu 4.6 .. _version-4.6.0: ``` ### 4.6.0 ``` ===== :release-date: 2019-05-30 15:30 P.M UTC+6:00 :release-by: Asif Saif Uddin - Dropped python 3.4 - Bump py-amqp to 2.5.0 - Use SIMEMBERS instead of SMEMBERS to check for queue (redis broker) * Add `_lookup_direct` method to virtual channel. (994) Add possibility to optimize lookup for queue in direct exchange set. * Add `_lookup_direct` method to redis virtual channel. (994) Use `SISMEMBER` instead of `SMEMBERS` command to check if queue exists in a set. Time complexity is increased from O(N) to O(1) where N is the set cardinality. Contributed by **Stevan Milic** and **Asif Saif Uddin** - Include priority in properties only if it's not None. Since we attempt to serialize the priority property if it exists in the dictionary it must be an integer. Contributed by **Omer Katz** - Removed dangerous default mutable arguments from function definitions where appropriate. Contributed by **Todd Cook** - Codebase improvements and fixes by: - **Omer Katz** - **Asif Saif Uddin** .. _version-4.5.0: ``` ### 4.5.0 ``` ===== :release-date: 2019-03-3 18:30 P.M UTC+3:00 :release-by: Omer Katz - The Redis transport now supports a custom separator for keys. Previously when storing a key in Redis which represents a queue we used the hardcored value ``\x06\x16`` separator to store different attributes of the queue in the queue's name. The separator is now configurable using the sep transport option: .. code-block:: python with Connection('redis://', transport_options={ 'sep': ':', }): ... pass Contributed by **Joris Beckers** - When the SQS server returns a timeout we ignore it and keep trying instead of raising an error. This will prevent Celery from raising an error and hanging. Contributed by **Erwin Rossen** - Properly declare async support for the Qpid transport. If you are using this transport we strongly urge you to upgrade. Contributed by **Rohan McGovern** - Revert `celery/kombu906 <https://github.com/celery/kombu/pull/906>`_ and introduce unique broadcast queue names as an optional keyword argument. If you want each broadcast queue to have a unique name specify `unique=True`: .. code-block:: pycon >>> from kombu.common import Broadcast >>> q = Broadcast(queue='foo', unique=True) >>> q.name 'foo.7ee1ac20-cda3-4966-aaf8-e7a3bb548688' >>> q = Broadcast(queue='foo') >>> q.name 'foo' - Codebase improvements and fixes by: - **Omer Katz** .. _version-4.4.0: ``` ### 4.4.0 ``` ===== :release-date: 2019-03-3 9:00 P.M UTC+2:00 :release-by: Omer Katz - Restore bz2 import checks in compression module. The checks were removed in `celery/kombu938 <https://github.com/celery/kombu/pull/938>`_ due to assumption that it only affected Jython. However, bz2 support can be missing in Pythons built without bz2 support. Contributed by **Patrick Woods** - Fix regression that occurred in 4.3.0 when parsing Redis Sentinel master URI containing password. Contributed by **Peter Lithammer** - Handle the case when only one Redis Sentinel node is provided. Contributed by **Peter Lithammer** - Support SSL URL parameters correctly for `rediss://`` URIs. Contributed by **Paul Bailey** - Revert `celery/kombu954 <https://github.com/celery/kombu/pull/954>`_. Instead bump the required redis-py dependency to 3.2.0 to include this fix `andymccurdy/redis-py4e1e748 <https://github.com/andymccurdy/redis-py/commit/4e1e74809235edc19e03edb79c97c80a3e4e9eca>`_. Contributed by **Peter Lithammer** - Added support for broadcasting using a regular expression pattern or a glob pattern to multiple Pidboxes. Contributed by **Jason Held** .. _version-4.3.0: ```Links
- PyPI: https://pypi.org/project/celery - Changelog: https://pyup.io/changelogs/celery/ - Homepage: https://docs.celeryq.dev/ - Docs: https://pythonhosted.org/celery/