See the document changelog for more information about the release, and how to handle the breaking changes.
Breaking Changes
Major Breaking Changes
- Change StubBroker.join() parameter fail_fast to default to True by @LincolnPuzey in #758
- make Prometheus optional by @azmeuk in #688
- Make
backenda required argument toResultMiddlewareby @LincolnPuzey in #728
Minor Breaking Changes
- rate_limits: Remove option for non-callable
keysargument toincr_and_sumby @mikeroll in #772 - redis: Remove
requeue_{deadline,interval}arguments by @mikeroll in #782 - redis: Remove worker heartbeat compatibility code by @mikeroll in #771
- Remove URLRabbitmqBroker. by @LincolnPuzey in #786
Fixed
- Change
compute_backoffimplementation to respect min_backoff by @LincolnPuzey in #721 - Fix off-by-one error in number of rabbitMQ declare/enqueue retries by @LincolnPuzey in #734
- Adding a Middleware triggers the
after_declare_actor()hook with the correct Actor parameter instead of the Actor’s name by @jenstroeger in #743 - Fixes #759 Consumers down when ETA is None (or not isnumeric) by @gurelkaynak in #761
- Fix edge case raising exception in
StubBroker.join()by @LincolnPuzey in #763 - Correct type hint of
Consumer.__next__method by @LincolnPuzey in #777 - Fix/rabbitmq pika logging by @synweap15 in #783
Added
- Improve typing coverage on external API, in particular Worker and Broker classes by @jenstroeger in #731
- Improve typing coverage of middleware classes by @jenstroeger in #735
- Further improve typing on external interface functions for Broker and Worker by @jenstroeger in #744
- Message.mesage_datetime property by @karolinepauls in #736
- Test and declare support for python 3.14 by @LincolnPuzey in #751
- chore: expose ConsumerThread and WorkerThread from worker module by @synweap15 in #760
- add dramatiq_worker_timeout environment variable by @ksoviero-zengrc in #773
Changed
- Replace StrictRedis with Redis and bump redis version to >=4 by @LincolnPuzey in #764
Removed
- Drop python 3.9 support by @LincolnPuzey in #784
Documentation
- Improve documentation relating to Middleware by @LincolnPuzey in #718
- docs: add
set_brokercall to "Providing a list of Middleware Classes" by @karolinepauls in #723 - Add documentation of asyncio support by @LincolnPuzey in #719
- Add documentation for the environment variables dramatiq uses by @LincolnPuzey in #720
- Improve Documentation about message priorities by @LincolnPuzey in #725
- Document before/after_enqueue signals as including retries by @karolinepauls in #753
- Add note about file processing best practice to the docs by @LincolnPuzey in #781
- Small Reference docs improvements by @LincolnPuzey in #789
- Add GroupCallbacks to reference documentation by @LincolnPuzey in #790
- Add notes about 3.14 changes to release notes by @LincolnPuzey in #792
Project Maintenance
- Fix flaky test test_message_contains_requeue_time_after_retry by @LincolnPuzey in #716
- prometheus: remove unused LOCK_PATH by @karolinepauls in #722
- Format all code using Black by @jenstroeger in #730
- Create .git-blame-ignore-revs by @LincolnPuzey in #732
- Use
from __future__ import annotationseverywhere by @LincolnPuzey in #737 - Bring changelog up-to-date by @LincolnPuzey in #742
- Update .gitignore with .idea and .venv by @LincolnPuzey in #747
- Improve black setup by @LincolnPuzey in #746
- Define the build backend used to build the project by @LincolnPuzey in #750
- Update bug_report.md issue template by @LincolnPuzey in #749
- Migrate tool config to pyproject.toml by @LincolnPuzey in #765
- Use PEP-735 Dependency groups instead of [dev] extra by @LincolnPuzey in #766
- Bring changelog up-to-date by @LincolnPuzey in #778
- Version 2.0.0 by @LincolnPuzey in #793
New Contributors
- @azmeuk made their first contribution in #688
- @gurelkaynak made their first contribution in #761
- @ksoviero-zengrc made their first contribution in #773
- @mikeroll made their first contribution in #772
Full Changelog: v1.18.0...v2.0.0
Thanks to everyone who contributed to this release!