Releases: RealOrangeOne/django-tasks
0.12.0
Breaking changes
DB and RQ backends have been extracted into their own packages
From this version onwards, django-tasks will aim to mirror the upstream django.tasks package as much as possible. Therefore, the database and RQ backends have been extracted into their own packages. If you previously used either the DB or RQ backends, you can install them from their new homes:
They are available starting at 0.12.0 on PyPI, with the features which they would have received in this version. See their release notes for more information.
Ideas and suggestions can still be made to this repository, but changes will go through Django's feature development processes.
This change is done with the aim of making the ecosystem much simpler to explain. See #241 for more details.
Task metadata is no more
After a single release, metadata has been removed. This keeps the package in line with upstream django.tasks features. In future, notable feature improvements will be made upstream first, and then ported into django-tasks.
What's Changed
- Adresses #190 -- Failing task when exception raised for Import string by @p-r-a-v-i-n in #231
- Align task status with Django SUCCESSFUL by @cnaples79 in #230
- Extract RQ and DB backends into separate packages by @RealOrangeOne in #240
- Remove metadata support by @RealOrangeOne in #239
New Contributors
- @cnaples79 made their first contribution in #230
Full Changelog: 0.11.0...0.12.0
0.11.0
What's Changed
- Add task metadata by @RealOrangeOne in #212. Useful for building additional functionality on top of tasks
- fix small typo by @psadil in #221
- Cancelled previous runs and run only latest one in CI by @p-r-a-v-i-n in #217
- Fix runtime instantiation of
TaskResult[T]on Python 3.11 by @andre-fuchs in #222. Also affected older versions of Python 3.12 - Format traceback field to preserve indentation for readability by @p-r-a-v-i-n in #216
- migrate development optional- dependencies to PEP 735 dependency groups by @p-r-a-v-i-n in #215
- Upgrade GitHub Actions to latest major versions by @p-r-a-v-i-n in #213
- Support passing kwargs into task decorator by @RealOrangeOne in #227. Improves support for custom
Taskclasses - Support specifying a custom id function for the database backend by @RealOrangeOne in #228. Adds support for other UUID versions (eg UUID7) or database expressions (expressions is only supported on Django 6.0+)
New Contributors
- @psadil made their first contribution in #221
- @andre-fuchs made their first contribution in #222
Full Changelog: 0.10.0...0.11.0
0.10.0
Breaking changes
- Remove
enqueue_on_commitfunctionality by @RealOrangeOne in #194
What's Changed
- Test against Django 6.0 in CI by @mportesdev
- Add Python 3.14 support in CI by @p-r-a-v-i-n in #198
- Set import path of mocked function conditionally by @mportesdev in #207
New Contributors
- @p-r-a-v-i-n made their first contribution in #198
Full Changelog: 0.9.0...0.10.0
0.9.0
What's Changed
- fix: prevent
IndexError: pop from empty listin RQ backend by @crgwbr in #183 - Add support for Django 6.0 by @RealOrangeOne in #193
- Add
supports_priorityfeature - Access RQ worker name from result, rather than smuggling through meta (requires RQ 2.5+)
- Correctly handle unserializable return values in RQ backend
- Optimise job fetching in RQ backend
Breaking API changes
- Raise
TaskResultMismatchif callingTask.get_resultwith the task id of a different task - Rename
ResultDoesNotExisttoTaskResultDoesNotExist - Rename task backend handler from
taskstotask_backends - Rename
ResultStatus->TaskResultStatus - Drop support for Python 3.9
New Contributors
Full Changelog: 0.8.1...0.9.0
0.8.1
What's Changed
- Fix timezone support for run_after DATE_MAX by @RealOrangeOne in #179
Full Changelog: 0.8.0...0.8.1
If you haven't yet updated to 0.8.0, it's recommended to upgrade straight to 0.8.1.
0.8.0
Breaking changes
- The task status
NEWhas been renamed toREADY, to better support future retry functionality. Existing tasks are automatically migrated - Exceptions and tracebacks are moved to a
.errorslist, rather than being on theTaskResultdirectly. This allows multiple errors to be tracked
Notable changes
- Add DB indexes by @RealOrangeOne & @jonatron in #155 ⚡
- Add started signal by @RealOrangeOne in #158
- Allow stopping a worker after a given number of tasks by @RealOrangeOne in #157
- Identify a worker by a unique id by @RealOrangeOne in #136
- Add support for receiving task context by @RealOrangeOne in #174
- Add schema for multiple task attempts (multiple attempts, errors,
last_attempted_at) by @RealOrangeOne in #175
Other changes
- Fix outdated type annotation by @mportesdev in #173
- Terminate worker a little harder by @RealOrangeOne in #159
- Allow disabling auto-reload for db_worker when
settings.DEBUGis True by @janheini in #176 - Disable autoreload when using
--batch
New Contributors
- @mportesdev made their first contribution in #173
- @janheini made their first contribution in #176
- @jonatron made their first contribution in #155
Full Changelog: 0.7.0...0.8.0
0.7.0
What's Changed
- Don't require exclusive transactions for entire SQLite DB by @RealOrangeOne in #132 - Users can now remove the
TRANSACTION_MODE = "EXCLUSIVE"for the entire database connection. - Support auto-reloading of database worker by @RealOrangeOne in #152
- Add RQ backend by @RealOrangeOne in #151
- Add support for Django 5.2 by @RealOrangeOne in #153
- Correctly order
run_aftertasks by @RealOrangeOne in #154 - Improve test coverage in a few places
- Correctly raise an error when accessing the return value of an unsuccessful task
Full Changelog: 0.6.1...0.7.0
0.6.1
What's Changed
- Fix README for
.exception_classby @tomkins in #128 - Add a task_name property to DBTaskResult by @tomkins in #127
- Allow ./manage.py without args by @jonatron in #130
- Ensure return value is correctly exposed using database backend by @RealOrangeOne in 22d51b3
New Contributors
Full Changelog: 0.6.0...0.6.1
0.6.0
What's Changed
- Add explicit support for Python 3.13 by @RealOrangeOne in #112
- Don't enforce UUIDs for task ids by @RealOrangeOne in #120
- (breaking) Rename "completed" tasks to "succeeded" by @RealOrangeOne in #119
- (breaking) Simplify exception serialization to avoid issues with complex exceptions by @RealOrangeOne in #121
- (breaking) Remove support for
timedeltaforrun_after
Full Changelog: 0.5.0...0.6.0
0.5.0
What's Changed
- Update result to have separate attributes for return value and exception by @RealOrangeOne in #103
- Prevent writing to task results by @RealOrangeOne in #106
- Add additional test cases for process management by @RealOrangeOne in #88
- Add Django 5.1+ support for
CheckConstraint conditionwith backward compatibility by @saJaeHyukc in #108 - Separate return value and exception attributes for task results
- Add task enqueued and finished signals
- Freeze
Taskclass - Ensure
enqueued_atis updated when the task is enqueued - Add
--no-startup-delayoption to worker to disable initial pause as process starts up - Don't mark tasks as failed when pressing ctrl-c using
ImmediateBackend.
New Contributors
- @saJaeHyukc made their first contribution in #108
Full Changelog: 0.4.0...0.5.0