diff --git a/yesod/ChangeLog.md b/yesod/ChangeLog.md index 4929bf12..8915035f 100644 --- a/yesod/ChangeLog.md +++ b/yesod/ChangeLog.md @@ -1,5 +1,9 @@ # ChangeLog for yesod +## 1.6.2 + +* aeson 2 + ## 1.6.1.2 * Fix compatibility with template-haskell 2.17 [#1730](https://github.com/yesodweb/yesod/pull/1730) diff --git a/yesod/Yesod/Default/Config.hs b/yesod/Yesod/Default/Config.hs index 8cdbd3bc..65318c5a 100644 --- a/yesod/Yesod/Default/Config.hs +++ b/yesod/Yesod/Default/Config.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternGuards #-} module Yesod.Default.Config @@ -19,12 +20,17 @@ import Data.Text (Text) import qualified Data.Text as T import Data.Yaml import Data.Maybe (fromMaybe) -import qualified Data.HashMap.Strict as M import System.Environment (getArgs, getProgName, getEnvironment) import System.Exit (exitFailure) import Data.Streaming.Network (HostPreference) import Data.String (fromString) +#if MIN_VERSION_aeson(2, 0, 0) +import qualified Data.Aeson.KeyMap as M +#else +import qualified Data.HashMap.Strict as M +#endif + -- | A yesod-provided @'AppEnv'@, allows for Development, Testing, and -- Production environments data DefaultEnv = Development @@ -143,7 +149,7 @@ configSettings env0 = ConfigSettings Object obj -> return obj _ -> fail "Expected Object" let senv = show env - tenv = T.pack senv + tenv = fromString senv maybe (error $ "Could not find environment: " ++ senv) return @@ -237,5 +243,5 @@ withYamlEnvironment fp env f = do Left err -> fail $ "Invalid YAML file: " ++ show fp ++ " " ++ prettyPrintParseException err Right (Object obj) - | Just v <- M.lookup (T.pack $ show env) obj -> parseMonad f v + | Just v <- M.lookup (fromString $ show env) obj -> parseMonad f v _ -> fail $ "Could not find environment: " ++ show env diff --git a/yesod/Yesod/Default/Config2.hs b/yesod/Yesod/Default/Config2.hs index 08abe31b..5a2a8ed6 100644 --- a/yesod/Yesod/Default/Config2.hs +++ b/yesod/Yesod/Default/Config2.hs @@ -30,7 +30,6 @@ import Data.Yaml.Config import Data.Semigroup import Data.Aeson -import qualified Data.HashMap.Strict as H import System.Environment (getEnvironment) import Network.Wai (Application) import Network.Wai.Handler.Warp @@ -43,6 +42,12 @@ import Network.Wai.Logger (clockDateCacher) import Yesod.Core.Types (Logger (Logger)) import System.Log.FastLogger (LoggerSet) +#if MIN_VERSION_aeson(2, 0, 0) +import qualified Data.Aeson.KeyMap as H +#else +import qualified Data.HashMap.Strict as H +#endif + #ifndef mingw32_HOST_OS import System.Posix.Signals (installHandler, sigINT, Handler(Catch)) #endif diff --git a/yesod/yesod.cabal b/yesod/yesod.cabal index 4da584e1..46c6b239 100644 --- a/yesod/yesod.cabal +++ b/yesod/yesod.cabal @@ -1,5 +1,5 @@ name: yesod -version: 1.6.1.2 +version: 1.6.2 license: MIT license-file: LICENSE author: Michael Snoyman