Releases: Xuanwo/backon
v1.3.0
What's Changed
- refactor: Remove the Debug requirement of Backoff by @Xuanwo in #141
- feat: Implement BackoffBuilder for Backoff itself by @Xuanwo in #142
- docs: mention sleep() in blocking retry examples by @SteveLauC in #143
- docs: document custom Sleeper impl by @SteveLauC in #147
- feat: Allow users to use &XxxBuilder by @Xuanwo in #148
- chore: Polish impl of saturating_mul by @Xuanwo in #151
- docs: Backon is
adaptable
by @Xuanwo in #155 - ci: Fix wasm unit test by @Xuanwo in #163
- Include license file in published crate by @ankane in #162
- fix: doc for
with_max_times
by @shikhar in #161 - feat: builder_without_max_(times|delay) by @nardoor in #160
- Bump version to 1.3.0 by @Xuanwo in #164
New Contributors
- @SteveLauC made their first contribution in #143
- @ankane made their first contribution in #162
- @shikhar made their first contribution in #161
- @nardoor made their first contribution in #160
Full Changelog: v1.2.0...v1.3.0
v1.2.0
- backon is now available under
no_std
. - backon now supports use users own blocking sleeper too.
- backon now raises build time error if sleeper not provided.
What's Changed
- fix: NoopSleeper should implement default by @Xuanwo in #135
- fix: compile to fail when using DefaultSleeper with no features enabled by @bdbai in #136
- docs: Polish MaybeSleeper names by @Xuanwo in #137
- feat: Add blocking sleeper for blocking retry by @Xuanwo in #138
- Add no_std flag, hide blocking retrys behind std flag by @adrian-kong in #125
- Bump to version 1.2.0 by @Xuanwo in #139
New Contributors
- @bdbai made their first contribution in #136
- @adrian-kong made their first contribution in #125
Full Changelog: v1.1.0...v1.2.0
v1.1.0
A Letter to BackON Users
Hello everyone,
Thank you very much for using BackON!
Before releasing version 1.0.0
, I thought it would be better to let users choose their own sleeper implementations, so I didn't enable them by default. However, many users encountered runtime panics. I apologize for not finding a solution that meets all requirements simultaneously: no API breaks, allowing sleeper passing at runtime, and no extra cost.
So in version 1.1.0
, I have added tokio-sleeper
and gloo-timers-sleep
to the default
feature. This change will make BackON behave like version 0.4.4
, allowing users to upgrade without adding new features. Additionally, I have moved the panic to occur earlier during the poll
feature instead of during the sleep
call. This makes it easier to catch issues during development rather than at runtime. Furthermore, we will only panic during the debug
profile and do nothing in the release
profile. This should protect users from panics even in the worst-case scenarios.
Please let me know if you have better solutions! Thanks in advance!
Xuanwo
What's Changed
- docs: Polish display on the first page of lib.rs by @Xuanwo in #122
- chore: Make backon a workspace by @Xuanwo in #124
- docs: Add section for sleeper by @Xuanwo in #130
- docs: Add sleep in README by @Xuanwo in #131
- refactor: Enable default features to avoid unexpected panic by @Xuanwo in #132
- backon: Bump to version 1.1.0 by @Xuanwo in #133
Full Changelog: v1.0.2...v1.1.0
v1.0.2
v1.0.1
v1.0.0
Upgrade
Since 1.0.0, backon Retry doesn't take a reference of builder anymore:
+ your_fn.retry(ExponentialBuilder::default()).await;
- your_fn.retry(&ExponentialBuilder::default()).await;
Since version 0.5.0, backon no longer directly depends on tokio
. Instead, users can now provide their own sleep implementation.
For example:
use anyhow::Result;
use backon::ExponentialBuilder;
use backon::Retryable;
use std::future::ready;
async fn main() -> Result<()> {
let content = fetch
.retry(&ExponentialBuilder::default())
.sleep(tokio::time::sleep)
.await?;
Ok(())
}
To maintain the same behavior as before, please enable the tokio-sleep
feature.
What's Changed
- fix: Expose struct out to generate API docs by @Xuanwo in #102
- refactor: Move all backoff in one mod by @Xuanwo in #103
- refactor: Take ownership of builder instead by @Xuanwo in #104
- docs: Re-position of backon by @Xuanwo in #106
- docs: Add a logo for backon by @Xuanwo in #107
- docs: Polish vision and docs by @Xuanwo in #108
- docs: Refactor examples by @Xuanwo in #109
- chore: Establish MSRV as 1.70 by @Xuanwo in #110
- Bump to version 1.0 by @Xuanwo in #111
Full Changelog: v0.5.0...v1.0.0
v0.5.0
Upgrade
Since version 0.5.0, backon no longer directly depends on tokio
. Instead, users can now provide their own sleep implementation.
For example:
use anyhow::Result;
use backon::ExponentialBuilder;
use backon::Retryable;
use std::future::ready;
async fn main() -> Result<()> {
let content = fetch
.retry(&ExponentialBuilder::default())
.sleep(tokio::time::sleep)
.await?;
Ok(())
}
To maintain the same behavior as before, please enable the tokio-sleep
feature.
What's Changed
- Remove duplicate example, point to examples on docs index page by @matildasmeds in #84
- ci: Use macos-latest for test by @Xuanwo in #87
- feat: Remove dependences on pin_project and futures_core by @Xuanwo in #86
- docs: Add an example for sqlx by @Xuanwo in #91
- Use wasm-compatible sleep if compiled for wasm32 by @wackazong in #92
- feat: Allow user to provide sleeper by @Xuanwo in #93
- Bump to version 0.5.0 by @Xuanwo in #94
New Contributors
- @matildasmeds made their first contribution in #84
- @wackazong made their first contribution in #92
Full Changelog: v0.4.4...v0.5.0
v0.4.4
What's Changed
- docs: Update README by @Xuanwo in #76
- chore(deps): update reqwest requirement from 0.11 to 0.12 by @dependabot in #78
- feat: Add blocking retry with context support by @Xuanwo in #80
- Bump backon to 0.4.4 by @Xuanwo in #81
Full Changelog: v0.4.3...v0.4.4
v0.4.3
What's Changed
- fix: revise the logic of exponential strategy by @yangmeilly in #71
- feat: Add retry with context by @Xuanwo in #72
- docs: Add more examples by @Xuanwo in #73
- Bump to version 0.4.3 by @Xuanwo in #74
New Contributors
- @yangmeilly made their first contribution in #71
Full Changelog: v0.4.2...v0.4.3
v0.4.2
What's Changed
- fix: Make backon work in wasm by @Xuanwo in #60
- chore(deps): update fastrand requirement from 1.9.0 to 2.0.0 by @dependabot in #62
- chore(deps): bump actions/checkout from 3 to 4 by @dependabot in #64
- docs: Document
tokio::time::sleep
usage by @vriesk in #66 - fix: fix
with_factor
assert by @wcy-fdu in #68 - Bump to version 0.4.2 by @Xuanwo in #69
New Contributors
Full Changelog: v0.4.1...v0.4.2