Changelog
Release notes are maintained here.
[1.2.0] - 2026-02-02
Added
- Optional classifier helpers via extras:
aiohttp,grpc,boto3/botocore,redis,urllib3, andpyodbc. - Shared retry budgets (
Budget) withBUDGET_EXHAUSTEDstop reason/event for backpressure. - Testing utilities under
redress.testing(DeterministicStrategy, instant/no retries, FakePolicy, RecordingPolicy, FakeCircuitBreaker). - Per-attempt timeouts (
attempt_timeout_s) for Retry/AsyncRetry;TimeoutErrordefaults to TRANSIENT. - Injectable sleeper (
SleeperFn) andbefore_sleephooks for sync/async retries. - Adaptive backoff strategy wrapper (
adaptive) for failure-rate-sensitive backoff.
Docs
- Added testing guide, worker/queue recipe, and comparison page.
- Expanded production checklist and budget backpressure guidance.
[1.1.0] - 2026-01-25
Added
- Unified
Policy/Retrycontainers (and async variants) with circuit breaker integration. CircuitBreaker,CircuitState, andCircuitOpenErrorplus breaker events.- Result-based retries via
result_classifierand structured outcomes viaexecute()/RetryOutcome. Classification+BackoffContextfor context-aware strategies, plusretry_after_orandhttp_retry_after_classifier.- Attempt lifecycle hooks (
on_attempt_start,on_attempt_end,AttemptContext) and cooperative abort (abort_if,AbortRetryError). - Sleep handlers (
SleepDecision,SleepFn) to defer retries and surfacenext_sleep_s. EventNameandStopReasonenums for stable observability, plusredress.contrib.otelhooks.- Optional timeline capture on
execute()viaRetryOutcome.timeline.
Changed
per_class_max_attemptsnow allows0to disable retries for a class.- Missing per-class strategy stops retries with
StopReason.NO_STRATEGYinstead of raisingRuntimeError. - The
retrydecorator injects a default strategy only when bothstrategyandstrategiesare omitted.
[1.0.2] - 2026-01-24
Fixed
- Use monotonic time for deadline enforcement to avoid wall-clock jumps.
- Propagate cancellation/system-exit exceptions without retries (CancelledError, KeyboardInterrupt, SystemExit).
- Ignore non-HTTP integer args when coercing status in
http_classifier.
Added
strict_classifierfor classifier logic without name-based heuristics.
Docs
- Clarify classifier precedence and heuristic guidance.
[1.0.1] - 2026-01-23
Fixed
- Preserve original tracebacks when retries stop (permanent failures, caps, deadlines).
Docs
- Move changelog to the repository root.
[1.0.0] - 2025-12-24
Added
- 1.0 release and project rename to
redress.
[0.2.2] - 2025-11-24
Added
- bugfixes and docs updates
[0.2.1] - 2025-11-24
Added
- bugfixes and docs updates
[0.2.0] - 2025-11-23
Added
retrydecorator for wrapping sync and async callables with RetryPolicy/AsyncRetryPolicy.- Decorator usage example script and README updates.
- Usage docs covering decorator-based retries.
[0.1.0] - 2025-11-23
Added
- Initial functional version of
redresswith error classification, RetryPolicy with deadlines/per-class limits/hooks, jitter strategies, and metrics/logging adapters.