packages feed

freckle-app 1.16.0.0 → 1.17.0.0

raw patch · 5 files changed

+36/−28 lines, 5 filesdep ~BlammoPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: Blammo

API changes (from Hackage documentation)

- Freckle.App: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.Logger.MonadLogger (Freckle.App.AppT app m)
- Freckle.App: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.Logger.MonadLoggerIO (Freckle.App.AppT app m)
- Freckle.App.Test: instance Blammo.Logging.Internal.Logger.HasLogger app => Test.Hspec.Core.Example.Example (Freckle.App.Test.AppExample app a)
- Freckle.App.Test: instance Control.Monad.Logger.MonadLogger (Freckle.App.Test.AppExample app)
+ Freckle.App: instance (Control.Monad.IO.Class.MonadIO m, Blammo.Logging.Internal.Logger.HasLogger app) => Control.Monad.Logger.MonadLogger (Freckle.App.AppT app m)
+ Freckle.App: instance (Control.Monad.IO.Class.MonadIO m, Blammo.Logging.Internal.Logger.HasLogger app) => Control.Monad.Logger.MonadLoggerIO (Freckle.App.AppT app m)
+ Freckle.App: instance Control.Monad.Trans.Class.MonadTrans (Freckle.App.AppT app)
+ Freckle.App.Test: instance Blammo.Logging.Internal.Logger.HasLogger app => Control.Monad.Logger.MonadLogger (Freckle.App.Test.AppExample app)
+ Freckle.App.Test: instance Blammo.Logging.Internal.Logger.HasLogger app => Control.Monad.Logger.MonadLoggerIO (Freckle.App.Test.AppExample app)
+ Freckle.App.Test: instance Test.Hspec.Core.Example.Example (Freckle.App.Test.AppExample app a)
- Freckle.App: AppT :: ReaderT app (LoggingT (ResourceT m)) a -> AppT app m a
+ Freckle.App: AppT :: ReaderT app (ResourceT m) a -> AppT app m a
- Freckle.App: [unAppT] :: AppT app m a -> ReaderT app (LoggingT (ResourceT m)) a
+ Freckle.App: [unAppT] :: AppT app m a -> ReaderT app (ResourceT m) a
- Freckle.App: runApp :: HasLogger app => (forall b. (app -> IO b) -> IO b) -> AppT app IO a -> IO a
+ Freckle.App: runApp :: (forall b. (app -> IO b) -> IO b) -> AppT app IO a -> IO a
- Freckle.App: runAppT :: (MonadUnliftIO m, HasLogger app) => AppT app m a -> app -> m a
+ Freckle.App: runAppT :: MonadUnliftIO m => AppT app m a -> app -> m a
- Freckle.App.Test: AppExample :: ReaderT app (LoggingT IO) a -> AppExample app a
+ Freckle.App.Test: AppExample :: ReaderT app IO a -> AppExample app a
- Freckle.App.Test: [unAppExample] :: AppExample app a -> ReaderT app (LoggingT IO) a
+ Freckle.App.Test: [unAppExample] :: AppExample app a -> ReaderT app IO a

Files

