packages feed

wai-feature-flags 0.1.0.1 → 0.1.0.2

raw patch · 4 files changed

+22/−16 lines, 4 filesdep +splitmixdep −randomdep ~aesonPVP ok

version bump matches the API change (PVP)

Dependencies added: splitmix

Dependencies removed: random

Dependency ranges changed: aeson

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.1.0.2++- Support `aeson-2.0.x`.+ # 0.1.0.1  - Fixed bug where old feature flags would still be shown in the UI.
LICENSE view
@@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2020, Jasper Woudenberg+Copyright (c) 2021, Jasper Woudenberg All rights reserved.  Redistribution and use in source and binary forms, with or without
src/Network/FeatureFlags.hs view
@@ -80,7 +80,7 @@ import GHC.TypeLits (ErrorMessage (..), KnownSymbol, TypeError, symbolVal) import qualified Network.Wai as Wai import qualified Paths_wai_feature_flags as Paths-import System.Random (StdGen, getStdRandom, randomR)+import System.Random.SplitMix (SMGen, newSMGen, nextWord32)  -- FRONTEND @@ -179,13 +179,14 @@ fetch store = do   let keys = flags (Proxy :: Proxy flags)   configs <- readFlagConfigs keys store-  getStdRandom (generate configs)+  smgen <- newSMGen+  pure . fst $ generate configs smgen  -- PERCENT -newtype Percent = Percent Word.Word deriving (Aeson.ToJSON, Aeson.FromJSON)+newtype Percent = Percent Word.Word32 deriving (Aeson.ToJSON, Aeson.FromJSON) -percent :: Word.Word -> Percent+percent :: Word.Word32 -> Percent percent = Percent . min 100  -- FLAGS@@ -203,18 +204,18 @@ -- > -- > instance Flags Features class Flags flags where-  generate :: Map.HashMap T.Text Percent -> StdGen -> (flags, StdGen)+  generate :: Map.HashMap T.Text Percent -> SMGen -> (flags, SMGen)    flags :: proxy flags -> [T.Text] -  default generate :: (Generic flags, GFlags (Rep flags)) => Map.HashMap T.Text Percent -> StdGen -> (flags, StdGen)+  default generate :: (Generic flags, GFlags (Rep flags)) => Map.HashMap T.Text Percent -> SMGen -> (flags, SMGen)   generate configs gen = first GHC.Generics.to $ ggenerate configs gen    default flags :: (Generic flags, GFlags (Rep flags)) => proxy flags -> [T.Text]   flags _ = gflags (Proxy :: Proxy (Rep flags))  class GFlags flags where-  ggenerate :: Map.HashMap T.Text Percent -> StdGen -> (flags g, StdGen)+  ggenerate :: Map.HashMap T.Text Percent -> SMGen -> (flags g, SMGen)    gflags :: proxy flags -> [T.Text] @@ -273,7 +274,8 @@     :$$: 'Text "     Flags { showErrorPage    :: Bool"     :$$: 'Text "           , throttleRequests :: Bool }" -roll :: StdGen -> Percent -> (Bool, StdGen)+roll :: SMGen -> Percent -> (Bool, SMGen) roll gen (Percent trueChance) =-  let (randomPercentage, gen') = randomR (1, 100) gen-   in (trueChance >= randomPercentage, gen')+  let (randomWord32, gen') = nextWord32 gen+      between1And100 = 1 + (randomWord32 `mod` 100)+   in (trueChance >= between1And100, gen')
wai-feature-flags.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 5f636ade04903a879e49301a8a893bccfcc1c21f5b4c225839e027930b4d2e4c+-- hash: 32da1a36f9e6919162db72cf827de32c1168aab52710b63e650c9ef04571daf3  name:           wai-feature-flags-version:        0.1.0.1+version:        0.1.0.2 synopsis:       Feature flag support for WAI applications. description:    Please see the README at <https://github.com/jwoudenberg/wai-feature-flags>. category:       Web@@ -15,7 +15,7 @@ bug-reports:    https://github.com/jwoudenberg/wai-feature-flags/issues author:         Jasper Woudenberg maintainer:     mail@jasperwoudenberg.com-copyright:      2020 Jasper Woudenberg+copyright:      2021 Jasper Woudenberg license:        BSD3 license-file:   LICENSE build-type:     Simple@@ -37,10 +37,10 @@   hs-source-dirs:       src   build-depends:-      aeson >=1.2.4.0 && <1.6+      aeson >=1.2.4.0 && <2.1     , base >=4.10.1.0 && <5     , bytestring >=0.10.8.2 && <0.12-    , random >=1.1 && <1.3+    , splitmix >=0.0.3 && <0.2     , text >=1.2.3.0 && <1.3     , unordered-containers >=0.2.9.0 && <0.3     , wai >=3.2.2.1 && <3.3