Repository navigation
Error Forge v0.9.7 — Release Candidate
Pre-release
Pre-release
Error Forge v0.9.7 — Stability, Polish, and Release Readiness
This release is all about hardening the 0.9 line for real production use.
0.9.7 focuses on correctness, consistency, and developer trust: tighter macro behavior, corrected derive handling, cleaner docs, and a fully green quality bar (test, clippy, and doc) across feature sets.
What is new in 0.9.7
API and runtime hardening
- Added
try_register_error_hook(...)so duplicate hook registration can be detected explicitly. CodedError::with_retryable(...)now applies a real per-instance override.CodedError::with_status(...)now applies a real per-instance override.
Macro and derive reliability fixes
- Fixed
define_errors!helper expansion edge cases that could affect tag parsing, display generation, and source chaining. - Fixed
#[derive(ModError)]so list-style attributes such as#[error_display("...")]and#[error_http_status(...)]are correctly honored. - Aligned
define_errors!defaultfatalbehavior withForgeErrorandAppErrordefaults (falseunless explicitly set).
Documentation accuracy pass
- Reworked README and API documentation to match the real public surface and current behavior.
- Removed stale/outdated sections that no longer represented shipped APIs.
- Refined examples and guidance for sync-first recovery behavior and feature-gated usage.
Quality and verification
- Added regression coverage for macro generation, derive behavior, coded-error overrides, and feature-gated paths.
- Cleared strict lint warnings and kept the crate clean under:
cargo test --all-featurescargo clippy --all-targets --all-features -- -D warningscargo doc --all-features --no-deps
Still here from the 0.9 line
- Unified
ForgeErrormodel with stable metadata (kind, retryability, status/exit codes). - Rich declarative and derive ergonomics via
define_errors!and#[derive(ModError)]. - Error composition via
group!. - Context propagation (
ContextError,ResultExt). - Error code registry and collectors.
- Sync recovery primitives (retry/backoff/circuit breaker) plus optional async error trait support.
Compatibility and migration notes
- Non-breaking for current 0.9 adopters.
- Existing sync hook flows continue to work.
- New
try_register_error_hook(...)is additive and can be adopted incrementally. - Derive users relying on list-style attributes should see improved consistency.
Install / upgrade
[dependencies]
error-forge = "0.9.7"Optional features commonly used in production:
[dependencies]
error-forge = { version = "0.9.7", features = ["derive", "async", "serde", "log", "tracing"] }Thanks
Thanks to everyone pushing for higher reliability and cleaner docs. This release is intentionally less flashy and more foundational: fewer surprises, clearer behavior, and better confidence when deploying Error Forge in production systems.
Full Changelog: v0.9.6...v0.9.7