This is a new major version of cats-retry, providing new features and a fresh API design.
Major user-facing changes
The major changes in v4 are as follows:
- Scala 3. The library is now published for Scala 3 only.
- Cats Effect. The library is now more strongly coupled to Cats Effect.
- Adaptation. cats-retry now supports adaptation in the face of errors or failures.
- Dynamic retry policies. Retry policies are now more powerful.
- API redesign. The API has been completely rewritten to provide more power and flexibility with fewer combinators.
Migrating from cats-retry v3
cats-retry v4 is not binary-compatible or source-compatible with v3, so you will need to make some changes to your source code.
Please see the migration guide for detailed instructions.
Behind the scenes
- The codebase has been ported to Scala 3 syntax, getting rid of package objects, updating the syntactic sugar to use Scala 3 extension methods, switching to Scala 3 enums, etc
- The tests have been ported from ScalaTest to MUnit, and many test suites have been completely rewritten
- All the dependencies and sbt plugins have been upgraded
PRs
- V4 🚀 by @cb372 @AlejandroBudy @ccantarero91 in #549, which aggregated the following PRs
- feat: migrate to scala 3 by @ccantarero91 in #532
- Remove Sleep typeclass by @AlejandroBudy in #536
- feat: migrate to scala 3 v2 by @ccantarero91 in #538
- Rename higher kinded type parameter from M to F by @AlejandroBudy in #540
- API changes to support adaptation by @cb372 in #534
- Remove the remaining package objects by @cb372 in #543
- Reorder params by @cb372 in #544
- Return result wrapped in an Either to indicate success/failure by @cb372 in #545
- Upgrade dependencies by @cb372 in #546
- Add a v3 -> v4 migration guide by @cb372 in #547
- Add new devs to POM by @cb372 in #548
- Install sbt in GH actions by @cb372 in #551
- Dynamic retry policies by @cb372 in #550
- Use Cats Effect Random for randomness in fullJitter by @cb372 in #552
- Fix the installation of Jekyll in CI by @cb372 in #553
- Update method signatures in migration guide by @cb372 in #555
- Remove obsolete Mergify and release-drafter configs by @cb372 in #556
- Update scalafmt-core to 3.8.3 by @scala-steward in #507
- Update sbt-scalajs, scalajs-library_2.13, ... to 1.18.1 by @scala-steward in #557
- Update sbt-scalafmt to 2.5.3 by @scala-steward in #558
- Update scalafmt-core to 3.8.4 by @scala-steward in #559
Full Changelog: v3.1.1...v4.0.0