CHANGELOG.md view
@@ -1,4 +1,14 @@-## [_Unreleased_](https://github.com/freckle/freckle-app/compare/v1.16.0.0...main)+## [_Unreleased_](https://github.com/freckle/freckle-app/compare/v1.17.0.0...main)++## [v1.17.0.0](https://github.com/freckle/freckle-app/compare/v1.16.0.0...v1.17.0.0)++- Require Blammo 1.2+- Remove `LoggingT` from the definitions of `AppT` and `AppExample`+- Users are advised to use the new `withLogger` utility available as of Blammo 1.2+  to intialize an application's logger. In places other than the top level of an+  application, most uses of `runLoggerLoggingT` should be replaced with+  `runWithLogger` or `runAppT`.+- Add instance `MonadTrans AppT`  ## [v1.16.0.0](https://github.com/freckle/freckle-app/compare/v1.15.5.0...v1.16.0.0) 
freckle-app.cabal view
@@ -1,6 +1,6 @@ cabal-version:      1.18 name:               freckle-app-version:            1.16.0.0+version:            1.17.0.0 license:            MIT license-file:       LICENSE maintainer:         Freckle Education@@ -103,7 +103,7 @@         -Wno-prepositive-qualified-module -Wno-safe -Wno-unsafe      build-depends:-        Blammo >=1.1.2.0,+        Blammo >=1.2.0.0,         Glob >=0.10.2,         MonadRandom >=0.5.3,         QuickCheck >=2.14.3,@@ -266,7 +266,7 @@         -rtsopts -with-rtsopts=-N      build-depends:-        Blammo >=1.1.2.0,+        Blammo >=1.2.0.0,         QuickCheck >=2.14.3,         aeson >=2.0.3.0,         base >=4.16.4.0 && <5,
library/Freckle/App.hs view
@@ -122,12 +122,12 @@ -- > loadApp :: (App -> IO a) -> IO a -- > loadApp f = do -- >   appConfig{..} <- loadConfig--- >   appLogger <- newLogger configLoggerSettings--- >   appSqlPool <- runLoggerLoggingT appLogger $ makePostgresPool configDbPoolSize--- >   withTracerProvider $ \tracerProvider -> do--- >     withStatsClient configStatsSettings $ \appStatsClient -> do--- >       let appTracer = makeTracer tracerProvider "my-app" tracerOptions--- >       f App{..}+-- >   withLogger configLoggerSettings $ \appLogger ->+-- >     appSqlPool <- runWithLogger appLogger $ makePostgresPool configDbPoolSize+-- >     withTracerProvider $ \tracerProvider -> do+-- >       withStatsClient configStatsSettings $ \appStatsClient -> do+-- >         let appTracer = makeTracer tracerProvider "my-app" tracerOptions+-- >         f App{..} -- -- This unlocks @'runDB'@ for your application: --@@ -196,8 +196,7 @@ import System.IO (BufferMode (..), hSetBuffering, stderr, stdout)  runApp-  :: HasLogger app-  => (forall b. (app -> IO b) -> IO b)+  :: (forall b. (app -> IO b) -> IO b)   -> AppT app IO a   -> IO a runApp loadApp action = do@@ -214,7 +213,7 @@   hSetBuffering stderr LineBuffering  newtype AppT app m a = AppT-  { unAppT :: ReaderT app (LoggingT (ResourceT m)) a+  { unAppT :: ReaderT app (ResourceT m) a   }   deriving newtype     ( Functor@@ -225,21 +224,18 @@     , MonadThrow     , MonadCatch     , MonadMask-    , MonadLogger-    , MonadLoggerIO     , MonadResource     , MonadReader app     )+  deriving (MonadLogger, MonadLoggerIO) via WithLogger app (ResourceT m) +instance MonadTrans (AppT app) where+  lift = AppT . lift . lift+ instance PrimMonad m => PrimMonad (AppT app m) where   type PrimState (AppT app m) = PrimState m -  -- This should really just be `lift . primitive`, but:-  ---  -- - We'd need `MonadTrans (AppT app)`, which meh-  -- - We'd need an orphan `Primitive LoggingT`, which no thanks-  ---  primitive = AppT . lift . lift . lift . primitive+  primitive = lift . primitive   {-# INLINE primitive #-}  instance (MonadUnliftIO m, HasTracer app) => MonadHttp (AppT app m) where@@ -259,6 +255,6 @@   where   runSqlTx = runDB -runAppT :: (MonadUnliftIO m, HasLogger app) => AppT app m a -> app -> m a+runAppT :: MonadUnliftIO m => AppT app m a -> app -> m a runAppT action app =-  runResourceT $ runLoggerLoggingT app $ runReaderT (unAppT action) app+  runResourceT $ runReaderT (unAppT action) app
library/Freckle/App/Test.hs view
@@ -66,7 +66,7 @@ -- - Export @LOG_LEVEL=error@, if this would be quiet enough, or -- - Export @LOG_DESTINATION=@/dev/null@ to fully silence newtype AppExample app a = AppExample-  { unAppExample :: ReaderT app (LoggingT IO) a+  { unAppExample :: ReaderT app IO a   }   deriving newtype     ( Applicative@@ -79,9 +79,11 @@     , MonadUnliftIO     , MonadReader app     , MonadThrow-    , MonadLogger     , Fail.MonadFail     )+  deriving+    (MonadLogger, MonadLoggerIO)+    via WithLogger app IO  instance MonadMask (AppExample app) where   mask = UnliftIO.mask@@ -106,12 +108,12 @@   type PrimState (AppExample app) = PrimState IO   primitive = liftIO . primitive -instance HasLogger app => Example (AppExample app a) where+instance Example (AppExample app a) where   type Arg (AppExample app a) = app    evaluateExample (AppExample ex) params action =     evaluateExample-      (action $ \app -> void $ runLoggerLoggingT app $ runReaderT ex app)+      (action $ \app -> void $ runReaderT ex app)       params       ($ ()) 
package.yaml view
@@ -1,5 +1,5 @@ name: freckle-app-version: 1.16.0.0+version: 1.17.0.0 maintainer: Freckle Education category: Utils github: freckle/freckle-app