Celery 5.7.0
We're pleased to announce Celery 5.7.0, a new stable release of Celery.
This release brings substantial improvements to task workflows, worker reliability, result handling, scheduling, and broker connectivity. It also includes new integrations, improved Python compatibility, performance optimizations, and a large number of bug fixes contributed by the community.
A significant part of this release focuses on making complex Canvas workflows more reliable and efficient, improving worker behavior during broker disconnections and shutdown, and making result-backend state handling more consistent.
Highlights
- More reliable Canvas workflows: Improved chains, groups, chords, nested workflows, callbacks, errbacks, and failure propagation. Several fixes also reduce unnecessary message growth in complex chains and chords.
- Improved worker reliability: Better connection recovery, graceful shutdown, prefork process management, autoscaling, and handling of worker-process loss.
- More predictable task results: Improved result-state consistency, retry handling,
ignore_resultbehavior, and concurrentAsyncResulttracking. - Timezone and scheduling improvements: More reliable ETA, countdown, expiration, crontab, solar schedules, and Celery Beat behavior across daylight-saving-time transitions.
- New Pydantic integration behavior: Tasks configured with
pydantic=Truecan accept Pydantic model instances. - New pymemcache result backend support: Adds support for using
pymemcacheas a result backend. - Improved Redis result backend: New expiration settings for chord and failure results, improved Pub/Sub handling, and more reliable chord accounting.
- Better Python compatibility: Python 3.10 is now the minimum supported version, with compatibility work for newer Python versions, including Python 3.14.
- Improved worker operations: Cgroup-aware automatic concurrency detection and additional worker-management improvements.
What's New
Canvas, Chains, Groups, and Chords
Celery 5.7 includes extensive improvements to Canvas execution and composition, particularly for nested workflows and complex chains and chords.
- Fixed failure propagation through chained tasks into chord bodies.
- Improved chord failure handling when a chord header or a chained chord fails.
- Fixed chord error handling when the chord body is itself a chain.
- Improved handling of empty groups and chains, including empty groups inside chains and group headers.
- Chains are now constructed in a single pass instead of repeatedly folding signatures with the
|operator. - Reduced unnecessary message growth in chains of chords, chains of groups, implicit chords, and standalone chord bodies.
- Improved nested group handling and preservation of group IDs.
- Fixed duplicate nodes in
GroupResult.as_tuple()after groups in chains. - Improved
GroupResultfan-out behavior in chains. - Fixed eager execution behavior for chains containing
IgnoreorReject. - Avoided unnecessary result-backend access when eagerly applying groups inside chains.
- Improved task replacement with chains containing groups, including cases that previously could hang.
- Improved callback execution when a task is replaced by a chain, ensuring callbacks are not invoked repeatedly.
- Fixed eager-chain callback behavior so that chain links are dispatched once at the appropriate point.
- Improved propagation of task options, ETA, and countdown values to chord headers.
- Corrected the handling of
linkandlink_erroroptions on chords so they are applied to the chord body. - Improved errback argument classification and handling of new-style errback calls.
- Preserved group errback mutability and improved stamped-header merging and revocation.
- Improved signature cloning and option isolation, preventing cloned signatures from sharing mutable keyword arguments with their originals.
- Fixed argument forwarding through nested chains during eager execution.
- Improved
mapandstarmapoption merging.
These changes make complex Canvas compositions more predictable and reduce unnecessary broker traffic and message growth.
Worker Reliability and Process Management
This release includes a broad set of improvements to worker lifecycle management, process pools, connection recovery, and shutdown behavior.
- Added support for the
spawnstart method with the asynchronous prefork pool. - Improved detection and initialization of spawned pool children.
- Added cgroup-aware automatic worker concurrency detection through
--concurrency=auto. - Added
task_retry_on_worker_lostto control task requeues after a worker process is lost. - Improved prefork shutdown handling, including draining child results and acknowledging tasks during shutdown.
- Fixed warm-shutdown issues with Eventlet and thread-based worker pools.
- Improved cancellation and handling of prefetched tasks during worker shutdown.
- Fixed worker stalls following broker reconnection.
- Improved worker connection recovery and graceful shutdown behavior.
- Fixed issues involving in-flight task reservations and prefetch handling during consumer connection loss.
- Improved handling of per-consumer QoS and prefetch reduction.
- Fixed autoscaling and disable-prefetch behavior for green worker pools.
- Improved autoscale keepalive handling when immediate tasks are received.
- Improved handling of worker process exit and pool cleanup.
- Fixed request time-limit handling and ensured task failures are reported when hard time limits are reached.
- Improved worker shutdown state handling when shutdown logging or signal dispatch raises an exception.
- Fixed worker initialization and Django integration behavior.
- Improved worker timer cleanup and broker-reconnection timer handling.
- Added the worker hostname as the sender for the
worker_process_initsignal.
These changes improve worker resilience in environments with frequent broker reconnections, process failures, and graceful shutdown requirements.
Task Execution, Publishing, and Acknowledgements
Task publishing and execution behavior received several important correctness improvements.
- Decoupled
acks_on_failureandacks_on_timeout, allowing these acknowledgment behaviors to be configured independently. - Improved handling of task acknowledgment and deferred acknowledgment in the worker consumer loop.
- Improved task execution after ETA conversion failures.
- Fixed ETA and expiration handling for protocol version 1 messages.
- Improved handling of task retries and retry argument conflicts.
- Fixed shared
retry_kwargsmutation in automatic retry handling. - Improved broker retry behavior when publishing callbacks is refused by the broker.
- Applied the merged retry policy consistently to task-publishing signals and task-sent events.
- Fixed task publishing signal dispatch when signal receivers are registered dynamically.
- Improved handling of per-task serializers and execution options in
send_task(). - Corrected the handling of
ignore_resultdefaults insend_task()andTask.apply(). - Preserved
ignore_resultoverrides across task retries. - Fixed cases where ignored results could incorrectly record
RETRYafter worker loss. - Improved task failure reporting when a worker is lost by preserving request context in
task_failure. - Improved task state handling when a task has already stored a successful result before a worker is lost.
- Prevented a task from being marked
REVOKEDwhile another worker is still executing it. - Improved handling of rejected tasks that are not requeued.
- Improved task execution and callback behavior when a task is redelivered and result deduplication is enabled.
- Added runtime information to the task success signal.
- Improved task request and callback handling around worker loss and memory errors.
- Improved handling of task names and duplicate task registrations, including a warning when different callables use the same task name.
Result Backends and Result Handling
Result handling has received significant reliability and consistency improvements across several backends.
Redis result backend
- Added
result_chord_expiresto control the expiration of chord-related Redis keys. - Added
result_failure_expiresto configure expiration for failure results. - Fixed Redis chord accounting so that each chord-header task is counted only once.
- Improved Redis chord claim cleanup and ownership handling.
- Improved Redis Pub/Sub synchronization between result draining and result cleanup.
- Fixed Redis result compression when
decode_responsesis enabled. - Added support for configuring additional Redis connection errors.
- Improved Redis SSL configuration when using Redis URLs.
- Improved Redis reconnect and Pub/Sub compatibility across redis-py versions.
- Added redis-py
DriverInfosupport. - Removed deprecated arguments from Redis connection calls.
Database and other result backends
- Added support for
pymemcacheas a result backend. - Improved database-backend retry handling across database operations.
- Added support for database backend retry configuration parameters.
- Fixed database result serialization to honor
result_serializer. - Added the missing
date_doneindex to the database backend. - Improved database backend handling of SQL engine arguments and connection pooling.
- Added an
engine_callbackto the database backendSessionManager. - Improved storage of task children and stamping metadata in database-backed extended results.
- Improved database result cleanup and timezone handling.
- Added support for preserving the first
SUCCESSresult in the database, MongoDB, and Cassandra backends. - Improved MongoDB result handling when results are stored without a request.
- Fixed MongoDB result cleanup across daylight-saving-time transitions.
- Improved Cosmos DB result upsert behavior so subsequent task states can be stored.
- Improved Couchbase behavior when a result document is missing.
- Improved idempotency of
forget()across supported backends. - Improved ArangoDB handling when deleting missing documents.
- Improved Azure Block Blob backend credential handling and pickling.
- Improved RPC backend reconnection and result handling.
- Fixed RPC backend behavior to respect
result_extended. - Improved result compression and backend cleanup behavior.
AsyncResult and ResultSet
- Added
AsyncResult.exists()to check whether a result exists. - Improved backend tracking of multiple
AsyncResultinstances waiting for the same task ID. - Improved
ResultSet.add()so results can be added after the set has already become ready. - Fixed timeout handling so a timeout of
0is respected rather than treated as an indefinite wait. - Applied the zero-timeout behavior consistently to
wait_for,ResultSet.join(),get_many(), and result draining. - Improved native result iteration and barrier finalization.
- Preserved propagation behavior when joining nested native results.
- Improved eager-result naming behavior when results are copied or pickled.
- Improved result-state consistency and handling of revoked tasks.
Celery Beat, Scheduling, and Timezones
Celery 5.7 includes extensive fixes to scheduling and timezone handling, especially around daylight-saving-time transitions.
- Improved ETA, countdown, and expiration calculations across daylight-saving-time transitions.
- Fixed worker expiration checks during daylight-saving-time fall-back.
- Improved
crontab.remaining_delta()handling for timezone-aware datetimes. - Fixed crontab scheduling when later minute slots occur on an earlier day.
- Improved handling of daylight-saving-time gaps in
make_aware(). - Improved relative schedule rounding across daylight-saving-time transitions.
- Fixed solar schedule timing across daylight-saving-time changes.
- Improved handling of non-uniform crontab schedules and
beat_cron_starting_deadline. - Celery Beat now continues running when an individual schedule entry raises an exception.
- Improved validation of impossible crontab dates.
- Fixed Beat heap reordering and sleep behavior when schedule entries change their due time or request a retry.
- Improved Beat schedule state restoration across persistence cycles.
- Fixed Beat service serialization and scheduler connection cleanup during shutdown.
- Added opt-in remote-control
inspect pingsupport to Celery Beat. - Added the
celery_beat_taskheader to task options.
These changes improve scheduling correctness and make Beat more resilient when individual scheduled tasks or schedule entries fail.
Queue Management, Routing, and Broker Connectivity
Several improvements were made to queue selection, routing, and broker reconnection behavior.
- Improved queue alias handling in queue selection and deselection.
- Fixed queue aliases so the actual queue name is stored when selecting a queue.
- Improved default queue resolution for explicitly routed tasks.
- Improved queue configuration so newly added queues receive the default routing key and maximum priority where appropriate.
- Fixed routing-only queues leaking into worker consumers.
- Improved restoration of known queues when
add_consumeris used. - Improved AMQP task-route refresh behavior across configuration update operations.
- Improved handling of native delayed-delivery bindings, including cycle detection and broadcast queues.
- Improved RabbitMQ 4.3 compatibility in the RPC result backend and queue handling.
- Improved worker behavior when unexpected queues are encountered after connection loss.
- Improved connection recovery and pending-operation ordering.
- Improved broker connection pool handling by adding a timeout to broker pool acquisition, preventing indefinite blocking.
- Improved broker retry behavior when purging queues at startup.
- Improved worker event publishing and buffering during broker reconnections.
Pydantic Integration
Tasks configured with pydantic=True can now accept Pydantic model instances when called.
This improves the integration between Celery tasks and applications that use Pydantic models for data validation and structured task arguments.
Configuration and Application Behavior
- Improved
ConfigurationViewbehavior so membership checks, key lookups, and iteration respect configuration mapping order. - Improved
ConfigurationView.swap_with()handling. - Improved configuration copying while preserving configured values.
- Fixed lazy configuration loading to honor
config_from_object(silent=True). - Improved handling of configuration defaults so preconfigured values are not incorrectly included in defaults.
- Improved configuration error messages by showing both original and prefixed keys.
- Fixed
add_defaults()behavior when configuration loading fails on an already configured application. - Improved backend resolution so
backends.by_url()accepts backend classes. - Fixed Django task-class selection for Celery subclasses without a custom task class.
- Limited Django fixup signal handlers to the relevant application.
- Added a clear error when
@shared_taskis applied more than once. - Added
__class_getitem__support to generic classes. - Improved signal receiver identity handling for receivers bound to different instances.
Logging, Diagnostics, and Security
- Added
task_repr_maxlevelsto control the depth of task argument and keyword-argument representations. - Added
datefmtsupport toColorFormatterandTaskFormatter. - Improved credential masking in worker inspection output, including broker read and write URLs.
- Improved Azure credential redaction, including SAS tokens and account keys.
- Improved URL sanitization for multi-server URLs.
- Improved traceback handling and logging during worker timeouts and connection retries.
- Fixed
safereprtruncation to preserve balanced closing brackets. - Improved warning stack levels for more accurate warning locations.
- Improved diagnostic handling of invalid worker environment values.
- Improved certificate-expiration handling during verification.
Command-Line Interface and Utilities
- Improved
celery multinode-index handling, including index lists for named nodes. - Fixed
celery multifailures with node names containing dashes. - Improved
--workdirhandling by expanding~for spawned workers. - Fixed escaped percent-sign handling in node formatting.
- Improved CLI status errors with clearer messages.
- Improved preload-option handling for commands that do not directly accept preload options.
- Replaced deprecated
codecs.open()usage in the settings upgrade command. - Improved
regeniteration behavior, including generator slicing and source replacement. - Fixed
BufferMaphandling ofbufmaxsizeand its total count. - Improved
LimitedSettimestamp and sequence-number handling when items are re-added or copied. - Fixed
firstmethod()so it does not swallowAttributeError. - Improved file-descriptor iteration and cleanup behavior.
- Cached extension entry-point discovery to reduce
apply_async()CPU overhead. - Bounded
State._tasks_to_resolveto prevent unbounded memory growth.
Compatibility and Dependencies
Python versions
Python 3.10 is now the minimum supported Python version.
Python 3.9 support has been removed from the package and its associated development and CI configurations.
This release also includes compatibility improvements for newer Python versions, including fixes for Python 3.14 annotation evaluation and function introspection behavior.
Core dependencies
- Updated the Billiard requirement to
>=4.3.1. - Updated the Kombu dependency to
5.7.0. - Updated
click-replto0.4.0. - Removed explicit Redis version constraints from the requirements.
- Replaced
brotlipywithbrotlicffiin the Brotli extra, with support for both CPython and PyPy.
Optional integrations and development dependencies have also received compatibility updates.
Upgrade Notes
Before upgrading, review the following points:
- Python 3.10 or newer is required. Applications still running on Python 3.9 must upgrade their Python runtime before installing Celery 5.7.
- Billiard and Kombu requirements have changed. Celery 5.7 requires Billiard
>=4.3.1and uses Kombu5.7.0. - Review acknowledgment configuration.
acks_on_failureandacks_on_timeoutare now decoupled, so applications that rely on their previous combined behavior should review their task acknowledgment settings. - Review result expiration settings. Redis users can configure
result_chord_expiresandresult_failure_expiresindependently. - Review custom task and backend integrations. Improvements to backend hook calling conventions and result-state handling may be relevant to custom result backends and task subclasses.
- Review optional dependency extras. The Brotli extra now uses
brotlicffiinstead ofbrotlipy.
Consult the [Celery documentation](https://docs.celeryq.dev/en/stable/) for configuration details and upgrade guidance.
Contributors
Thank you to everyone who contributed code, tests, documentation, reviews, and feedback to this release.
This release includes contributions from many first-time contributors as well as long-standing Celery maintainers and community members. We appreciate every contribution that helped make Celery 5.7 more reliable and maintainable.
See the automatically generated contributor list and individual pull requests in the full changelog.
Full Changelog
For the complete list of changes between Celery 5.6.3 and 5.7.0, including individual pull requests and contributors, see:
[Compare v5.6.3...v5.7.0](v5.6.3...v5.7.0)
What's Changed
- Fix Django worker recursion bug + defensive checks for pool_cls.module by @maycuatroi1 in #10048
- Update elasticsearch requirement from <=9.1.2 to <=9.2.1 by @dependabot[bot] in #10053
- Revert "Update elasticsearch requirement from <=9.1.2 to <=9.2.1" by @auvipy in #10054
- Docs: Update user_preload_options example to use click. by @jorsyk in #10056
- Fix invalid configuration key "bootstrap_servers" in Kafka demo by @jorsyk in #10060
- Fix broken images on PyPI page by @Timour-Ilyas in #10066
- Remove broken reference. in #10071
- Removed --dist=loadscope from smoke tests by @Nusnus in #10073
- Docs: Clarify task_retry signal args may be None by @GangEunzzang in #10076
- Update example for Django by @sbc-khacnha in #10081
- Update CI matrix to exclude Python 3.9 by @auvipy in #9980
- Update default Python versions in Integration test by @auvipy in #10088
- Update default Python versions in smoke-tests.yml by @auvipy in #10089
- Remove Python 3.9 from tox configuration by @auvipy in #10087
- Update Python and OS versions in Read the Docs config by @auvipy in #10090
- Make tests compatible with pymongo >= 4.16 by @cjwatson in #10074
- Remove Python 3.9 from Dockerfile by @auvipy in #10092
- Revise Python compatibility for Celery versions by @auvipy in #10093
- Update Python version requirement to 3.10 by @auvipy in #10091
- fix: source install of cassandra-driver by @Izzette in #10105
- fix: register task cross-reference role in Sphinx extension by @veeceey in #10100
- fix: avoid cycle detection in native delayed delivery by @Izzette in #10095
- fix(asynpool): avoid AttributeError when proc lacks _sentinel_poll by @mriddle in #10086
- Update elastic-transport requirement from <=9.1.0 to <=9.2.1 by @dependabot[bot] in #10052
- fix dusk_astronomical horizon sign (+18 -> -18) by @Mr-Neutr0n in #10121
- Bump pytest from 8.4.2 to 9.0.2 by @dependabot[bot] in #10055
- Fix#10106 onupdate col use lambda func by @ChickenBenny in #10108
- Fix warm shutdown RuntimeError with eventlet>=0.37.0 (#10083) by @ChickenBenny in #10123
- Fix 10109 db backend connection health by @ChickenBenny in #10124
- Bump grpcio from 1.75.1 to 1.76.0 by @dependabot[bot] in #9962
- Bump cryptography from 46.0.3 to 46.0.5 by @dependabot[bot] in #10132
- Database Backend filter unsupport sql engine arguments with nullpool #7355 by @ChickenBenny in #10134
- fix(beat): correct argument order in Service.reduce by @bysiber in #10137
- ci: declare explicit read-only token permissions in workflow jobs by @Rohan5commit in #10139
- chore: 'boto3to' to 'boto3 to' by @cuiweixie in #10133
- Database Backend: Add missing index on date_done (Fixes #10097) by @ChickenBenny in #10098
- docs: fix typo in CONTRIBUTING.rst by @Rohan5commit in #10141
- Refer to Flower / Prometheus for monitoring by @WilliamDEdwards in #10140
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10143
- docs: remove duplicated words in broker and routing docs by @Rohan5commit in #10146
- docs: fix stale version reference and grammar in README by @kelsonbrito50 in #10145
- docs: fix wording in Celery 5.3 worker pool notes by @Rohan5commit in #10149
- docs: fix duplicated wording in 3.1 changelog entry by @Rohan5commit in #10152
- feat(task): decouple acks_on_failure and acks_on_timeout by @abdullahmujahidali in #10150
- docs: fix changelog typo in context manager wording by @Rohan5commit in #10144
- Fix/10096 worker fails to reconnect after redis failover by @ChickenBenny in #10151
- Add
__class_getitem__to generic classes by @brianhelba in #10038 - Improve on_after_finalize signal documentation by @Br1an67 in #10155
- Database Backend Should Support the retry config parameters #6540 by @ChickenBenny in #10130
- Add non-commutative example to clarify partial arg ordering in canvas docs by @Br1an67 in #10157
- Bump google-cloud-firestore from 2.22.0 to 2.23.0 by @dependabot[bot] in #10126
- Remove redundant test_isa_mapping test (fixes #10077) by @daniel7an in #10103
- Upgrade pytest-celery to >=1.3.0 and adopt PYTEST_CELERY_PKG build arg by @Nusnus in #10162
- Chore(deps): Update elasticsearch requirement from <=9.1.2 to <=9.3.0 by @dependabot[bot] in #10164
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10161
- Bump isort from 6.1.0 to 7.0.0 by @dependabot[bot] in #10051
- Bump sphinx-click from 6.0.0 to 6.1.0 by @dependabot[bot] in #10050
- Add redis-py DriverInfo support to Redis backend by @vchomakov in #10040
- Remove deprecated args from redis get_connection call by @JaeHyuckSa in #10036
- Fix #6912 rpc backend reconnection error by @ChickenBenny in #10179
- Fix NameError with TYPE_CHECKING annotations on Python 3.14+ (PEP 649) by @drichardson in #10165
- docs: Add elaboration on prefetch multiplier settings (worker_prefetch_multiplier) and worker_eta_task_limit by @tsangwailam in #10181
- Fix O(K²) message bloat in a chain of chords by @Borzik in #10171
- Fix mock connection interfaces to prevent
TypeErrorduring exception handling by @ChickenBenny in #10178 - fix(trace): dispatch chain/callbacks on dedup fast-path for redelivered tasks by @aurangzaib048 in #10159
- Extract
reconnect_on_errortoBaseResultConsumerby @ChickenBenny in #10189 - pep 649 by @ericbuehl in #10187
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10186
- Fix#9722 friendly status errors for CLI by @ChickenBenny in #10190
- docs: clarify after_return behavior for retried tasks by @KianAnbarestani in #10192
- Add exists() method to AsyncResult by @veeceey in #10142
- Add compression header to message protocol docs by @Br1an67 in #10156
- docs: fix duplicated word in bootsteps comment by @Rohan5commit in #10153
- Remove outdated autoreloader section from extending docs by @Br1an67 in #10154
- Fix: prioritize request ignore_result over task definition by @patri27826 in #10184
- Add Google Cloud PubSub dependency group by @dpgraham4401 in #10216
- Chore(deps): Bump nick-fields/retry from 3 to 4 by @dependabot[bot] in #10213
- fix: clear the timer while catch the exception by @ChickenBenny in #10218
- fix(worker): add hub.reset() to synloop on connection error by @antonio-mello-ai in #10204
- Replace remaining deprecated datetime.utcnow() calls by @as567-code in #10224
- Fix#10022 request time limits by @ChickenBenny in #10206
- fix: send the task failure in hard timeout by @ChickenBenny in #10226
- Add
engine_callbackto database backendSessionManagerby @avolant in #10135 - feat(redis): support configuring additional connection errors by @abdullahmujahidali in #10158
- fix: move dedup integration tests to smoke tests by @aurangzaib048 in #10232
- fix: move prefork shutdown test to smoke tests by @aurangzaib048 in #10236
- fix: move remaining start_worker() integration tests to smoke tests by @aurangzaib048 in #10239
- fix: prevent graceful shutdown regression in connection recovery (GH-9705) by @aurangzaib048 in #10242
- perf(examples): set a timeout on tasks HTTP calls by @EhteshamSid in #10244
- docs: document return value of AsyncResult.get() and ResultSet.join() by @antonio-mello-ai in #10240
- docs: clarify broker-specific semantics of task priority by @antonio-mello-ai in #10238
- fix(base): add timeout to broker pool acquisition to prevent indefinite blocking by @aurangzaib048 in #10174
- fix#4834 (canvas): fix chord error handling when body is a chain by @aurangzaib048 in #10247
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10249
- Fix warm shutdown not cancelling prefetched tasks in thread pool by @Aamirofficiall in #10183
- chore: add Python 3.14 trove classifier by @sk- in #10176
- Replace archived blacksmith python action with upstream python action by @c32-4e3-844-41ed9dc5d in #10265
- Update apt-get install command in integration tests by @auvipy in #10267
- Adjust retry settings in integration-tests.yml by @auvipy in #10268
- Update apt-get install command in workflow by @auvipy in #10266
- Bump codecov actions 5 -> 6 by @c32-4e3-844-41ed9dc5d in #10264
- docs: clarify
.delay()usage with signatures in the user guide section by @kittywaresz in #10258 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10261
- Add all integration tests to the CI matrix by @Izzette in #10259
- Add libev-dev to Dockerfile dependencies by @auvipy in #10270
- Using
patching.modulesaftermoduletest fixture leaks across test cases by @treszkai in #10256 - docs: clarify Django settings with the CELERY namespace by @9kernel in #10272
- fix(consumer): skip prefetch reduction when per-consumer QoS is in effect by @aurangzaib048 in #10253
- fix(events): skip publish when producer is None to stop memory leak after broker reconnect by @Song-Junho97 in #10277
- Bump grpcio from 1.76.0 to 1.78.0 by @dependabot[bot] in #10136
- chore(deps): update sphinx-autobuild requirement from !=2024.9.3,>=2021.3.14 to !=2024.9.3,>=2024.10.3 by @dependabot[bot] in #10279
- fix#8542: honour per-task serializer and execution options (send_task). by @Krishnachaitanyakc in #10217
- fix(events): stop leaking exceptions and cancel stale Heart timers by @Song-Junho97 in #10280
- Deferred ack synloop bug by @jberclaz in #10263
- Fix head_from_fun following wrapped on Python 3.14+ by @dannon in #10281
- Add missing stacklevel=2 to 12 warnings.warn() calls by @stef41 in #10260
- Chore(deps): Bump pytest-github-actions-annotate-failures from 0.3.0 to 0.4.0 by @dependabot[bot] in #10168
- fix(defaults): default to exclusive queues for RabbitMQ 4.3.0 compatibility by @Nusnus in #10287
- Revert "fix(defaults): default to exclusive queues for RabbitMQ 4.3.0 compatibility" by @Nusnus in #10289
- fix(defaults,rpc): RabbitMQ 4.3.0 compatibility by @Nusnus in #10290
- Removed socket.timeout from reconnection conditions by @constantinblanariu in #10285
- fix(worker): skip Broadcast queues in native delayed delivery binding by @mina58 in #10293
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10292
- fix(worker): guard heartbeat control command against None event_dispatcher by @SAY-5 in #10295
- Chore(deps): Update python-memcached requirement from >=1.61 to >=1.62 by @dependabot[bot] in #10282
- Chore(deps): Bump pytest from 9.0.2 to 9.0.3 by @dependabot[bot] in #10297
- Chore(deps): Update gevent requirement from >=1.5.0 to >=26.4.0 by @dependabot[bot] in #10301
- docs: clarify chord errback signatures by @paulkagiri in #10300
- Chore(deps): Bump pytest-order from 1.3.0 to 1.4.0 by @dependabot[bot] in #10305
- fix(redis): keep _reconnect_pubsub compatible with redis-py < 5.3.0 by @SAY-5 in #10298
- Update boto3 requirement from >=1.26.143 to >=1.43.6 and moto 5.2 by @dependabot[bot] in #10306
- docs: fix duplicated word in changelog by @lphuc2250gma in #10309
- Allow Redis backend SSL config with redis URLs by @cyphercodes in #10313
- Skip empty groups in chains by @puneetdixit200 in #10321
- Add documentation to workers guide around signal exception bytecode stuff by @sastraxi in #10276
- Fix worker consuming unexpected queues after connection loss by @phanky1 in #10335
- Apply backend retry policy to all DatabaseBackend DB operations by @arkadiuszbach in #10334
- Explain prefetching with late acknowledgments by @wayyoungboy in #10343
- Handle DST gaps in make_aware by @puneetdixit200 in #10324
- Fix Consumer.on_close() wiping in-flight reservations and breaking worker_disable_prefetch by @arkadiuszbach in #10345
- chore(deps): bump cryptography from 46.0.5 to 46.0.7 in /requirements/extras by @dependabot[bot] in #10350
- Fix: wrap new-style errback calls in try/except to prevent silent chain halt by @r266-tech in #10214
- Fix Queues.deselect leaking routing-only queues into consumers by @phanky1 in #10348
- fix(redis): prevent _pending_messages memory leak in ResultConsumer by @goingforstudying-ctrl in #10342
- Fix free worker stalling after broker reconnect (AsynPool.flush clearing _busy_workers) by @arkadiuszbach in #10346
- Revert "fix(redis): prevent _pending_messages memory leak in ResultConsumer" by @Nusnus in #10354
- Fix add_consumer not restoring consume_from for known queues by @phanky1 in #10352
- chore(deps): bump codecov/codecov-action from 6 to 7 by @dependabot[bot] in #10349
- docs(tasks): warn that rate-limited tasks block the worker's prefetch by @DHUKK in #10291
- Redis ResultConsumer: clean up leaked _pending_messages after on_wait_for_pending by @goingforstudying-ctrl in #10366
- chore(deps): bump cryptography from 46.0.7 to 48.0.1 in /requirements/extras by @dependabot[bot] in #10368
- Mark rejected tasks as failed when not requeued by @hmnfalahi in #10369
- Tolerate task cancellation errors after connection loss by @phanky1 in #10382
- chore(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #10362
- Fix queue selection by alias to store the real queue name by @phanky1 in #10358
- Raise a clear error instead of a bare ValueError when fast_trace_task's worker registry is empty by @harshitayadavv in #10397
- Update reserved requests to use new event dispatcher on reconnect by @phanky1 in #10383
- Preserve group errback mutability by @lxingy3 in #10385
- Fix pidbox consumer cleanup during reset cycles by @zainnadeem786 in #10363
- Defer default queue lookup for explicitly routed tasks by @phanky1 in #10357
- Preserve re-buffered events during dispatcher flush by @phanky1 in #10401
- Docs: clarify which tasks the celery_worker pytest fixture can run by @sahilkanger in #10378
- Preserve exception cause when re-raising in a few spots by @tejas-ae in #10257
- fix(canvas): propagate chained task failures to the chord body by @eyupcanakman in #10323
- Move custom-worker integration tests to the smoke suite by @Nusnus in #10410
- Guard integration tests by @Nusnus in #10411
- Finalize ResultSet barrier when
iter_nativebegins by @phanky1 in #10407 - Fix preload options for control command by @theShmoo in #10403
- fix(canvas): restore GroupResult fan-out in chain as_tuple() (#8903 regression) by @jberclaz in #10408
- Handle UUID task ids in key-value store backend key generation by @MahinAnowar in #10406
- Stop eager chain execution on Ignore and Reject by @phanky1 in #10404
- docs: fix incorrect parameter names in docstrings by @eeshsaxena in #10392
- Handle EPERM from os.kill in multi stopwait node liveness check by @Ozone317 in #10414
- Preserve group-buffered events when flush republish fails by @chuenchen309 in #10417
- chore(deps): bump actions/setup-python from 6 to 7 by @dependabot[bot] in #10423
- fix: upgrade http:// to https:// in README.rst by @hanu-14 in #10419
- chore(deps): bump useblacksmith/setup-docker-builder from 1 to 2 by @dependabot[bot] in #10430
- Fix inconsistencies in systemd service examples by @phanky1 in #10425
- fix: don't drop buffered events appended during publish by @oliverhaas in #10435
- Preserve absolute event timestamps in Gossip by @phanky1 in #10418
- Respect result_extended in the RPC result backend by @phanky1 in #10431
- Warn when routing options are set as task attributes by @phanky1 in #10453
- chore(deps): bump github/codeql-action from 4 to 4.37.4 by @dependabot[bot] in #10454
- RPC result backend recirculates final results on every state poll by @goingforstudying-ctrl in #10459
- chore(deps): bump github/codeql-action from 4.37.4 to 4.37.6 by @dependabot[bot] in #10469
- Raise ImproperlyConfigured with install hint when ephem is missing for solar schedules by @locker95 in #10470
- Normalize aware datetimes into the schedule timezone in crontab.remaining_delta by @MahinAnowar in #10420
- Reheap beat entries that request to retry later by @phanky1 in #10468
- Move task_sent and Result deprecations to the 6.0 timeline by @phanky1 in #10455
- Fix shared retry_kwargs mutation in autoretry by @Namraa310806 in #10461
- fix(worker): mask credentials in alternates returned by inspect stats by @AleksaMCode in #10485
- chore(deps): bump useblacksmith/setup-docker-builder from 2 to 2.0.1 by @dependabot[bot] in #10450
- chore(deps): bump cryptography from 48.0.1 to 50.0.0 in /requirements/extras by @dependabot[bot] in #10483
- Add MemoryError regression for request callbacks by @sahilmathur254 in #10482
- chore(deps): bump useblacksmith/setup-docker-builder from 2.0.1 to 2.1.0 by @dependabot[bot] in #10496
- Fix ineffective traceback clearing in timeout handling by @Namraa310806 in #10493
- Fix Redis result consumer redundant unsubscribe by @Namraa310806 in #10497
- Pin socket_timeout in integration test Redis client by @bchrobot in #10498
- Add datefmt support to ColorFormatter and TaskFormatter by @rahul2002m in #10488
- Fix autoscale and disable-prefetch for green worker pools by @arkadiuszbach in #10361
- feature: add celery_beat_task header in task options by @alirafiei75 in #9702
- Enable heartbeat on the event dispatcher connection by @phanky1 in #10500
- Fix TypeError when slicing a regen built from a generator by @MahinAnowar in #10501
- Make result_compression actually compress stored results by @dylanpulver in #10504
- fix: preserve negative UTC offsets in LocalTimezone.fromutc by @waterWang in #10519
- fix: handle invalid worker environment values by @Namraa310806 in #10513
- Fix certificate expiration during verification by @Namraa310806 in #10510
- chore(deps): bump github/codeql-action from 4.37.6 to 4.37.8 by @dependabot[bot] in #10515
- Fix KeyError in MongoDB backend for results stored without a request by @dylanpulver in #10503
- Fix pre-commit formatting error in test_time by @Namraa310806 in #10520
- fix: crontab.remaining_delta skips later minute slots on an earlier day by @phanky1 in #10494
- Honor a timeout of 0 in wait_for and ResultSet.join instead of waiting forever by @ckarnell in #10487
- Mask broker_read_url and broker_write_url in filter_hidden_settings by @phanky1 in #10398
- Add task_repr_maxlevels setting to control argsrepr/kwargsrepr depth by @phanky1 in #10371
- docs(whatsnew): clarify gevent/eventlet pool requirement in Celery 5 migration guide by @zainnadeem786 in #10360
- handle beat_cron_starting_deadline correctly for non-uniform crontabs by @phanky1 in #10315
- tests: Add explicit tests for worker broker retry behavior by @LOGESHWAR123 in #10356
- chore(deps): update mock requirement from >=1.3 to >=5.2.0 by @dependabot[bot] in #10308
- Document EventReceiver's first argument under the name it actually has by @darkdi in #10460
- chore(deps): bump pytest from 9.0.3 to 9.1.1 by @dependabot[bot] in #10522
- Update README.rst by @auvipy in #10521
- docs(gevent): document monkey-patching entrypoint requirement (#10067) by @harmehak0173 in #10481
- docs: describe canvas calling behavior accurately by @Whning0513 in #10447
- docs: clarify acks late versus retry behavior by @Whning0513 in #10448
- docs: link worker settings to CLI options by @Whning0513 in #10445
- docs: Fix grammar errors in extending user guide by @LaRoyBot in #10429
- docs: show SQS FIFO message properties directly by @Whning0513 in #10446
- docs: document scheduling groups and workflows periodically by @sahilkanger in #10428
- docs: document purpose of bulk_task_producer.py example by @Mahir-Panchal in #10399
- Replace static analysis hack in
__init__.pywithTYPE_CHECKINGguard by @tobyh-canva in #10409 - Fix typo by @leetrout in #10365
- docs: document single-argument link_error errback used by send_task by @sahilkanger in #10427
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10296
- chore(deps): update pytest-subtests requirement from >=0.14.1 to >=0.15.0 by @dependabot[bot] in #10523
- Chore(deps-dev): Bump isort from 7.0.0 to 8.0.1 by @dependabot[bot] in #10170
- Chore(deps): Bump sphinx-click from 6.1.0 to 6.2.0 by @dependabot[bot] in #10169
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10537
- Remove redundant maybe_signature call in unlock_chord by @phanky1 in #10395
- Cache extension entry-point discovery to fix apply_async CPU overhead by @ghirailghiro in #10516
- Bound State._tasks_to_resolve to fix unbounded memory growth by @ghirailghiro in #10534
- Fix DjangoTask selection for Celery subclasses without a custom task class by @phanky1 in #10529
- Honor a timeout of 0 in get_many instead of polling forever by @dylanpulver in #10524
- Chore(deps): Bump pytest-cov from 7.0.0 to 7.1.0 by @dependabot[bot] in #10540
- Chore(deps): Bump github/codeql-action from 4.37.8 to 4.37.9 by @dependabot[bot] in #10542
- Fix the delay beat returns when the heap top changes by @phanky1 in #10531
- Chore(deps): Update elasticsearch requirement from <=9.3.0 to <=9.5.0 by @dependabot[bot] in #10541
- Fix: DatabaseBackend now honors result_serializer (#3025) by @ghirailghiro in #10536
- Honour
config_from_object(silent=True)on the lazy config load by @ArockiaRajamanickam in #10532 - Chore(deps): Update pyarango requirement from >=2.0.2 to >=2.1.1 by @dependabot[bot] in #10544
- Chore(deps): Bump cryptography from 50.0.0 to 50.0.1 by @dependabot[bot] in #10543
- Change kombu dependency to pypi release by @auvipy in #10549
- Update kombu dependency to use pypi release only by @auvipy in #10552
- Modify default Python versions in workflow by @auvipy in #10551
- Update CI matrix to exclude Python 3.10 and 3.14t by @auvipy in #10550
- Parameterize integration test Dockerfile by Python version by @auvipy in #7610
- Fix connection leak in the celery_worker pytest fixture by @phanky1 in #10512
- Update default Python versions in smoke tests by @auvipy in #10556
- Apply ChainMap._key consistently across its methods by @phanky1 in #10545
- [Bug] chord hangs when a member is revoked through app.control.revoke by @goingforstudying-ctrl in #10527
- Chore(deps): Update pytest-rerunfailures requirement from >=15.0 to >=16.6 by @dependabot[bot] in #10547
- Show original and prefixed keys in configuration KeyError by @phanky1 in #10559
- Forward chord body routing options to chord_unlock by @phanky1 in #10442
- Fix beat sleeping too long when is_due changes the heap by @phanky1 in #10558
- Chore(deps): Update wheel requirement from >=0.33.1 to >=0.48.0 by @dependabot[bot] in #10557
- Chore(deps): Bump grpcio from 1.78.0 to 1.83.1 by @dependabot[bot] in #10539
- Fix celery worker shutdown timeout example by @mgaitan in #10416
- Fix --detach stalling in Docker containers with high fdmax (#9886) by @GangEunzzang in #10080
- Fix crontab state restoration across persistence cycles by @MarthalaJagruthiReddy in #10563
- Document how the Redis broker stores messages by @GebleaAlex in #10566
- Return Option objects consistently from find() by @phanky1 in #10565
- Propagate setup logging signal errors by @GruffElixir in #10568
- Honour broker connection retry settings when purging at startup by @MahinAnowar in #10567
- Fix Signature.clone() sharing kwargs with the original signature by @tritsystem in #10571
- fix(worker): bound already-open broker sockets before connection teardown (GH-9705) by @aurangzaib048 in #10570
- Chore(deps): Update click-repl requirement from >=0.2.0 to >=0.3.0 by @dependabot[bot] in #10572
- Chore(deps): Bump pytest-order from 1.4.0 to 1.5.0 by @dependabot[bot] in #10573
- Chore(deps): Bump useblacksmith/setup-docker-builder from 2.1.0 to 2.2.0 by @dependabot[bot] in #10574
- Revert "[Bug] chord hangs when a member is revoked through app.control.revoke" by @phanky1 in #10564
- Chore(deps): Update pytest-rerunfailures requirement from >=16.6 to >=16.6.1 by @dependabot[bot] in #10580
- Chore(deps): Update cassandra-driver requirement from <4,>=3.25.0 to >=3.30.1,<4 by @dependabot[bot] in #10581
- docs: repoint dead :ref: targets to the getting-help/bug-tracker labels by @simpleqt in #10578
preforkis not safe anymore by @superboum in #10339- docs(result): drop doubled 'in in' in the ResultSet class comment by @simpleqt in #10577
- Chore(deps): Update sphinx requirement from >=7.0.0 to >=8.1.3 by @dependabot[bot] in #10548
- Detect spawned pool children in process_initializer by @GangEunzzang in #10583
- Allow worker_pool_start_method='spawn' with the asynchronous prefork pool by @GangEunzzang in #10584
- Keep preconfigured values out of configuration defaults by @phanky1 in #10575
- Document interaction between rate_limit and countdown/eta by @istoolsfox in #10595
- Chore(deps): Bump pytest-github-actions-annotate-failures from 0.4.0 to 0.4.2 by @dependabot[bot] in #10591
- Chore(deps): Bump google-cloud-firestore from 2.23.0 to 2.30.0 by @dependabot[bot] in #10590
- Chore(deps): Update tox requirement from >=3.8.4 to >=4.61.2 by @dependabot[bot] in #10589
- Clean up Docker examples in the contributing guide by @phanky1 in #10587
- Chore(deps): Update azure-storage-blob requirement from >=12.15.0 to >=12.30.1 by @dependabot[bot] in #10601
- Honor zero timeouts in the result drainer by @phanky1 in #10603
- Keep the execv flag from leaking between tests by @GangEunzzang in #10596
- Make ConfigurationView membership match key lookup by @phanky1 in #10586
- Respect map order in ConfigurationView lookups by @phanky1 in #10597
- Chore(deps): Update exceptiongroup requirement from >=1.3.0 to >=1.3.1 by @dependabot[bot] in #10600
- Include _keys in ConfigurationView.swap_with() by @phanky1 in #10604
- Chore(deps): Update click-didyoumean requirement from >=0.3.0 to >=0.3.1 by @dependabot[bot] in #10599
- Add runtime in success signal by @sasirven in #9516
- Retain fallback context managers until exit by @GangEunzzang in #10610
- Preserve explicitly supplied empty timer schedules by @GangEunzzang in #10609
- Fix: query_task doesn't find tasks scheduled with an ETA/countdown (#5321) by @ghirailghiro in #10535
- Docs: add missing @app.task decorator to chain example by @rmnvg in #10613
- Fix Redis result compression with decode_responses enabled by @phanky1 in #10612
- docs: fix 'allows to' grammar in dont_autoretry_for docs by @mrchatam in #10615
- docs: fix 'Allows to' grammar in configuration settings by @mrchatam in #10617
- fix(canvas): propagate aggregate_duplicates through nested stamp merges by @MehrazRumman in #10616
- Deny access to private attributes and dunders via registered() by @ndaprela in #10602
- Fix argument forwarding through nested chains in eager execution by @aprylewu in #10611
- Replacing a task with a chain which contains a group now returns a result instead of hanging by @auvipy in #9604
- Fix linked signature option isolation during deepcopy by @Yukibei in #10594
- added new regression test to check issue #3885 by @auvipy in #10622
- Prevent add_defaults() from crashing when config_from_object() fails on an already configured app by @phanky1 in #10621
- fix(backends.database): store task children with database backend (#8336) by @VimalN2005 in #10606
- Prevent spawned worker crashes with explicit lazy=True by @phanky1 in #10619
- Redact SAS tokens and lowercase account keys in AzureBlockBlobBackend.as_uri by @Dev-next-gen in #10620
- Preserve configuration when copying settings by @GangEunzzang in #10623
- Warn when two callables collide under one task name (#10576) by @vasilisnasopoulos in #10598
- Chore(deps): Bump github/codeql-action from 4.37.9 to 4.38.0 by @dependabot[bot] in #10630
- Task.replace() crashes with tuple-backed chains by @phanky1 in #10626
- Chore(deps): Update gevent requirement from >=26.4.0 to >=26.8.0 by @dependabot[bot] in #10629
- Prevent apply_async() from mutating cached execution options by @phanky1 in #10624
- Chore(deps): Bump pycouchdb from 1.16.0 to 1.17.1 by @dependabot[bot] in #10627
- Chore(deps-dev): Bump isort from 8.0.1 to 9.0.1 by @dependabot[bot] in #10628
- try python 3.15 pre release on the CI by @auvipy in #10636
- Chore(deps): Update sphinx2rst requirement from >=1.0 to >=1.1.0 by @dependabot[bot] in #10639
- Chore(deps): Bump mypy from 1.19.1 to 2.3.1 by @dependabot[bot] in #10638
- Set default max priority in Queues.setitem() when the queue has none by @phanky1 in #10645
- backends.by_url() should accept backend classes by @phanky1 in #10635
- Fix celery multi crashing on a single node name containing a dash by @Dev-next-gen in #10643
- Rebuild the GCS storage client after a fork when Firestore is touched first by @Dev-next-gen in #10641
- Chore(deps): Update tox requirement from >=4.61.2 to >=4.61.4 by @dependabot[bot] in #10640
- Chore(deps): Update pydantic requirement from >=2.4 to ==2.13.5 by @dependabot[bot] in #10654
- Fix empty group/chain handling in chains and group headers (#9772) by @MehrazRumman in #10646
- Chore(deps): Update sphinx-celery requirement from >=2.1.1 to >=2.1.3 by @dependabot[bot] in #10656
- Remove explicit garbage collection from test fixture teardown by @phanky1 in #10648
- Support queue aliases in Queues.deselect() by @phanky1 in #10649
- Chore(deps): Update boto3 requirement from >=1.43.6 to >=1.43.93 by @dependabot[bot] in #10655
- Update click-repl version to 0.4.0 by @auvipy in #10658
- Fix intermittent failure in backend teardown integration test by @phanky1 in #10662
- Update billiard version requirement to 4.3.0 by @auvipy in #10659
- Update billiard dependency in dev requirements by @auvipy in #10670
- Keep a cancelled task unacked when the child reports SystemExit by @GangEunzzang in #10667
- Skip empty groups in eager chains by @superh123 in #10644
- Return the exact fractional utcoffset() instead of rounding it by @bodapatisaikrishna in #10625
- Chore(deps): Update pre-commit requirement from >=4.0.1 to >=4.6.2 by @dependabot[bot] in #10665
- Store failures raised as BaseException subclasses with the JSON serializer by @GangEunzzang in #10672
- fix(backends.database): store stamping metadata with extended results (#8887) by @VimalN2005 in #10605
- Chore(deps): Update azure-identity requirement from >=1.19.0 to ==1.25.3 by @dependabot[bot] in #10666
- Chore(deps): Update flake8 requirement from >=3.8.3 to ==7.3.0 by @dependabot[bot] in #10664
- Fix package version specifications in test.txt and upgrade moto by @auvipy in #10660
- fix(app.utils): handle multi-server URLs in sanitize_url and bugreport (#8014) by @VimalN2005 in #10607
- Refresh AMQP task routes for all configuration update forms by @phanky1 in #10673
- Redis result backend: serialize pubsub access between the drainer and result cleanup by @goingforstudying-ctrl in #10671
- Wait for the replacement child in the smoke respawn test by @GangEunzzang in #10674
- Queues.setitem() should apply the default routing key by @phanky1 in #10669
- Add the request context to task_failure in case of lost worker by @caspervdw in #9720
- Fix revoked tasks running anyway after mingle merged revoke stamps from another host by @yauhpl-alt in #10668
- Update kombu version to 5.7.0a1 by @auvipy in #10677
- Expect the prefetch reduction to be skipped under per-consumer QoS by @GangEunzzang in #10682
- Keep the Azure Block Blob backend picklable by @Dev-next-gen in #10647
- Keep a finished result when a revoke arrives for the task by @GangEunzzang in #10679
- Chore(deps): Bump grpcio from 1.83.1 to 1.84.0 by @dependabot[bot] in #10686
- Chore(deps): Bump github/codeql-action from 4.38.0 to 4.38.1 by @dependabot[bot] in #10687
- Chore(deps): Update elasticsearch requirement from <=9.5.0 to <=9.5.1 by @dependabot[bot] in #10685
- Added Changelog for v5.7.0a1 Alpha 1 release by @auvipy in #10688
- Bump version: 5.6.3 → 5.7.0a1 by @auvipy in #10690
- Add a smoke test workflow that runs against py-amqp, Kombu and Billiard main by @GangEunzzang in #10676
- fix(backends/couchbase): missing document raises instead of returning None by @simpleqt in #10680
- Preserve propagate in nested native result joins by @GangEunzzang in #10689
- Chore(deps): Update boto3 requirement from >=1.43.93 to >=1.43.98 by @dependabot[bot] in #10695
- Fix cache directory ownership in Docker builds by @phanky1 in #10707
- Modify apt-get install to add libmemcached-dev and libev-dev by @auvipy in #10709
- Chore(deps): Update click requirement from <9.0,>=8.1.2 to >=8.5.0,<9.0 by @dependabot[bot] in #10696
- Chore(deps): Update tox requirement from >=4.61.4 to ==4.64.3 by @dependabot[bot] in #10684
- fix: add missing spaces in three backend exception messages by @simpleqt in #10650
- docs: fix the malformed celery[tblib] bundle term in README by @simpleqt in #10651
- Fix escaped percent signs in node formatting by @jakezwang in #10663
- fix(backends): keep forget() idempotent on elasticsearch and couchdb by @simpleqt in #10697
- Docs: broker_heartbeat_checkrate default is 3.0, not 2.0 by @ZainnQureshii in #10710
- Use the merged retry policy for before_task_publish and task-sent events by @phanky1 in #10708
- Replace deprecated codecs.open in celery upgrade settings by @Barry-Lenhart in #10706
- Apply index lists like -c:1,2 to named nodes in celery multi by @Dev-next-gen in #10661
- fix(backends): keep forget() idempotent on azureblockblob and cosmosdb by @inchang-ing in #10714
- Redis result backend: don't hold the pubsub lock while waiting for messages by @GangEunzzang in #10715
- fix(backend): handle missing ArangoDB documents on delete by @Namraa310806 in #10701
- fix(redis): defer re-entrant cancel_for to avoid GC-driven pub/sub deadlock by @MehrazRumman in #10716
- ci: stop installing sphinx-autobuild in test envs and harden pip against index timeouts by @MehrazRumman in #10721
- fix(utils): BufferMap ignores bufmaxsize and miscounts total by @simpleqt in #10705
- Pin cassandra-driver version specification by @auvipy in #10732
- Chore(deps): Bump ephem from 4.2 to 4.2.1 by @dependabot[bot] in #10729
- Chore(deps): Bump github/codeql-action from 4.38.1 to 4.38.2 by @dependabot[bot] in #10730
- Chore(deps): Update python-dateutil requirement from >=2.8.2 to >=2.9.0.post0 by @dependabot[bot] in #10727
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10723
- Chore(deps): Bump pytest-rerunfailures from 16.6.1 to 16.7 by @dependabot[bot] in #10740
- Chore(deps): Bump azure-storage-blob from 12.30.1 to 12.30.3 by @dependabot[bot] in #10741
- Add opt-in remote control (inspect ping) support to celery beat by @Ozone317 in #10422
- fix(worker): flush buffered events with hub.call_soon() by @oliverhaas in #10736
- Publish the Cassandra session only once the connection is ready by @Dev-next-gen in #10657
- docs: update default value of interval_max in retry_policy by @Aswin1105 in #10717
- Avoid calling isoformat() on protocol v1 ETA and expiration strings by @phanky1 in #10720
- Refactor owned_by to use dictionary comprehension by @auvipy in #10742
- Make worker_concurrency cgroup-aware via --concurrency=auto by @sashu2310 in #10328
- fix(canvas): apply countdown and eta to the chord header by @00200200 in #10735
- fix(consumer): preserve pending operation order by @HassanRady in #10734
- multi: expand ~ in --workdir for spawned workers by @ryanakml in #10739
- Chore(deps): Bump flake8 from 7.3.0 to 7.4.1 by @dependabot[bot] in #10747
- Chore(deps): Bump google-cloud-firestore from 2.30.0 to 2.32.0 by @dependabot[bot] in #10748
- Chore(deps): Update google-cloud-storage requirement from >=2.10.0 to >=3.15.0 by @dependabot[bot] in #10753
- Fix(utils): don't cut regen iteration short when consumed elsewhere mid-loop by @MehrazRumman in #10756
- fix: handle AttributeError in iterate_file_descriptors_safely after connection loss by @rmotgi1227 in #10318
- docs: remote control commands get a state object, not ControlDispatch by @Zir0-93 in #10770
- Fail the chords after a chord whose header failed by @Borzik in #10767
- Stop firstmethod() from swallowing AttributeError by @phanky1 in #10774
- Fix geometric message bloat in a chain of implicit chords by @Borzik in #10743
- fix(events): synchronize EventDispatcher shutdown with publishing by @HassanRady in #10745
- fix(backends): upsert CosmosDB results so later states are stored by @devjoinedthechat in #10746
- docs: document PGMQ broker with SQLAlchemy results in PostgreSQL by @tavallaie in #10777
- fix(canvas): resolve the app of a chain or chord through its tasks by @Mohamed-Elshesheny in #10749
- Docs: correct the default value of worker_task_log_format by @hossam1244 in #10786
- Tell apart signal receivers bound to different instances by @wfatih in #10699
- fix(result): keep EagerResult.name when copied or pickled by @MehrazRumman in #10773
- fix(canvas): don't raise in chain.app when the first task's canvas holds a dict by @MehrazRumman in #10792
- Modify Codecov action configuration by @auvipy in #10799
- Simplify Codecov upload conditions in workflow by @auvipy in #10800
- Update click versions in default.txt by @auvipy in #10801
- Update billiard version to 4.3.1 or higher by @auvipy in #10802
- Fix Beat scheduler connection cleanup on shutdown by @HassanRady in #10776
- Add pymemcache support by @TheoCouss in #9977
- Finish a half-read child result on prefork shutdown and ack during the join by @tuliodesouza in #10768
- Chore(deps-dev): Bump isort from 9.0.1 to 9.0.2 by @dependabot[bot] in #10754
- Chore(deps): Bump gevent from 26.8.0 to 26.9.0 by @dependabot[bot] in #10807
- Chore(deps): Update elastic-transport requirement from <=9.2.1 to <=9.4.2 by @dependabot[bot] in #10806
- Update kombu version to 5.7.0b1 by @auvipy in #10809
- Fix countdown, expiration, and Beat intervals across DST transitions by @phanky1 in #10769
- Remove version constraints for redis in requirements by @auvipy in #10810
- test(consumer): pin reconnect prefetch reduction to green-pool capacity (regression test for #10803) by @ShahafChen in #10804
- fix(result): raise TaskRevokedError from EagerResult.get() after revoke() by @MehrazRumman in #10772
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #10805
- Fix leaf-value collection in the AsyncResult.collect example by @mottopanikeiku in #10811
- Limit the Django fixup's signal handlers to its own app by @MehrazRumman in #10731
- Release v5.7.0b1 beta 1 by @auvipy in #10812
- Chore(deps): Bump cryptography from 50.0.1 to 50.0.2 by @dependabot[bot] in #10815
- Chore(deps): Update boto3 requirement from >=1.43.98 to >=1.43.108 by @dependabot[bot] in #10820
- Fix send_task ETA and expiration calculations across DST transitions by @phanky1 in #10813
- Chore(deps): Bump azure-storage-blob from 12.30.3 to 12.31.0 by @dependabot[bot] in #10825
- Chore(deps): Bump tox from 4.64.3 to 4.64.9 by @dependabot[bot] in #10832
- Align pymemcache minimum version with RetryingClient support by @phanky1 in #10831
- docs: fix broker_use_ssl setting target swallowed into previous paragraph by @SatvikMishra08 in #10847
- docs: fix unresolved mailing-list/IRC links in contributing guide and introduction by @SatvikMishra08 in #10848
- Fix: honor regen source replacement during cached iteration by @phanky1 in #10823
- Fix prefork write generators raising StopIteration (PEP 479) by @ayushin in #10842
- fix(canvas): keep eager group apply off the result backend by @jayzhou2309 in #10750
- Fix MongoDB result cleanup across DST transitions by @phanky1 in #10852
- Avoid geometric message growth in standalone chord bodies by @MokiMeow in #10824
- Fix IndexError when a chain is an empty group followed by an empty chain by @MehrazRumman in #10834
- Build chains in a single pass instead of folding with
|by @LD-RW in #10840 - fix(redis): add result_chord_expires for chord keys by @ChristianMurphy in #10827
- fix(backends): avoid get_state for plain chain failures by @Namraa310806 in #10836
- Send the worker hostname as the worker_process_init sender by @IslamElsayed in #10849
- Reset autoscale keepalive for immediate tasks by @zhechen-cs in #10839
- Don't call setup_defaults twice when creating a Worker by @Mannava-Daasaradhi in #10828
- fix: redact Azure credentials in diagnostic output by @Namraa310806 in #10822
- Fix duplicate nodes in a chain's as_tuple() after a group by @halilunay in #10829
- feat(redis): add result_failure_expires setting by @ChristianMurphy in #10826
- Fix errback arity classification with stored signature arguments by @sergioperezcheco in #10838
- docs: fix stray RST markup in changelog entries by @SatvikMishra08 in #10851
- Chore(deps): Bump github/codeql-action from 4.38.2 to 4.38.3 by @dependabot[bot] in #10860
- Chore(deps): Update pymemcache requirement from >=3.5.0 to >=4.0.0 by @dependabot[bot] in #10859
- feat(worker): add task_retry_on_worker_lost to limit requeues after worker loss by @abdullahmujahidali in #10843
- Fix Celery Beat relative schedule rounding across DST transitions by @HassanRady in #10818
- fix(cache): keep chords alive past result_expires by @ChristianMurphy in #10830
- Fix chain/group repr mangling task names and arguments by @LemonCondor in #10855
- Keep a nested group from taking its parent group's id by @halilunay in https://github.com/celery/celery/pull/10857
- Chore(deps): Bump azure-identity from 1.25.3 to 1.26.0 by @dependabot[bot] in https://github.com/celery/celery/pull/10863
- Accept Pydantic models when calling a pydantic=True task by @Om-singhaI in https://github.com/celery/celery/pull/10844
- Skip exited children in AsynPool._help_stuff_finish by @esauser in https://github.com/celery/celery/pull/10861
- Fix/database backend cleanup timezone by @Namraa310806 in https://github.com/celery/celery/pull/10866
- Only copy declared stamps into task execution options by @phanky1 in https://github.com/celery/celery/pull/10853
- Fire chain link once on the last task in eager chains by @superh123 in https://github.com/celery/celery/pull/10864
- Fix worker expiration checks during DST fall back by @phanky1 in https://github.com/celery/celery/pull/10868
- Pass preload options to commands that do not accept them by @Cherith1222 in https://github.com/celery/celery/pull/10837
- Fix exponential message growth in chains of groups by @Grivn in https://github.com/celery/celery/pull/10873
- Remove unused AQLQueryError import from arangodb backend by @TheNetherWatcher in https://github.com/celery/celery/pull/10878
- Fix task execution after ETA conversion failure by @Namraa310806 in https://github.com/celery/celery/pull/10876
- Chore(deps): Update boto3 requirement from >=1.43.108 to >=1.43.113 by @dependabot[bot] in https://github.com/celery/celery/pull/10869
- Fix invalid Bandit baseline JSON and validate it before commit by @maple-pwn in https://github.com/celery/celery/pull/10766
- Update kombu version to 5.7.0rc1 by @auvipy in https://github.com/celery/celery/pull/10882
- Release Preparation for v5.7.0rc1 Release Candidate by @auvipy in https://github.com/celery/celery/pull/10887
- Chore(deps): Update click-plugins requirement from >=1.1.1 to >=1.1.1.2 by @dependabot[bot] in https://github.com/celery/celery/pull/10899
- Keep celery beat running when a schedule entry fails, and reject impossible crontab dates by @Kavin-Nithil in https://github.com/celery/celery/pull/10896
- Ensure worker shutdown state is set even if the shutdown handler's logging/signal dispatch raises by @seanmuth in https://github.com/celery/celery/pull/10738
- Chore(deps): Bump github/codeql-action from 4.38.3 to 4.39.0 by @dependabot[bot] in https://github.com/celery/celery/pull/10900
- Remove redundant priority fallback in Task.apply_async() by @phanky1 in https://github.com/celery/celery/pull/10867
- Chore(deps): Update django requirement from >=2.2.28 to >=3.2.1 by @dependabot[bot] in https://github.com/celery/celery/pull/10816
- Cover the second call of
_ensure_after_forkin a test by @ChristianMurphy in https://github.com/celery/celery/pull/10924 - test: assert exact task replacement nesting levels by @ZedingZhang in https://github.com/celery/celery/pull/10925
- Use the documented retry defaults in the database backend by @ChristianMurphy in https://github.com/celery/celery/pull/10921
- fix(utils): don't expire or evict re-added LimitedSet items using their old timestamp by @MehrazRumman in https://github.com/celery/celery/pull/10758
- Cancel only per-connection timer entries on broker reconnect instead of clearing the worker timer (#10888) by @MehrazRumman in https://github.com/celery/celery/pull/10901
- Run a replaced task's callbacks once when it is replaced with a chain by @mottopanikeiku in https://github.com/celery/celery/pull/10927
- Fix solar schedule timing across DST changes by @phanky1 in https://github.com/celery/celery/pull/10915
- Chore(deps): Bump pydantic from 2.13.5 to 2.14.1 by @dependabot[bot] in https://github.com/celery/celery/pull/10903
- Pass values to backend hooks by position again by @ChristianMurphy in https://github.com/celery/celery/pull/10918
- Don't mark a task REVOKED while another worker runs it by @ChristianMurphy in https://github.com/celery/celery/pull/10922
- Fix retry argument conflicts when switching calling conventions by @StasShk in https://github.com/celery/celery/pull/10895
- Keep the first SUCCESS in the database backend by @ChristianMurphy in https://github.com/celery/celery/pull/10920
- Fix incorrect sentence in user guide by @dumb-programmer in https://github.com/celery/celery/pull/10902
- Docs: note the quorum queue delivery limit by @muhammad-a-dev in https://github.com/celery/celery/pull/10926
- Fix MultiParser to honor its configured Node class by @ZedingZhang in https://github.com/celery/celery/pull/10938
- Give entries copied by LimitedSet.update() this set's sequence numbers by @MehrazRumman in https://github.com/celery/celery/pull/10943
- Count each chord header task only once in the Redis backend by @ChristianMurphy in https://github.com/celery/celery/pull/10919
- Don't record FAILURE when on_success raises after SUCCESS was stored by @gyanu2507 in https://github.com/celery/celery/pull/10759
- Don't fail a task whose SUCCESS was stored before the worker was lost by @gyanu2507 in https://github.com/celery/celery/pull/10752
- Chore(deps): Bump tox from 4.64.9 to 4.65.0 by @dependabot[bot] in https://github.com/celery/celery/pull/10935
- Fix Manager warning output during retries by @ZedingZhang in https://github.com/celery/celery/pull/10948
- Allow
ResultSet.add()after the set's results are ready by @mottopanikeiku in https://github.com/celery/celery/pull/10930 - Log connection retry traceback at debug level by @ZedingZhang in https://github.com/celery/celery/pull/10939
- Fix stamped header revocation by @Namraa310806 in https://github.com/celery/celery/pull/10884
- mongodb backend: keep the first SUCCESS instead of overwriting it by @aniketatgithub in https://github.com/celery/celery/pull/10944
- fix(canvas): give a chord's link/link_error options to its body only by @subham-hq in https://github.com/celery/celery/pull/10778
- fix(utils): keep the closing bracket when saferepr truncates the last element by @MehrazRumman in https://github.com/celery/celery/pull/10771
- fix(app): raise a clear error when @shared_task is applied twice by @myayush in https://github.com/celery/celery/pull/10889
- Update PR template with AI spamming guidelines by @auvipy in https://github.com/celery/celery/pull/10979
- Chore(deps): Bump grpcio from 1.84.0 to 1.84.1 by @dependabot[bot] in https://github.com/celery/celery/pull/10973
- Chore(deps): Bump github/codeql-action from 4.39.0 to 4.39.1 by @dependabot[bot] in https://github.com/celery/celery/pull/10974
- Keep the first SUCCESS in the Cassandra backend by @ZedingZhang in https://github.com/celery/celery/pull/10945
- Stop gating task publishing signals on cached receiver lists by @phanky1 in https://github.com/celery/celery/pull/10791
- fix(backends): track every AsyncResult waiting on a task id (GH-4925) by @aurangzaib048 in https://github.com/celery/celery/pull/10956
- Replace brotlipy with brotlicffi in the brotli extra by @illia-v in https://github.com/celery/celery/pull/10992
- Chore(deps): Bump mypy from 2.3.1 to 2.4.0 by @dependabot[bot] in https://github.com/celery/celery/pull/10984
- Docs: Improve signature documentation by @dyp1109 in https://github.com/celery/celery/pull/10978
- fix: prevent worker hang in WorkerLostError when result_backend_always_retry=True by @majidkhazaei in https://github.com/celery/celery/pull/10960
- Merge signature options in map/starmap apply_async by @mayuriphad in https://github.com/celery/celery/pull/10787
- Update Brotli dependencies for PyPy and CPython by @auvipy in https://github.com/celery/celery/pull/10994
- Enhance timezone localization tests by @auvipy in https://github.com/celery/celery/pull/10996
- Wait between retries when the broker refuses a callback publish by @its-amann in https://github.com/celery/celery/pull/10975
- Add guidance for AI agents in Celery project by @auvipy in https://github.com/celery/celery/pull/10999
- Fix send_task() overriding ignore_result defaults by @phanky1 in https://github.com/celery/celery/pull/10953
- Update billiard and click-repl versions in requirements by @auvipy in https://github.com/celery/celery/pull/11002
- Preserve ignore_result overrides across task retries by @phanky1 in https://github.com/celery/celery/pull/10958
- Chore(deps): Bump azure-storage-blob from 12.31.0 to 12.31.1 by @dependabot[bot] in https://github.com/celery/celery/pull/11005
- Run the mock assertions that sit inside pytest.raises by @dylanpulver in https://github.com/celery/celery/pull/11004
- Update grpcio version to 1.85.1 by @auvipy in https://github.com/celery/celery/pull/11006
- Fail the chord when chord_unlock's retry is refused by the broker by @pujitha24 in https://github.com/celery/celery/pull/10959
- Make Task.apply respect the task.ignore_result default by @phanky1 in https://github.com/celery/celery/pull/11001
- Update kombu version to 5.7.0 by @auvipy in https://github.com/celery/celery/pull/11007
- Use Cuba's 2025 fall-back in the midnight DST tests by @MehrazRumman in https://github.com/celery/celery/pull/11011
- Don't store RETRY for an ignored result when retrying after a lost worker by @MehrazRumman in https://github.com/celery/celery/pull/11009
- Fix#10997 - redis chord claim cleanup ownership by @Namraa310806 in https://github.com/celery/celery/pull/10998
- Chore(deps): Bump google-cloud-storage from 3.15.0 to 3.17.1 by @dependabot[bot] in https://github.com/celery/celery/pull/11013
- Chore(deps): Bump azure-identity from 1.26.0 to 1.27.0 by @dependabot[bot] in https://github.com/celery/celery/pull/11020
- Fix dead Akismet and vine zipball links in the docs by @MehrazRumman in https://github.com/celery/celery/pull/11021
- Added changelog and new features for celery v5.7.0 stable version by @auvipy in https://github.com/celery/celery/pull/11016
- Make beat's pidbox stop test tolerate slow runners by @MehrazRumman in https://github.com/celery/celery/pull/11024
- Bump version: 5.7.0rc1 → 5.7.0 by @auvipy in https://github.com/celery/celery/pull/11025
New Contributors
- @maycuatroi1 made their first contribution in #10048
- @jorsyk made their first contribution in #10056
- @Timour-Ilyas made their first contribution in #10066
- @GangEunzzang made their first contribution in #10076
- @sbc-khacnha made their first contribution in #10081
- @veeceey made their first contribution in #10100
- @mriddle made their first contribution in #10086
- @Mr-Neutr0n made their first contribution in #10121
- @ChickenBenny made their first contribution in #10108
- @bysiber made their first contribution in #10137
- @Rohan5commit made their first contribution in #10139
- @cuiweixie made their first contribution in #10133
- @kelsonbrito50 made their first contribution in #10145
- @abdullahmujahidali made their first contribution in #10150
- @brianhelba made their first contribution in #10038
- @Br1an67 made their first contribution in #10155
- @daniel7an made their first contribution in #10103
- @vchomakov made their first contribution in #10040
- @drichardson made their first contribution in #10165
- @tsangwailam made their first contribution in #10181
- @Borzik made their first contribution in #10171
- @aurangzaib048 made their first contribution in #10159
- @ericbuehl made their first contribution in #10187
- @KianAnbarestani made their first contribution in #10192
- @patri27826 made their first contribution in #10184
- @dpgraham4401 made their first contribution in #10216
- @antonio-mello-ai made their first contribution in #10204
- @as567-code made their first contribution in #10224
- @avolant made their first contribution in #10135
- @EhteshamSid made their first contribution in #10244
- @Aamirofficiall made their first contribution in #10183
- @sk- made their first contribution in #10176
- @c32-4e3-844-41ed9dc5d made their first contribution in #10265
- @kittywaresz made their first contribution in #10258
- @9kernel made their first contribution in #10272
- @Song-Junho97 made their first contribution in #10277
- @Krishnachaitanyakc made their first contribution in #10217
- @jberclaz made their first contribution in #10263
- @dannon made their first contribution in #10281
- @stef41 made their first contribution in #10260
- @constantinblanariu made their first contribution in #10285
- @mina58 made their first contribution in #10293
- @SAY-5 made their first contribution in #10295
- @paulkagiri made their first contribution in #10300
- @lphuc2250gma made their first contribution in #10309
- @cyphercodes made their first contribution in #10313
- @puneetdixit200 made their first contribution in #10321
- @sastraxi made their first contribution in #10276
- @phanky1 made their first contribution in #10335
- @arkadiuszbach made their first contribution in #10334
- @wayyoungboy made their first contribution in #10343
- @r266-tech made their first contribution in #10214
- @goingforstudying-ctrl made their first contribution in #10342
- @DHUKK made their first contribution in #10291
- @harshitayadavv made their first contribution in #10397
- @lxingy3 made their first contribution in #10385
- @zainnadeem786 made their first contribution in #10363
- @sahilkanger made their first contribution in #10378
- @tejas-ae made their first contribution in #10257
- @eyupcanakman made their first contribution in #10323
- @theShmoo made their first contribution in #10403
- @MahinAnowar made their first contribution in #10406
- @eeshsaxena made their first contribution in #10392
- @Ozone317 made their first contribution in #10414
- @chuenchen309 made their first contribution in #10417
- @hanu-14 made their first contribution in #10419
- @oliverhaas made their first contribution in #10435
- @locker95 made their first contribution in #10470
- @Namraa310806 made their first contribution in #10461
- @AleksaMCode made their first contribution in #10485
- @sahilmathur254 made their first contribution in #10482
- @bchrobot made their first contribution in #10498
- @rahul2002m made their first contribution in #10488
- @dylanpulver made their first contribution in #10504
- @waterWang made their first contribution in #10519
- @ckarnell made their first contribution in #10487
- @LOGESHWAR123 made their first contribution in #10356
- @darkdi made their first contribution in #10460
- @harmehak0173 made their first contribution in #10481
- @Whning0513 made their first contribution in #10447
- @LaRoyBot made their first contribution in #10429
- @Mahir-Panchal made their first contribution in #10399
- @tobyh-canva made their first contribution in #10409
- @leetrout made their first contribution in #10365
- @ArockiaRajamanickam made their first contribution in #10532
- @mgaitan made their first contribution in #10416
- @MarthalaJagruthiReddy made their first contribution in #10563
- @GebleaAlex made their first contribution in #10566
- @GruffElixir made their first contribution in #10568
- @tritsystem made their first contribution in #10571
- @simpleqt made their first contribution in #10578
- @superboum made their first contribution in #10339
- @istoolsfox made their first contribution in #10595
- @sasirven made their first contribution in #9516
- @rmnvg made their first contribution in #10613
- @mrchatam made their first contribution in #10615
- @ndaprela made their first contribution in #10602
- @aprylewu made their first contribution in #10611
- @Yukibei made their first contribution in #10594
- @VimalN2005 made their first contribution in #10606
- @Dev-next-gen made their first contribution in #10620
- @vasilisnasopoulos made their first contribution in #10598
- @superh123 made their first contribution in #10644
- @bodapatisaikrishna made their first contribution in #10625
- @caspervdw made their first contribution in #9720
- @yauhpl-alt made their first contribution in #10668
- @jakezwang made their first contribution in #10663
- @ZainnQureshii made their first contribution in #10710
- @Barry-Lenhart made their first contribution in #10706
- @inchang-ing made their first contribution in #10714
- @Aswin1105 made their first contribution in #10717
- @00200200 made their first contribution in #10735
- @HassanRady made their first contribution in #10734
- @ryanakml made their first contribution in #10739
- @rmotgi1227 made their first contribution in #10318
- @Zir0-93 made their first contribution in #10770
- @devjoinedthechat made their first contribution in #10746
- @tavallaie made their first contribution in #10777
- @Mohamed-Elshesheny made their first contribution in #10749
- @hossam1244 made their first contribution in #10786
- @wfatih made their first contribution in #10699
- @TheoCouss made their first contribution in #9977
- @tuliodesouza made their first contribution in #10768
- @ShahafChen made their first contribution in #10804
- @mottopanikeiku made their first contribution in #10811
- @SatvikMishra08 made their first contribution in #10847
- @ayushin made their first contribution in #10842
- @jayzhou2309 made their first contribution in #10750
- @MokiMeow made their first contribution in #10824
- @LD-RW made their first contribution in #10840
- @ChristianMurphy made their first contribution in #10827
- @IslamElsayed made their first contribution in #10849
- @zhechen-cs made their first contribution in #10839
- @Mannava-Daasaradhi made their first contribution in #10828
- @halilunay made their first contribution in #10829
- @sergioperezcheco made their first contribution in #10838
- @LemonCondor made their first contribution in #10855
- @Om-singhaI made their first contribution in https://github.com/celery/celery/pull/10844
- @esauser made their first contribution in https://github.com/celery/celery/pull/10861
- @Cherith1222 made their first contribution in https://github.com/celery/celery/pull/10837
- @Grivn made their first contribution in https://github.com/celery/celery/pull/10873
- @TheNetherWatcher made their first contribution in https://github.com/celery/celery/pull/10878
- @maple-pwn made their first contribution in https://github.com/celery/celery/pull/10766
- @Kavin-Nithil made their first contribution in https://github.com/celery/celery/pull/10896
- @seanmuth made their first contribution in https://github.com/celery/celery/pull/10738
- @ZedingZhang made their first contribution in https://github.com/celery/celery/pull/10925
- @StasShk made their first contribution in https://github.com/celery/celery/pull/10895
- @dumb-programmer made their first contribution in https://github.com/celery/celery/pull/10902
- @muhammad-a-dev made their first contribution in https://github.com/celery/celery/pull/10926
- @gyanu2507 made their first contribution in https://github.com/celery/celery/pull/10759
- @aniketatgithub made their first contribution in https://github.com/celery/celery/pull/10944
- @subham-hq made their first contribution in https://github.com/celery/celery/pull/10778
- @myayush made their first contribution in https://github.com/celery/celery/pull/10889
- @dyp1109 made their first contribution in https://github.com/celery/celery/pull/10978
- @majidkhazaei made their first contribution in https://github.com/celery/celery/pull/10960
- @mayuriphad made their first contribution in https://github.com/celery/celery/pull/10787
- @its-amann made their first contribution in https://github.com/celery/celery/pull/10975
- @pujitha24 made their first contribution in https://github.com/celery/celery/pull/10959
Full Changelog: v5.6.3...v5.7.0