From 60e4d2de5f24e77655c0f4d4d0a869384db2055b Mon Sep 17 00:00:00 2001 From: Pratyush Sharma <56130065+pratyush618@users.noreply.github.com> Date: Mon, 15 Jun 2026 10:22:15 +0530 Subject: [PATCH] chore(release): 0.16.3 --- crates/taskito-async/Cargo.toml | 2 +- crates/taskito-core/Cargo.toml | 2 +- crates/taskito-mesh/Cargo.toml | 2 +- crates/taskito-python/Cargo.toml | 2 +- crates/taskito-workflows/Cargo.toml | 2 +- docs/content/docs/more/changelog.mdx | 29 ++++++++++++++++++++++++++++ py_src/taskito/__init__.py | 2 +- pyproject.toml | 2 +- 8 files changed, 36 insertions(+), 7 deletions(-) diff --git a/crates/taskito-async/Cargo.toml b/crates/taskito-async/Cargo.toml index 7294a952..39ee2c57 100644 --- a/crates/taskito-async/Cargo.toml +++ b/crates/taskito-async/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "taskito-async" -version = "0.16.2" +version = "0.16.3" edition = "2021" [dependencies] diff --git a/crates/taskito-core/Cargo.toml b/crates/taskito-core/Cargo.toml index 6a74e91a..313a5b81 100644 --- a/crates/taskito-core/Cargo.toml +++ b/crates/taskito-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "taskito-core" -version = "0.16.2" +version = "0.16.3" edition = "2021" [features] diff --git a/crates/taskito-mesh/Cargo.toml b/crates/taskito-mesh/Cargo.toml index dc8bfed7..308381aa 100644 --- a/crates/taskito-mesh/Cargo.toml +++ b/crates/taskito-mesh/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "taskito-mesh" -version = "0.16.2" +version = "0.16.3" edition = "2021" [dependencies] diff --git a/crates/taskito-python/Cargo.toml b/crates/taskito-python/Cargo.toml index b8b6ab65..90548e14 100644 --- a/crates/taskito-python/Cargo.toml +++ b/crates/taskito-python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "taskito-python" -version = "0.16.2" +version = "0.16.3" edition = "2021" [features] diff --git a/crates/taskito-workflows/Cargo.toml b/crates/taskito-workflows/Cargo.toml index 8d885e09..4714ab23 100644 --- a/crates/taskito-workflows/Cargo.toml +++ b/crates/taskito-workflows/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "taskito-workflows" -version = "0.16.2" +version = "0.16.3" edition = "2021" [features] diff --git a/docs/content/docs/more/changelog.mdx b/docs/content/docs/more/changelog.mdx index 9c8c287f..4b198d8b 100644 --- a/docs/content/docs/more/changelog.mdx +++ b/docs/content/docs/more/changelog.mdx @@ -5,6 +5,35 @@ description: "Release history for taskito — every notable change, fix, and fea All notable changes to taskito are documented here. +## 0.16.3 + +Reliability patch — correctness fixes across the scheduler and storage layer, plus the missing Django admin templates. No API changes. + +### Fixed + +- **Django admin templates.** The `taskito.contrib.django` admin views shipped + without their templates, so every admin page raised `TemplateDoesNotExist`. The + templates are now authored and packaged, and the integration guide documents the + required `taskito.contrib.django` entry in `INSTALLED_APPS`. +- **At-most-once retries.** An explicit per-call `max_retries=0` is no longer + overridden by the task-policy default, so a no-retry job is no longer + re-executed up to the policy limit. +- **Unique enqueue.** `enqueue_unique` now validates dependencies inside the + transaction — a missing dependency no longer runs the job and a dead/cancelled + dependency no longer strands it `Pending` — and never returns a phantom + (rolled-back) job under unique-key contention. +- **Dead-letter policy.** DLQ auto-retry is scoped to the worker's namespace and + served queues (no longer resurrecting other workers' entries); per-entry and + per-job result TTLs are purged even without a global `result_ttl`; and job + metadata survives the dead-letter round trip. +- **SQLite transaction safety.** Read-then-write operations (dequeue, enqueue, + rate-limit) use immediate write-priority transactions, avoiding `SQLITE_BUSY` + deadlocks; migration `ALTER TABLE` failures now propagate instead of being + downgraded to warnings. +- **Postgres rate limiting.** The rate-limit row is seeded and locked + `FOR UPDATE`, preventing concurrent workers from over-admitting beyond the + configured limit. + ## 0.16.2 Reliability patch — correctness fixes across the scheduler, dashboard, and Redis backend. No API changes. diff --git a/py_src/taskito/__init__.py b/py_src/taskito/__init__.py index 81be362b..3d32bb56 100644 --- a/py_src/taskito/__init__.py +++ b/py_src/taskito/__init__.py @@ -122,4 +122,4 @@ __version__ = _get_version("taskito") except PackageNotFoundError: - __version__ = "0.16.2" + __version__ = "0.16.3" diff --git a/pyproject.toml b/pyproject.toml index 1ae7a38f..69ca6548 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "taskito" -version = "0.16.2" +version = "0.16.3" description = "Rust-powered task queue for Python. No broker required." requires-python = ">=3.10" license = { file = "LICENSE" }