retry 0.7.7.0 → 0.8.0.0
raw patch · 4 files changed
+13/−13 lines, 4 filesdep −data-default-class
Dependencies removed: data-default-class
Files
- changelog.md +3/−0
- retry.cabal +1/−3
- src/Control/Retry.hs +7/−7
- test/Tests/Control/Retry.hs +2/−3
changelog.md view
@@ -1,3 +1,6 @@+0.8.0.0+* Remove dependency on data-default-class+ 0.7.7.0 * Add `natTransformRetryPolicy`
retry.cabal view
@@ -14,7 +14,7 @@ case we should hang back for a bit and retry the query instead of simply raising an exception. -version: 0.7.7.0+version: 0.8.0.0 synopsis: Retry combinators for monadic actions that may fail license: BSD3 license-file: LICENSE@@ -37,7 +37,6 @@ exposed-modules: Control.Retry build-depends: base >= 4.6 && < 5- , data-default-class , exceptions >= 0.5 && < 0.11 , ghc-prim < 0.6 , random >= 1 && < 1.2@@ -62,7 +61,6 @@ base ==4.* , exceptions , transformers- , data-default-class , random , time , HUnit >= 1.2.5.2
src/Control/Retry.hs view
@@ -35,6 +35,7 @@ RetryPolicyM (..) , RetryPolicy , retryPolicy+ , retryPolicyDefault , natTransformRetryPolicy , RetryStatus (..) , defaultRetryStatus@@ -87,7 +88,6 @@ import Control.Monad.Trans.Class import Control.Monad.Trans.Maybe import Control.Monad.Trans.State-import Data.Default.Class import Data.List (foldl') import Data.Maybe import GHC.Generics@@ -148,9 +148,9 @@ -- type signatures pre-0.7. type RetryPolicy = forall m . Monad m => RetryPolicyM m --instance Monad m => Default (RetryPolicyM m) where- def = constantDelay 50000 <> limitRetries 5+-- | Default retry policy+retryPolicyDefault :: RetryPolicy+retryPolicyDefault = constantDelay 50000 <> limitRetries 5 -- Base 4.9.0 adds a Data.Semigroup module. This has fewer@@ -427,13 +427,13 @@ go s = do res <- f s chk' <- chk s res- case chk' of- True -> do+ if chk'+ then do rs <- applyAndDelay policy s case rs of Nothing -> return res Just rs' -> go $! rs'- False -> return res+ else return res -------------------------------------------------------------------------------
test/Tests/Control/Retry.hs view
@@ -15,7 +15,6 @@ import Control.Monad.Identity import Control.Monad.IO.Class import Control.Monad.Writer.Strict-import Data.Default.Class (def) import Data.Either import Data.IORef import Data.List@@ -227,7 +226,7 @@ maskingStateTests = testGroup "masking state" [ testCase "shouldn't change masking state in a recovered action" $ do maskingState <- getMaskingState- final <- try $ recovering def testHandlers $ const $ do+ final <- try $ recovering retryPolicyDefault testHandlers $ const $ do maskingState' <- getMaskingState maskingState' @?= maskingState fail "Retrying..."@@ -242,7 +241,7 @@ maskingState @?= MaskedInterruptible return shouldRetry ]- final <- try $ recovering def checkMaskingStateHandlers $ const $ fail "Retrying..."+ final <- try $ recovering retryPolicyDefault checkMaskingStateHandlers $ const $ fail "Retrying..." assertBool ("Expected IOException but didn't get one") (isLeft (final :: Either IOException ()))