hpack 0.32.0 → 0.33.0
raw patch · 7 files changed
+25/−11 lines, 7 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +6/−0
- hpack.cabal +3/−3
- src/Data/Aeson/Config/Parser.hs +5/−1
- src/Hpack/Config.hs +1/−0
- src/Hpack/Syntax/BuildTools.hs +4/−3
- src/Hpack/Syntax/Dependencies.hs +2/−1
- src/Hpack/Syntax/DependencyVersion.hs +4/−3
CHANGELOG.md view
@@ -1,3 +1,9 @@+## Changes in 0.33.0+ - Support GHC 8.8.1: `fail` is no longer a part of `Monad`. Instead, it lives+ in the `MonadFail` class. Adapting our code to this change meant changing+ the types of exporting functions, unfortunately, hence the major version+ bump.+ ## Changes in 0.32.0 - Support Cabal 3.0 - Switch reexported-modules to comma-separated list
hpack.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.31.2.+-- This file has been generated from package.yaml by hpack version 0.32.0. -- -- see: https://github.com/sol/hpack ----- hash: c5457d3b30dfe5c53d197ff823ed96a5e37e8958aceebdad81606299b87f341d+-- hash: dc706425edd9fa60b9662cefde8da5d890fb9cf19c8f0f9e01733b763bfcd06a name: hpack-version: 0.32.0+version: 0.33.0 synopsis: A modern format for Haskell packages description: See README at <https://github.com/sol/hpack#readme> category: Development
src/Data/Aeson/Config/Parser.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE ViewPatterns #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-} module Data.Aeson.Config.Parser ( Parser , runParser@@ -31,6 +32,7 @@ import Control.Monad import Control.Applicative+import qualified Control.Monad.Fail as Fail import Control.Monad.Trans.Class import Control.Monad.Trans.Writer import Data.Monoid ((<>))@@ -44,7 +46,9 @@ import Data.Aeson.Types (Value(..), Object, Array) import qualified Data.Aeson.Types as Aeson import Data.Aeson.Internal (IResult(..), iparse)+#if !MIN_VERSION_aeson(1,4,5) import qualified Data.Aeson.Internal as Aeson+#endif -- This is needed so that we have an Ord instance for aeson < 1.2.4. data JSONPathElement = Key Text | Index Int@@ -61,7 +65,7 @@ Aeson.Index n -> Index n newtype Parser a = Parser {unParser :: WriterT (Set JSONPath) Aeson.Parser a}- deriving (Functor, Applicative, Alternative, Monad)+ deriving (Functor, Applicative, Alternative, Monad, Fail.MonadFail) liftParser :: Aeson.Parser a -> Parser a liftParser = Parser . lift
src/Hpack/Config.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-}+{-# LANGUAGE LiberalTypeSynonyms #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE CPP #-}
src/Hpack/Syntax/BuildTools.hs view
@@ -7,6 +7,7 @@ , SystemBuildTools(..) ) where +import qualified Control.Monad.Fail as Fail import Data.Text (Text) import qualified Data.Text as T import Data.Semigroup (Semigroup(..))@@ -53,7 +54,7 @@ buildToolFromString :: Text -> Parser (ParseBuildTool, DependencyVersion) buildToolFromString s = parseQualifiedBuildTool s <|> parseUnqualifiedBuildTool s - parseQualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)+ parseQualifiedBuildTool :: Fail.MonadFail m => Text -> m (ParseBuildTool, DependencyVersion) parseQualifiedBuildTool = fmap fromCabal . cabalParse "build tool" . T.unpack where fromCabal :: D.ExeDependency -> (ParseBuildTool, DependencyVersion)@@ -62,7 +63,7 @@ , DependencyVersion Nothing $ versionConstraintFromCabal version ) - parseUnqualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)+ parseUnqualifiedBuildTool :: Fail.MonadFail m => Text -> m (ParseBuildTool, DependencyVersion) parseUnqualifiedBuildTool = fmap (first UnqualifiedBuildTool) . parseDependency "build tool" newtype SystemBuildTools = SystemBuildTools {@@ -80,7 +81,7 @@ , parseName = T.unpack } - parseSystemBuildTool :: Monad m => Text -> m (String, VersionConstraint)+ parseSystemBuildTool :: Fail.MonadFail m => Text -> m (String, VersionConstraint) parseSystemBuildTool = fmap fromCabal . cabalParse "system build tool" . T.unpack where fromCabal :: D.LegacyExeDependency -> (String, VersionConstraint)
src/Hpack/Syntax/Dependencies.hs view
@@ -7,6 +7,7 @@ , parseDependency ) where +import qualified Control.Monad.Fail as Fail import Data.Text (Text) import qualified Data.Text as T import Data.Semigroup (Semigroup(..))@@ -59,7 +60,7 @@ dependencyInfo :: Value -> Parser DependencyInfo dependencyInfo = withDependencyVersion (DependencyInfo []) addMixins -parseDependency :: Monad m => String -> Text -> m (String, DependencyVersion)+parseDependency :: Fail.MonadFail m => String -> Text -> m (String, DependencyVersion) parseDependency subject = fmap fromCabal . cabalParse subject . T.unpack where fromCabal :: D.Dependency -> (String, DependencyVersion)
src/Hpack/Syntax/DependencyVersion.hs view
@@ -25,6 +25,7 @@ ) where import Control.Applicative+import qualified Control.Monad.Fail as Fail import Data.Maybe import Data.Scientific import Data.Text (Text)@@ -140,13 +141,13 @@ | otherwise = 0 e = base10Exponent n -parseVersionRange :: Monad m => String -> m VersionConstraint+parseVersionRange :: Fail.MonadFail m => String -> m VersionConstraint parseVersionRange = fmap versionConstraintFromCabal . parseCabalVersionRange -parseCabalVersionRange :: Monad m => String -> m D.VersionRange+parseCabalVersionRange :: Fail.MonadFail m => String -> m D.VersionRange parseCabalVersionRange = cabalParse "constraint" -cabalParse :: (Monad m, D.Parsec a) => String -> String -> m a+cabalParse :: (Fail.MonadFail m, D.Parsec a) => String -> String -> m a cabalParse subject s = case D.eitherParsec s of Right d -> return d Left _ ->fail $ unwords ["invalid", subject, show s]