What's Changed
- 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
New Contributors
- @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
Full Changelog: v5.7.0a1...v5.7.0b1