mettle 0.5.0

Retry for Rust, async and blocking: backoff, jitter, per-attempt timeouts, and a clock you can mock.
Documentation
# Contributing to mettle

Thanks for your interest. mettle is small and early, so the process is light.

## Before a large change

Open an issue first so we can agree on the approach. The design rationale lives in
[`docs/adr/`](docs/adr/) — worth a skim before proposing API changes.

## Development

```sh
cargo test --all-features        # full suite
cargo fmt --all                  # format
cargo clippy --all-targets --all-features -- -D warnings
```

Keep the whole feature matrix green. CI runs `test`, `clippy`, `docs` and `msrv` against each of
these four configurations, so a change that only builds under `--all-features` still fails:

```sh
cargo test --all-features
cargo test                                              # defaults
cargo test --no-default-features --features async
cargo test --no-default-features --features blocking
```

MSRV is 1.85, and it applies to tests and examples too:

```sh
cargo +1.85.0 check --all-features --all-targets
```

The two checks that only CI used to catch, and that are worth running before you open a PR:

```sh
RUSTDOCFLAGS='-D warnings' cargo doc --all-features --no-deps   # broken intra-doc links
cargo semver-checks                                             # cargo install cargo-semver-checks
```

`cargo doc` is the only thing that catches a broken intra-doc link; tests, clippy and MSRV all pass
straight through them.

**If your change is breaking, bump the version in the same branch.** `cargo semver-checks` runs on
the pull request and compares your manifest against the published crate, so a breaking change left
at the current version fails CI no matter how good it is. In 0.x that means a minor bump: 0.4.0 to
0.5.0. Finalize the `CHANGELOG.md` heading with a date in the same commit and leave an empty
`## [Unreleased]` above it.

## Licensing

By contributing, you agree that your contributions are dual-licensed under `MIT OR Apache-2.0`,
matching the project.