Changelog
0.5.0 - 2026-03-17
Breaking Changes
- 💥 Add namespace prefix to sync primitive backend keys (
lock:,tasklock:,leader:). See Migration Guide below.
Features
- ✨ Add
TaskLock.from_threadthread-safe adapter. PR #57. - ✨ Add specific lock error classes (
LockAcquireError,LockReleaseError,LockLockedCheckError,LockOwnedCheckError,LockReentrantError). PR #57.
Refactors
- ♻️ Consolidate distributed lock and leader gating into the
interval()decorator viamax_lock_secondsandleaderparameters. PR #54.
Docs
- 📝 Add Synchronization Architecture page. PR #57.
Internal
- ⬆️ Bump redis, fastapi, pydantic, and pydantic-settings. PR #55.
- ⬆️ Update pre-commit hooks. PR #50.
Migration Guide
Namespace-Prefixed Backend Keys
Prior versions used the name parameter directly as the backend key. Now each primitive adds a type-specific prefix:
| Primitive | Name | Backend Key |
|---|---|---|
Lock("my-resource") |
my-resource |
lock:my-resource |
TaskLock("cleanup") |
cleanup |
tasklock:cleanup |
LeaderElection("main") |
main |
leader:main |
Existing locks stored in Redis or PostgreSQL will no longer match after upgrading. A running instance on the old version and one on the new version will not see each other's locks.
Upgrade all running instances together so they use the same key format. Old keys expire automatically via their lease duration (Redis PEXPIRE / PostgreSQL expire_at).
0.4.1 - 2026-03-13
Docs
- 📝 Add Task Lock to synchronization primitives guide.
Internal
- ⬆️ Bump actions/checkout to v6 and astral-sh/setup-uv to v7.
0.4.0 - 2026-03-13
Features
- ✨ Add
TaskLockfor ShedLock-style distributed task locking. - ✨ Add
LOG_TIMEZONEsupport for configurable timezone in logging output. - ✨ Add OpenTelemetry trace context injection into log records.
- ✨ Add
structlogas alternative logging backend. - ✨ Add configurable JSON serializer (
json/orjson) for logging.
Docs
- 📝 Add logging benchmark and performance documentation.
Internal
0.3.2 - 2026-01-27
Internal
- 👷 Migrate from mypy to Astral ty for type checking. PR #45.
- 🔧 Add Python 3.14 support. PR #47.
- 🔧 Switch build system to
uv_build. PR #49. - 💚 Simplify CI and release workflow. PR #24.
0.3.1 - 2025-06-05
Docs
- 📝 Add resilience patterns section and update links in README and index.
Internal
- 💚 Fix release pipeline and GitHub Pages deployment permissions.
0.3.0 - 2025-06-05
Features
- ✨ Add Circuit Breaker resilience pattern. PR #18.
Docs
- 📝 Refactor code examples to use snippets.
Internal
0.2.3 - 2024-12-04
Features
- ✨ Add Redis key prefix support to avoid conflicts in shared instances.
- ✨ Add Redis and PostgreSQL settings management from environment variables.
0.2.2 - 2024-11-28
Features
- ✨ Add PostgreSQL backend configuration from environment variables.
Internal
0.2.1 - 2024-11-26
Internal
- 💚 Set up release workflow with version tagging.
0.2.0 - 2024-11-26
First public release.
Features
- ✨ Add distributed
Lockwith lease-based expiration. - ✨ Add
LeaderElectionfor single-leader task execution. - ✨ Add
IntervalTaskscheduler for periodic tasks with synchronization support. - ✨ Add Redis, PostgreSQL, and in-memory synchronization backends.
- ✨ Add logging module with JSON and TEXT formatting via
LOG_LEVELandLOG_FORMATenvironment variables.
Docs
- 📝 Add MkDocs documentation site with Material theme.
Internal
- 👷 Add unified CI workflow with linting, testing, and coverage.