Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/taskito-async/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-async"
version = "0.14.1"
version = "0.14.2"
edition = "2021"

[dependencies]
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-core"
version = "0.14.1"
version = "0.14.2"
edition = "2021"

[features]
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-python/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-python"
version = "0.14.1"
version = "0.14.2"
edition = "2021"

[features]
Expand Down
2 changes: 1 addition & 1 deletion crates/taskito-workflows/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "taskito-workflows"
version = "0.14.1"
version = "0.14.2"
edition = "2021"

[features]
Expand Down
9 changes: 9 additions & 0 deletions docs/content/docs/more/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ description: "Release history for taskito — every notable change, fix, and fea

All notable changes to taskito are documented here.

## 0.14.2

### Fixed

- **`wait()` no longer returns transient `FAILED` during saga startup.** `WorkflowRun.wait()`'s poll safety-net could observe the run in `Failed` state before the saga orchestrator transitioned it to `Compensating`. When a tracker event is registered but has not yet fired, `wait()` now defers to the event instead of returning the possibly-transient terminal state. The event is set only after the saga decision is fully resolved, so `wait()` can never prematurely return `Failed` for a run that is about to compensate.
- **`_mark_run_compensating` retries on transient SQLite lock.** The `Failed` → `Compensating` storage write could silently fail under SQLite file contention, leaving the run stuck in `Failed`. The method now retries up to 5 times with backoff, matching the existing retry pattern in compensation job dispatch.

---

## 0.14.1

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion docs/src/lib/landing-content.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export type LandingCta = {
};

export const HERO: LandingHero = {
badge: "v0.12 — Rust core, native async, DAG workflows",
badge: "v0.14 — Rust core, native async, DAG workflows",
headline: ["Task queue", "without the broker."],
description:
"Rust-powered task queue for Python. Replace Celery without Redis or RabbitMQ. Start with SQLite, scale to Postgres.",
Expand Down
2 changes: 1 addition & 1 deletion py_src/taskito/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,4 @@

__version__ = _get_version("taskito")
except PackageNotFoundError:
__version__ = "0.14.1"
__version__ = "0.14.2"
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "taskito"
version = "0.14.1"
version = "0.14.2"
description = "Rust-powered task queue for Python. No broker required."
requires-python = ">=3.10"
license = { file = "LICENSE" }
Expand Down
Loading