Skip to content

v0.2.0

Choose a tag to compare

@AlexeyMatskevich AlexeyMatskevich released this 30 May 15:10
· 40 commits to master since this release

What's new in 0.2.0

⚠️ Breaking

  • Removed the public SharedPostgresError::NamespaceExists variant (dead after the broadcast redesign). Code that matched on it must be updated. Under 0.x semver this warrants the minor bump.

Features

  • wait_for_completion is now resilient to transient database errors. A failed completion poll is retried with backoff instead of abandoning the whole batch; the stream surfaces an error and ends only after several consecutive failures with no successful poll in between. Any successful poll resets the streak, and completed results stay durable in apalis.jobs, so a surfaced error is always safe to recover from by re-issuing wait_for.

Fixes

  • Concurrent setup() migrations are serialized with a session-level advisory lock, so several replicas booting against a fresh database no longer race on migration-0 DDL / the __diesel_schema_migrations insert.

Tests & internals

  • Large methodology-driven test pass (exhaustive specification through nested contexts): closed coverage gaps (queue_by_id, list_tasks defaults, the lock_task re-lock and queue-scoping arms, metadata-cap and claimability boundary values), tightened assertions, and de-flaked the suite (shared pool, temp-DB isolation, deterministic worker-integration terminal status). 521 tests, clippy clean.

Docs

  • Installation now points at crates.io.

Full diff: v0.1.1...v0.2.0