Releases: Bogdanp/dramatiq
Releases · Bogdanp/dramatiq
v2.0.0
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!
v1.18.0
Fixed
- fix: correct typing on signal handler by @igor47 in #664
- fix: make sure RabbitMQ broker’s enqueue() attempts the correct number of preset retries by @jenstroeger in https://github.com/
- fix: message can be covariant in result type by @alecbarber in #685 #669
- Fix flushing of RabbitMQ queues by @olii in #687
- Fix TypeError when using decorator on a module-less function by @bartvanandel in #695
- Ignore FileClosedNoWriteEvent events in file watcher by @LincolnPuzey in #696
- fix: join_queue implementation for compatibility with gevent 25.4.1 by @synweap15 in #699
- Close write_pipe after forking by @dansimko in #707
Added
- Add repr to MessageProxy by @karolinepauls in #690
- Adjust worker startup timeout with new command-line argument by @guedesfelipe in #706
- feature: log warning when middleware of a given type is added twice by @synweap15 in #709
Changed
Removed
Documentation
- Add Podcatcher sponsor.
- Add dramatiq-workflow link by @pencil in #667
- Update sentry integration docs to refernece
sentry-sdkby @DHUKK in #675
Project Maintenance
- Fix changelog entry for dramatiq_queue_prefetch by @LincolnPuzey in #674
- Update CI to use ubuntu 24.04 by @LincolnPuzey in #697
- fix: occasional test_message_contains_requeue_time_after_retry fails by @synweap15 in #700
- Update issue templates by @LincolnPuzey in #705
- Prepare for release 1.18.0 by @LincolnPuzey in #713
New Contributors
- @igor47 made their first contribution in #664
- @pencil made their first contribution in #667
- @DHUKK made their first contribution in #675
- @alecbarber made their first contribution in #685
- @LincolnPuzey made their first contribution in #674
- @olii made their first contribution in #687
- @karolinepauls made their first contribution in #690
- @bartvanandel made their first contribution in #695
- @dansimko made their first contribution in #707
- @guedesfelipe made their first contribution in #706
Full Changelog: v1.17.1...v1.18.0
Thanks to everyone who contributed to this release!
v1.17.1
Fixed
Added
- The Retries middleware now supports an on_retries_exhausted target actor to execute when retries on a message have been exhausted. (#630, @dbowring)
Changed
- The actor decorator now checks for duplicate actor names. (#640, #641, @z0z0r4)
- The Retries middleware now tracks when a message was last requeued on retry. (#629, @kuba-lilz)
v1.17.0
Added
- Middleware hooks for after consumer & worker thread boot. (#619, @kamalmarhubi)
- Type hints for awaitable actors. (#621, @DABND19)
Changed
- The
watchextras now require Watchdog version 4.0+.
Fixed
- The
python_requiresversion insetup.py. (#606, @Niccodemus) - The result middleware now takes message options into account. (#612, @huwylphimet)
v1.16.0
v1.15.0
Fixed
- The
global_brokervariable is now type hinted. (@jenstroeger) - Pipeline result retrieval works with non-default brokers. (#563, #564, @DiegoPomares)
Added
- Asyncio support. (#536, @caspervdw)
- Timedelta support for delay arguments. (#569, @h3nnn4n)
Changed
v1.14.2
v1.14.1
v1.14.0
Note: this version was released on 2023-02-05. I am just now backfilling a GitHub Release for it.
Removed
- Dropped Python 3.6 support as it reached end-of-life.
Changed
v1.13.0
Note: this version was released on 2022-04-02. I am just now backfilling a GitHub Release for it.
Fixed
- A race condition in the Redis broker’s join method. (#480, #481, @CaselIT)
- Skipped messages and messages failed due to AgeLimit now store results more consistently. (#440, #449, @FinnLidbetter)
Changed
- Typing support has been improved. (#482, @staticdev)
- The default broker now falls back to Redis if the RabbitMQ extras are not installed, in an attempt to make the getting started process easier. (#483, #486, @kurtmckee)