Repository navigation
Summary
RelPrim 1.0.0 is the first stable release of RelPrim.
The 1.0 release establishes the public API and compatibility contract for a Python reliability library built around explicit, composable primitives for external operations.
RelPrim includes retries with backoff and jitter, timeouts, fallbacks, circuit breakers, idempotency, provider-aware rate-limit recovery, validation, structured events and execution reports.
Highlights
- Stable public API for RelPrim 1.x
- Python 3.11–3.14 support
- PEP 561 typing with
py.typed - Strong downstream
@resilient(...)generic andParamSpecinference - Cancellation-safe retry, fallback, circuit-breaker and idempotency behavior
- Explicit and tested interactions between reliability policies
- Stable structured-event and execution-metadata contract
- Optional OpenTelemetry integration
- Durable local event history with SQLite
- JSON Schema and Pydantic validation adapters
- Clean base installation with optional integrations kept behind extras
Reliability primitives
RelPrim 1.0 provides:
- retry policies with backoff and jitter
- operation timeouts
- fallback chains
- circuit breakers
- idempotent execution
- provider-aware rate-limit recovery
- result validation
- structured lifecycle events
- execution reports and metadata
These primitives can be composed through AsyncOperation or the higher-level @resilient(...) decorator.
Stability and typing
RelPrim 1.0 defines the compatibility expectations for the public API, structured events and execution metadata.
The distributed package includes py.typed, and typing is verified against the installed wheel with strict downstream mypy checks.
Breaking changes from 0.11
The final pre-1.0 hardening included several intentional API and semantic cleanups.
Notable changes include:
- stricter retry exception-filter validation
- exception filters use
Exceptionsubclasses rather thanBaseException - corrected fallback filtering and validation semantics
retry_countcounts primary retries only- operation-raised
TimeoutErroris preserved instead of being converted into a RelPrim timeout - raw idempotency keys are no longer exposed in reports or errors
- non-finite durations are rejected
- successful validation reports the concrete validator
- rate-limit metadata reflects the delay actually selected
See the migration guide for the complete 0.11 → 1.0 migration notes.
Installation
pip install relprimOptional integrations:
pip install "relprim[otel]"
pip install "relprim[jsonschema]"
pip install "relprim[pydantic]"Verification
RelPrim 1.0.0 was verified through:
- 465 automated tests
- Python 3.11, 3.12, 3.13 and 3.14 CI
- Ruff formatting and linting
- strict mypy
- clean wheel and sdist builds
twine check --strict- clean-environment distribution verification
- base installation without unintended optional dependencies
- all optional extras
- all maintained examples against the installed wheel
- downstream strict mypy
- TestPyPI installation
- production PyPI installation with all optional extras
- a published and independently installed
1.0.0rc1release candidate
RelPrim 1.0 marks the transition from pre-stable development to a stable compatibility commitment for the 1.x series.