Skip to content

Changelog

Release notes are maintained here.

[1.2.0] - 2026-02-02

Added

  • Optional classifier helpers via extras: aiohttp, grpc, boto3/botocore, redis, urllib3, and pyodbc.
  • Shared retry budgets (Budget) with BUDGET_EXHAUSTED stop 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; TimeoutError defaults to TRANSIENT.
  • Injectable sleeper (SleeperFn) and before_sleep hooks 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/Retry containers (and async variants) with circuit breaker integration.
  • CircuitBreaker, CircuitState, and CircuitOpenError plus breaker events.
  • Result-based retries via result_classifier and structured outcomes via execute() / RetryOutcome.
  • Classification + BackoffContext for context-aware strategies, plus retry_after_or and http_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 surface next_sleep_s.
  • EventName and StopReason enums for stable observability, plus redress.contrib.otel hooks.
  • Optional timeline capture on execute() via RetryOutcome.timeline.

Changed

  • per_class_max_attempts now allows 0 to disable retries for a class.
  • Missing per-class strategy stops retries with StopReason.NO_STRATEGY instead of raising RuntimeError.
  • The retry decorator injects a default strategy only when both strategy and strategies are 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_classifier for 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

  • retry decorator 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 redress with error classification, RetryPolicy with deadlines/per-class limits/hooks, jitter strategies, and metrics/logging adapters.