packages feed

boots-app 0.1.0.3 → 0.1.0.5

raw patch · 6 files changed

+33/−22 lines, 6 filesdep ~salakdep ~salak-yamlPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: salak, salak-yaml

API changes (from Hackage documentation)

- Boots.Factory.Logger: instance GHC.Base.Monad m => Salak.Internal.Prop.FromProp m Control.Monad.Logger.LogLevel
- Boots.Factory.Salak: instance Boots.Factory.Salak.HasSalak Salak.Internal.Source.SourcePack
+ Boots.Factory.Application: getRand :: (IsString a, HasApp cxt env, MonadIO m) => AppT env m a
+ Boots.Factory.Logger: instance Salak.Internal.Prop.FromProp m Control.Monad.Logger.LogLevel
+ Boots.Factory.Salak: instance Boots.Factory.Salak.HasSalak Salak.Salak
- Boots.Factory.Application: buildRandom :: forall cxt env a m. (IsString a, MonadIO m, HasApp cxt env) => Proxy cxt -> Factory m env a
+ Boots.Factory.Application: buildRandom :: (IsString a, MonadIO m, HasApp cxt env) => Factory m env a
- Boots.Factory.Application: class HasApp cxt env
+ Boots.Factory.Application: class HasApp cxt env | env -> cxt
- Boots.Factory.Salak: askSalak :: MonadSalak m => m SourcePack
+ Boots.Factory.Salak: askSalak :: HasSalak env => Lens' env Salak
- Boots.Factory.Salak: askSourcePack :: HasSalak env => Lens' env SourcePack
+ Boots.Factory.Salak: askSourcePack :: MonadSalak m => m SourcePack
- Boots.Factory.Vault: class HasVault cxt env
+ Boots.Factory.Vault: class HasVault cxt env | env -> cxt

Files

