packages feed

hw-polysemy 0.3.0.2 → 0.3.1.0

raw patch · 28 files changed

+109/−94 lines, 28 filesdep ~hw-preludePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: hw-prelude

API changes (from Hackage documentation)

Files

amazonka/HaskellWorks/Polysemy/Amazonka.hs view
@@ -154,9 +154,9 @@ interpretDataLogAwsLogEntryLocalToLogWith mapSeverity context =   interpretH \case     Log.DataLog logEntry -> do-      let cs = logEntry ^. the @"callStack"-      let severity = mapSeverity (logEntry ^. the @"logLevel")-      let text = LT.toStrict (LT.decodeUtf8 (B.toLazyByteString (logEntry ^. the @"builder")))+      let cs = logEntry.callStack+      let severity = mapSeverity logEntry.logLevel+      let text = LT.toStrict (LT.decodeUtf8 (B.toLazyByteString logEntry.builder))       liftT (logCs cs severity text)     Log.Local f ma ->       raise . interpretDataLogAwsLogEntryLocalToLogWith mapSeverity (f . context) =<< runT ma
amazonka/HaskellWorks/Polysemy/Amazonka/Errors.hs view
@@ -2,4 +2,4 @@     AwsError, ) where -import           HaskellWorks.Polysemy.Amazonka.Errors.All+import           HaskellWorks.Polysemy.Amazonka.Errors.AwsError
− amazonka/HaskellWorks/Polysemy/Amazonka/Errors/All.hs
@@ -1,5 +0,0 @@-module HaskellWorks.Polysemy.Amazonka.Errors.All (-    AwsError,-) where--import           HaskellWorks.Polysemy.Amazonka.Errors.AwsError
core/HaskellWorks/Polysemy/Cabal.hs view
@@ -72,14 +72,14 @@   planJsonFile <- getPlanJsonFile   contents <- LBS.readFile planJsonFile -  case eitherDecode contents of-    Right plan -> case L.filter matching (plan & installPlan) of-      (component:_) -> case component & binFile of+  case eitherDecode @Plan contents of+    Right plan -> case L.filter matching plan.installPlan of+      (component:_) -> case component.binFile of         Just bin -> return $ addExeSuffix (T.unpack bin)         Nothing  -> throw $ GenericError $ "Missing bin-file in " <> tshow component       [] -> throw $ GenericError $ "Cannot find exe " <> tshow pkg <> " in plan"     Left msg -> throw $ GenericError $ "Cannot decode plan: " <> T.pack msg   where matching :: Component -> Bool-        matching component = case componentName component of+        matching component = case component.componentName of           Just name -> name == "exe:" <> T.pack pkg           Nothing   -> False
core/HaskellWorks/Polysemy/Data/Aeson.hs view
@@ -9,7 +9,7 @@ import           Polysemy.Error  import           Data.Aeson                                        (FromJSON)-import           HaskellWorks.Polysemy.Error.Types.JsonDecodeError (JsonDecodeError (JsonDecodeError))+import           HaskellWorks.Polysemy.Error.Types.JsonDecodeError  aesonDecode :: forall a r. ()   => Member (Error JsonDecodeError) r@@ -18,4 +18,4 @@   -> Sem r a aesonDecode bs =   fromEither (Aeson.eitherDecode bs)-    & mapError JsonDecodeError+    & mapError newJsonDecodeError
core/HaskellWorks/Polysemy/Error.hs view
@@ -2,6 +2,7 @@   ( module HaskellWorks.Error,     trap,     trap_,+    runErrorMap,     embedRunExceptT,     embedThrowExceptT,   ) where@@ -29,6 +30,14 @@   -> Sem r a trap_ h =   trap (const h)++-- | Run an 'Error' effect and map the error value to a different type.+runErrorMap :: ()+  => (e -> d)+  -> Sem (Error e : r) a+  -> Sem r (Either d a)+runErrorMap f =+  fmap (first f) . runError  embedRunExceptT :: forall e a r m. ()   => Member (Embed m) r
core/HaskellWorks/Polysemy/Error/Types.hs view
@@ -1,9 +1,10 @@ module HaskellWorks.Polysemy.Error.Types   ( module HaskellWorks.Error.Types, -    JsonDecodeError(JsonDecodeError),-    YamlDecodeError(YamlDecodeError),+    JsonDecodeError(..),+    YamlDecodeError(..),   ) where  import           HaskellWorks.Error.Types-import           HaskellWorks.Polysemy.Error.Types.All+import           HaskellWorks.Polysemy.Error.Types.JsonDecodeError+import           HaskellWorks.Polysemy.Error.Types.YamlDecodeError
− core/HaskellWorks/Polysemy/Error/Types/All.hs
@@ -1,7 +0,0 @@-module HaskellWorks.Polysemy.Error.Types.All-  ( JsonDecodeError(..),-    YamlDecodeError(..),-  ) where--import           HaskellWorks.Polysemy.Error.Types.JsonDecodeError-import           HaskellWorks.Polysemy.Error.Types.YamlDecodeError
core/HaskellWorks/Polysemy/Error/Types/JsonDecodeError.hs view
@@ -1,14 +1,45 @@+{-# LANGUAGE DataKinds             #-} {-# LANGUAGE DeriveGeneric         #-} {-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NoFieldSelectors      #-}+{-# LANGUAGE OverloadedRecordDot   #-}  module HaskellWorks.Polysemy.Error.Types.JsonDecodeError   ( JsonDecodeError(..)+  , newJsonDecodeError   ) where ++import           Data.Aeson           (ToJSON (..), Value, (.=))+import qualified Data.Aeson           as J+import           GHC.Generics+ import           HaskellWorks.Prelude+import           HaskellWorks.ToText -newtype JsonDecodeError =+data JsonDecodeError =   JsonDecodeError-  { message :: String+  { message    :: Text+  , bytestring :: Maybe ByteString+  , text       :: Maybe Text+  , json       :: Maybe Value   }   deriving (Eq, Generic, Show)++newJsonDecodeError :: ToText a => a -> JsonDecodeError+newJsonDecodeError message =+  JsonDecodeError+    { message    = toText message+    , bytestring = Nothing+    , text       = Nothing+    , json       = Nothing+    }++instance ToJSON JsonDecodeError where+  toJSON e =+    J.object+        [ "error" .= id @Text "JsonDecodeError"+        , "message" .= e.message+        , "text" .= e.text+        , "json" .= e.json+        ]
core/HaskellWorks/Polysemy/Error/Types/YamlDecodeError.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DataKinds             #-} {-# LANGUAGE DeriveGeneric         #-} {-# LANGUAGE DuplicateRecordFields #-} @@ -5,10 +6,20 @@   ( YamlDecodeError(..)   ) where -import           HaskellWorks.Prelude +import           Data.Aeson           (ToJSON (..), (.=))+import qualified Data.Aeson           as J+import           GHC.Generics+import           HaskellWorks.Prelude newtype YamlDecodeError =   YamlDecodeError-  { message :: String+  { message :: Text   }   deriving (Eq, Generic, Show)++instance ToJSON YamlDecodeError where+  toJSON e =+        J.object+            [ "error" .= id @Text "YamlDecodeError"+            , "message" .= e.message+            ]
core/HaskellWorks/Polysemy/Except.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE GADTs           #-} {-# LANGUAGE TemplateHaskell #-}  -- | Description: The 'Except' effect, providing catch and throw functionality over the final
core/HaskellWorks/Polysemy/File.hs view
@@ -32,8 +32,7 @@   info $ "Reading JSON file: " <> T.pack filePath   contents <- LBS.readFile filePath   J.eitherDecode contents-    & onLeft (throw . JsonDecodeError)-+    & onLeft (throw . newJsonDecodeError)  -- | Read the 'filePath' file as YAML. readYamlFile :: forall a r. ()@@ -50,4 +49,4 @@   info $ "Reading YAML file: " <> T.pack filePath   contents <- LBS.toStrict <$> LBS.readFile filePath   Y.decodeEither' contents-    & onLeft (throw . YamlDecodeError . Y.prettyPrintParseException)+    & onLeft (throw . YamlDecodeError . T.pack . Y.prettyPrintParseException)
core/HaskellWorks/Polysemy/Log.hs view
@@ -1,11 +1,3 @@-{-# LANGUAGE DataKinds           #-}-{-# LANGUAGE FlexibleContexts    #-}-{-# LANGUAGE FlexibleInstances   #-}-{-# LANGUAGE GADTs               #-}-{-# LANGUAGE PolyKinds           #-}-{-# LANGUAGE RankNTypes          #-}-{-# LANGUAGE ScopedTypeVariables #-}- {- HLINT ignore "Use let" -}  module HaskellWorks.Polysemy.Log
hedgehog/HaskellWorks/Polysemy/Hedgehog/Assert.hs view
@@ -21,6 +21,7 @@     evalIO,     failure,     failMessage,+    failMessageText,     byDeadlineIO,     byDeadlineM,     byDurationIO,@@ -44,11 +45,9 @@   import qualified Control.Concurrent                             as IO-import           Control.Lens                                   ((^.)) import           Data.Aeson                                     (ToJSON, Value) import qualified Data.Aeson                                     as J import qualified Data.Aeson.Encode.Pretty                       as J-import           Data.Generics.Product.Any import qualified Data.List                                      as L import qualified Data.Text                                      as T import qualified Data.Text.Encoding                             as T@@ -123,6 +122,15 @@ failMessage cs =   withFrozenCallStack $ failWithCustom cs Nothing +failMessageText :: forall a r. ()+  => Member Hedgehog r+  => HasCallStack+  => GHC.CallStack+  -> Text+  -> Sem r a+failMessageText cs =+  failMessage cs . T.unpack+ leftFailM :: forall e a r. ()   => Member Hedgehog r   => Show e@@ -327,7 +335,7 @@ assertIsJsonFile_ fp = withFrozenCallStack $ do   void (readJsonFile @Value fp)     & trap @IOException (failMessage GHC.callStack . show)-    & trap @JsonDecodeError (\e -> failMessage GHC.callStack (e ^. the @"message"))+    & trap @JsonDecodeError (\e -> failMessageText GHC.callStack e.message)  -- | Assert the 'filePath' can be parsed as YAML. assertIsYamlFile :: forall r. ()@@ -340,8 +348,8 @@ assertIsYamlFile fp = withFrozenCallStack $ do   void (readYamlFile @Value fp)     & trap @IOException (failMessage GHC.callStack . show)-    & trap @JsonDecodeError (\e -> failMessage GHC.callStack (e ^. the @"message"))-    & trap @YamlDecodeError (\e -> failMessage GHC.callStack (e ^. the @"message"))+    & trap @JsonDecodeError (\e -> failMessageText GHC.callStack e.message)+    & trap @YamlDecodeError (\e -> failMessageText GHC.callStack e.message)  -- | Asserts that the given file exists. assertFileExists :: forall r. ()
hedgehog/HaskellWorks/Polysemy/Hedgehog/Effect/Hedgehog.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE GADTs           #-} {-# LANGUAGE TemplateHaskell #-}  module HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog
hedgehog/HaskellWorks/Polysemy/Hedgehog/Effect/Hedgehog/Internal.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE StandaloneDeriving         #-}- module HaskellWorks.Polysemy.Hedgehog.Effect.Hedgehog.Internal   ( MonadAssertion(..),     failWithCustom,
hedgehog/HaskellWorks/Polysemy/Hedgehog/Golden.hs view
@@ -1,5 +1,3 @@-{-# LANGUAGE MultiWayIf #-}- module HaskellWorks.Polysemy.Hedgehog.Golden   ( diffVsGoldenFile,     diffFileVsGoldenFile,
hedgehog/HaskellWorks/Polysemy/Hedgehog/Jot.hs view
@@ -1,7 +1,3 @@-{-# LANGUAGE BangPatterns        #-}-{-# LANGUAGE GADTs               #-}-{-# LANGUAGE ScopedTypeVariables #-}- module HaskellWorks.Polysemy.Hedgehog.Jot   ( jotShow,     jotShow_,
hedgehog/HaskellWorks/Polysemy/Hedgehog/Process.hs view
@@ -183,8 +183,8 @@   -> Sem r (ExitCode, String, String) -- ^ exit code, stdout, stderr exec execConfig bin arguments = withFrozenCallStack $ do   let cp = (proc bin arguments)-        { env = getLast $ execConfigEnv execConfig-        , cwd = getLast $ execConfigCwd execConfig+        { env = getLast execConfig.execConfigEnv+        , cwd = getLast execConfig.execConfigCwd         }   jot_ . ( "━━━━ command ━━━━\n" <>) $ bin <> " " <> L.unwords (argQuote <$> arguments)   readCreateProcessWithExitCode cp ""@@ -271,8 +271,8 @@ procFlex' execConfig pkg binaryEnv arguments = withFrozenCallStack $ do   bin <- binFlex pkg binaryEnv   return (proc bin arguments)-    { env = getLast $ execConfigEnv execConfig-    , cwd = getLast $ execConfigCwd execConfig+    { env = getLast execConfig.execConfigEnv+    , cwd = getLast execConfig.execConfigCwd     -- this allows sending signals to the created processes, without killing the test-suite process     , create_group = True     }
hedgehog/HaskellWorks/Polysemy/Hedgehog/Time.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE NumericUnderscores #-}-{-# LANGUAGE TypeApplications   #-}- module HaskellWorks.Polysemy.Hedgehog.Time (     genPOSIXTime, ) where
hedgehog/HaskellWorks/Polysemy/Hedgehog/Workspace/Types.hs view
@@ -1,5 +1,3 @@-{-# LANGUAGE DeriveGeneric #-}- module HaskellWorks.Polysemy.Hedgehog.Workspace.Types   ( PackagePath(..),     ProjectRoot(..),
hw-polysemy.cabal view
@@ -1,6 +1,6 @@ cabal-version:          3.4 name:                   hw-polysemy-version:                0.3.0.2+version:                0.3.1.0 synopsis:               Opinionated polysemy library description:            Opinionated polysemy library. license:                Apache-2.0@@ -35,7 +35,7 @@ common ghc-prim                   { build-depends: ghc-prim                                    < 0.12   } common hedgehog                   { build-depends: hedgehog                                    < 1.6    } common http-conduit               { build-depends: http-conduit               >= 2.3        && < 2.4    }-common hw-prelude                 { build-depends: hw-prelude                 >= 0.0.0.3    && < 0.1    }+common hw-prelude                 { build-depends: hw-prelude                 >= 0.0.1.0    && < 0.1    } common microlens                  { build-depends: microlens                                   < 5      } common lens                       { build-depends: lens                                        < 5.4    } common mtl                        { build-depends: mtl                                         < 2.4    }@@ -79,18 +79,35 @@   import:               polysemy,                         polysemy-plugin,   default-extensions:   BlockArguments+                        BangPatterns                         DataKinds                         DeriveGeneric+                        DerivingStrategies+                        DisambiguateRecordFields                         DuplicateRecordFields                         FlexibleContexts                         FlexibleInstances+                        GADTs+                        GeneralizedNewtypeDeriving                         LambdaCase+                        MultiWayIf+                        NamedFieldPuns+                        NoFieldSelectors                         NoImplicitPrelude+                        NumericUnderscores+                        OverloadedRecordDot                         OverloadedStrings+                        PatternSynonyms+                        PolyKinds                         RankNTypes+                        RecordWildCards                         ScopedTypeVariables+                        StandaloneDeriving+                        StrictData                         TypeApplications+                        TypeFamilies                         TypeOperators+                        TypeSynonymInstances   ghc-options:          -Wall                         -fplugin=Polysemy.Plugin   if flag(werror)@@ -146,7 +163,6 @@                         HaskellWorks.Polysemy.Data.ULID                         HaskellWorks.Polysemy.Error                         HaskellWorks.Polysemy.Error.Types-                        HaskellWorks.Polysemy.Error.Types.All                         HaskellWorks.Polysemy.Error.Types.JsonDecodeError                         HaskellWorks.Polysemy.Error.Types.YamlDecodeError                         HaskellWorks.Polysemy.Except@@ -233,7 +249,6 @@   visibility:           public   exposed-modules:      HaskellWorks.Polysemy.Amazonka                         HaskellWorks.Polysemy.Amazonka.Errors-                        HaskellWorks.Polysemy.Amazonka.Errors.All                         HaskellWorks.Polysemy.Amazonka.Errors.AwsError   hs-source-dirs:       amazonka   default-language:     Haskell2010
test/HaskellWorks/Polysemy/HedgehogSpec.hs view
@@ -1,7 +1,3 @@-{-# LANGUAGE DataKinds        #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE TypeApplications #-}- module HaskellWorks.Polysemy.HedgehogSpec   ( hprop_example_property,     hprop_example_test,
test/HaskellWorks/Polysemy/TestContainers/LocalStackSpec.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE GADTs             #-}-{-# LANGUAGE OverloadedStrings #-}- {- HLINT ignore "Use let" -}  module HaskellWorks.Polysemy.TestContainers.LocalStackSpec
test/Test/Polysemy/Env.hs view
@@ -1,12 +1,3 @@-{-# LANGUAGE DataKinds           #-}-{-# LANGUAGE FlexibleContexts    #-}-{-# LANGUAGE FlexibleInstances   #-}-{-# LANGUAGE GADTs               #-}-{-# LANGUAGE PolyKinds           #-}-{-# LANGUAGE RankNTypes          #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TypeOperators       #-}- {- HLINT ignore "Use let" -}  module Test.Polysemy.Env
testcontainers-localstack/HaskellWorks/Polysemy/Amazonka/LocalStack.hs view
@@ -8,7 +8,7 @@  import qualified Amazonka                                     as AWS import qualified Amazonka.Auth                                as AWS-import           Control.Lens                                 ((%~), (.~), (^.))+import           Control.Lens                                 ((%~), (.~)) import qualified Data.Aeson                                   as J import           Data.Generics.Product.Any import           HaskellWorks.Prelude@@ -38,7 +38,7 @@   awsEnv <- pure $     credEnv       & the @"logger" .~ logger'-      & the @"overrides" %~ (. AWS.setEndpoint False "localhost" (ep ^. the @"port"))+      & the @"overrides" %~ (. AWS.setEndpoint False "localhost" ep.port)    runReader awsEnv f 
testcontainers-localstack/HaskellWorks/TestContainers/LocalStack.hs view
@@ -1,7 +1,3 @@-{-# LANGUAGE GADTs              #-}-{-# LANGUAGE NumericUnderscores #-}-{-# LANGUAGE OverloadedStrings  #-}- {- HLINT ignore "Use camelCase" -}  module HaskellWorks.TestContainers.LocalStack (
testcontainers-localstack/HaskellWorks/TestContainers/LocalStack/Types.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE GADTs         #-}- module HaskellWorks.TestContainers.LocalStack.Types   ( LocalStackEndpoint(..)   ) where