boots-app.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: boots-app-version: 0.1.0.3+version: 0.1.0.5 license: MIT license-file: LICENSE copyright: 2019 Daniel YU@@ -30,6 +30,7 @@     default-extensions: FlexibleInstances MultiParamTypeClasses                         GeneralizedNewtypeDeriving OverloadedStrings RecordWildCards                         FlexibleContexts RankNTypes ScopedTypeVariables+                        FunctionalDependencies ConstraintKinds     ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures     build-depends:         base >=4.10 && <5,@@ -41,8 +42,8 @@         microlens >=0.4.10 && <0.5,         monad-logger >=0.3.30 && <0.4,         mtl >=2.2.2 && <2.3,-        salak >=0.3.3.1 && <0.4,-        salak-yaml >=0.3.3 && <0.4,+        salak >=0.3.3.2 && <0.4,+        salak-yaml >=0.3.3.2 && <0.4,         splitmix >=0.0.3 && <0.1,         text >=1.2.3.1 && <1.3,         unliftio-core >=0.1.2.0 && <0.2,@@ -65,6 +66,7 @@     default-extensions: FlexibleInstances MultiParamTypeClasses                         GeneralizedNewtypeDeriving OverloadedStrings RecordWildCards                         FlexibleContexts RankNTypes ScopedTypeVariables+                        FunctionalDependencies ConstraintKinds     ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures     build-depends:         base >=4.10 && <5,@@ -77,8 +79,8 @@         microlens >=0.4.10 && <0.5,         monad-logger >=0.3.30 && <0.4,         mtl >=2.2.2 && <2.3,-        salak >=0.3.3.1 && <0.4,-        salak-yaml >=0.3.3 && <0.4,+        salak >=0.3.3.2 && <0.4,+        salak-yaml >=0.3.3.2 && <0.4,         splitmix >=0.0.3 && <0.1,         text >=1.2.3.1 && <1.3,         unliftio-core >=0.1.2.0 && <0.2,
src/Boots.hs view
src/Boots/Factory/Application.hs view
@@ -4,15 +4,16 @@   , buildApp   , rand64   , buildRandom+  , getRand   ) where +import           Boots.App.Internal import           Boots.Factory import           Boots.Factory.Logger import           Boots.Factory.Salak import           Boots.Factory.Vault import           Control.Concurrent.MVar import           Data.Maybe-import           Data.Proxy import           Data.String import           Data.Text               (Text) import           Data.Version            (Version)@@ -23,14 +24,14 @@ import           Salak import           System.Random.SplitMix -class HasApp cxt env where+class HasApp cxt env | env -> cxt where   askApp :: Lens' env (AppEnv cxt)  instance HasApp cxt (AppEnv cxt) where   askApp = id  instance HasSalak (AppEnv cxt) where-  askSourcePack = lens configure (\x y -> x {configure = y})+  askSalak = lens configure (\x y -> x {configure = y})  instance HasLogger (AppEnv cxt) where   askLogger = lens logF (\x y -> x {logF = y})@@ -53,9 +54,9 @@   configure  <- buildSalak confName   within configure $ do     name       <- fromMaybe (fromString confName) <$> require "application.name"-    randSeed   <- offer $ liftIO $ initSMGen >>= newMVar-    instanceId <- offer $ liftIO $ hex64 <$> random64 randSeed-    vaultF     <- liftIO $ newVaultRef+    randSeed   <- liftIO $ initSMGen >>= newMVar+    instanceId <- liftIO $ hex32 <$> random64 randSeed+    vaultF     <- liftIO newVaultRef     logF       <- buildLogger vaultF (name <> "," <> instanceId)     return AppEnv{..} @@ -67,10 +68,18 @@ hex64 :: IsString a => Word64 -> a hex64 i = fromString $ let x = showHex i "" in replicate (16 - length x) '0' ++ x +hex32 :: IsString a => Word64 -> a+hex32 i = fromString $ let x = showHex i "" in drop 8 $ replicate (16 - length x) '0' ++ x+ rand64 :: (IsString a, MonadIO m) => MVar SMGen -> m a rand64 = liftIO . fmap hex64 . random64 -buildRandom :: forall cxt env a m. (IsString a, MonadIO m, HasApp cxt env) => Proxy cxt -> Factory m env a-buildRandom _ = do-  (AppEnv{..} :: AppEnv cxt) <- asks (view askApp)+getRand :: (IsString a, HasApp cxt env, MonadIO m) => AppT env m a+getRand = do+  AppEnv{..} <- asks (view askApp)+  lift $ rand64 randSeed++buildRandom :: (IsString a, MonadIO m, HasApp cxt env) => Factory m env a+buildRandom = do+  AppEnv{..} <- asks (view askApp)   offer $ rand64 randSeed
src/Boots/Factory/Logger.hs view
@@ -57,7 +57,7 @@ instance (MonadIO m, HasLogger env) => MonadLoggerIO (AppT env m) where   askLoggerIO = logfunc <$> asks (view askLogger) -instance Monad m => FromProp m LogLevel where+instance FromProp m LogLevel where   fromProp = readEnum (fromEnumProp.toLower)     where       fromEnumProp "debug" = Right   LevelDebug
src/Boots/Factory/Salak.hs view
@@ -13,16 +13,16 @@ import           Salak.Yaml  class HasSalak env where-  askSourcePack :: Lens' env SourcePack+  askSalak :: Lens' env Salak -instance HasSalak SourcePack where-  askSourcePack = id+instance HasSalak Salak where+  askSalak = id  instance (HasSalak env, Monad m) => MonadSalak (Factory m env) where-  askSalak = asks (view askSourcePack)+  askSourcePack = asks (view askSalak)  instance (HasSalak env, Monad m) => MonadSalak (AppT env m) where-  askSalak = asks (view askSourcePack)+  askSourcePack = asks (view askSalak)  buildSalak :: (MonadIO m, MonadCatch m) => String -> Factory m () Salak-buildSalak name = offer $ runSalakWithYaml name askSalak+buildSalak name = offer $ runSalakWithYaml name askSourcePack
src/Boots/Factory/Vault.hs view
@@ -12,7 +12,7 @@ newVaultRef :: IO (VaultRef env) newVaultRef = newMVar $ const id -class HasVault cxt env where+class HasVault cxt env | env -> cxt where   askVault :: Lens' env (VaultRef cxt)  instance HasVault cxt (VaultRef cxt) where