packages feed

hpack 0.34.3 → 0.34.4

raw patch · 7 files changed

+71/−38 lines, 7 filesdep ~CabalPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: Cabal

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+## Changes in 0.34.4+  - Render `default-extensions` / `other-extensions` line-separated+  - Compatibility with `Cabal-3.4.0.0`+ ## Changes in 0.34.3   - Ignore duplicate source directories (see #356)   - Do not infer duplicate modules (see  #408, #406, #353)
hpack.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.2.+-- This file has been generated from package.yaml by hpack version 0.34.3. -- -- see: https://github.com/sol/hpack  name:           hpack-version:        0.34.3+version:        0.34.4 synopsis:       A modern format for Haskell packages description:    See README at <https://github.com/sol/hpack#readme> category:       Development@@ -27,7 +27,7 @@       src   ghc-options: -Wall   build-depends:-      Cabal >=3.0.0.0+      Cabal >=3.0.0.0 && <3.6     , Glob >=0.9.0     , aeson >=1.4.3.0     , base >=4.9 && <5@@ -85,7 +85,7 @@       driver   ghc-options: -Wall   build-depends:-      Cabal >=3.0.0.0+      Cabal >=3.0.0.0 && <3.6     , Glob >=0.9.0     , aeson >=1.4.3.0     , base >=4.9 && <5@@ -121,7 +121,7 @@   ghc-options: -Wall   cpp-options: -DTEST   build-depends:-      Cabal >=3.0.0.0+      Cabal >=3.0.0.0 && <3.6     , Glob >=0.9.0     , HUnit >=1.6.0.0     , QuickCheck
src/Hpack/Render.hs view
@@ -400,10 +400,10 @@ renderBuildable = Field "buildable" . Literal . show  renderDefaultExtensions :: [String] -> Element-renderDefaultExtensions = Field "default-extensions" . WordList+renderDefaultExtensions = Field "default-extensions" . LineSeparatedList  renderOtherExtensions :: [String] -> Element-renderOtherExtensions = Field "other-extensions" . WordList+renderOtherExtensions = Field "other-extensions" . LineSeparatedList  renderPaths :: [Path] -> Value renderPaths = LineSeparatedList . map renderPath
src/Hpack/Syntax/Dependencies.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies #-}@@ -19,6 +20,12 @@ import qualified Data.Map.Lazy as Map import           GHC.Exts +#if MIN_VERSION_Cabal(3,4,0)+import qualified Distribution.Compat.NonEmptySet as DependencySet+#else+import qualified Data.Set as DependencySet+#endif+ import           Data.Aeson.Config.FromValue import           Data.Aeson.Config.Types @@ -67,7 +74,7 @@ parseDependency subject = fmap fromCabal . cabalParse subject . T.unpack   where     fromCabal :: D.Dependency -> (String, DependencyVersion)-    fromCabal d = (toName (D.depPkgName d) (toList $ D.depLibraries d), DependencyVersion Nothing . versionConstraintFromCabal $ D.depVerRange d)+    fromCabal d = (toName (D.depPkgName d) (DependencySet.toList $ D.depLibraries d), DependencyVersion Nothing . versionConstraintFromCabal $ D.depVerRange d)      toName :: D.PackageName -> [D.LibraryName] -> String     toName package components = prettyShow package <> case components of
src/Hpack/Syntax/DependencyVersion.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE LambdaCase #-}+{-# LANGUAGE ViewPatterns #-} module Hpack.Syntax.DependencyVersion (   githubBaseUrl , GitRef@@ -33,11 +34,11 @@ import qualified Data.HashMap.Strict as HashMap import           Text.PrettyPrint (renderStyle, Style(..), Mode(..)) -import           Distribution.Version (VersionRangeF(..)) import qualified Distribution.Version as D  import qualified Distribution.Parsec as D import qualified Distribution.Pretty as D+import qualified Distribution.Types.VersionRange.Internal as D  import           Data.Aeson.Config.FromValue @@ -147,32 +148,42 @@   Right d -> return d   Left _ ->fail $ unwords ["invalid",  subject, show s] +renderVersionRange :: D.VersionRange -> String+renderVersionRange = \ case+  D.IntersectVersionRanges (D.OrLaterVersion x) (D.EarlierVersion y) | differByOneInLeastPosition (x, y) -> "==" ++ render x ++ ".*"+  v -> render v+  where+    differByOneInLeastPosition = \ case+      (reverse . D.versionNumbers -> x : xs, reverse . D.versionNumbers -> y : ys) -> xs == ys && succ x == y+      _ -> False++render :: D.Pretty a => a -> String+render = renderStyle (Style OneLineMode 0 0) . D.pretty+ versionConstraintFromCabal :: D.VersionRange -> VersionConstraint versionConstraintFromCabal range   | D.isAnyVersion range = AnyVersion-  | otherwise = VersionRange . renderStyle style .-      D.pretty-      $ toPreCabal2VersionRange range+  | otherwise = VersionRange . renderVersionRange $ toPreCabal2VersionRange range   where-    style = Style OneLineMode 0 0-     toPreCabal2VersionRange :: D.VersionRange -> D.VersionRange     toPreCabal2VersionRange = D.embedVersionRange . D.cataVersionRange f       where-        f :: VersionRangeF (VersionRangeF D.VersionRange) -> VersionRangeF D.VersionRange+        f :: D.VersionRangeF (D.VersionRangeF D.VersionRange) -> D.VersionRangeF D.VersionRange         f = \ case-          MajorBoundVersionF v -> IntersectVersionRangesF (D.embedVersionRange lower) (D.embedVersionRange upper)+          D.MajorBoundVersionF v -> D.IntersectVersionRangesF (D.embedVersionRange lower) (D.embedVersionRange upper)             where-              lower = OrLaterVersionF v-              upper = EarlierVersionF (D.majorUpperBound v)+              lower = D.OrLaterVersionF v+              upper = D.EarlierVersionF (D.majorUpperBound v) -          AnyVersionF -> AnyVersionF-          ThisVersionF v -> ThisVersionF v-          LaterVersionF v -> LaterVersionF v-          OrLaterVersionF v -> OrLaterVersionF v-          EarlierVersionF v -> EarlierVersionF v-          OrEarlierVersionF v -> OrEarlierVersionF v-          WildcardVersionF v -> WildcardVersionF v-          UnionVersionRangesF a b -> UnionVersionRangesF (D.embedVersionRange a) (D.embedVersionRange b)-          IntersectVersionRangesF a b -> IntersectVersionRangesF (D.embedVersionRange a) (D.embedVersionRange b)-          VersionRangeParensF a -> VersionRangeParensF (D.embedVersionRange a)+          D.ThisVersionF v -> D.ThisVersionF v+          D.LaterVersionF v -> D.LaterVersionF v+          D.OrLaterVersionF v -> D.OrLaterVersionF v+          D.EarlierVersionF v -> D.EarlierVersionF v+          D.OrEarlierVersionF v -> D.OrEarlierVersionF v+          D.UnionVersionRangesF a b -> D.UnionVersionRangesF (D.embedVersionRange a) (D.embedVersionRange b)+          D.IntersectVersionRangesF a b -> D.IntersectVersionRangesF (D.embedVersionRange a) (D.embedVersionRange b)+#if !MIN_VERSION_Cabal(3,4,0)+          D.WildcardVersionF v -> D.WildcardVersionF v+          D.VersionRangeParensF a -> D.VersionRangeParensF (D.embedVersionRange a)+          D.AnyVersionF -> D.AnyVersionF+#endif
test/EndToEndSpec.hs view
@@ -95,7 +95,9 @@           default-extensions: [RebindableSyntax, OverloadedStrings]           library: {}           |] `shouldRenderTo` (library [i|-          default-extensions: RebindableSyntax OverloadedStrings+          default-extensions:+              RebindableSyntax+              OverloadedStrings           other-modules:               Paths_foo           |]) {packageCabalVersion = "2.2"}@@ -109,7 +111,9 @@               - condition: false                 other-modules: Paths_foo             |] `shouldRenderTo` (library [i|-            default-extensions: RebindableSyntax OverloadedStrings+            default-extensions:+                RebindableSyntax+                OverloadedStrings             |])      describe "spec-version" $ do@@ -279,7 +283,9 @@           ref: "2017"         library: {}         |] `shouldRenderTo` library_ [i|-        default-extensions: RecordWildCards DeriveFunctor+        default-extensions:+            RecordWildCards+            DeriveFunctor         |]        it "accepts library defaults" $ do@@ -309,7 +315,9 @@           - foo/bar@v2         library: {}         |] `shouldRenderTo` library_ [i|-        default-extensions: RecordWildCards DeriveFunctor+        default-extensions:+            RecordWildCards+            DeriveFunctor         |]        it "accepts defaults recursively" $ do@@ -319,7 +327,8 @@         defaults: foo/bar@v1         library: {}         |] `shouldRenderTo` library_ [i|-        default-extensions: DeriveFunctor+        default-extensions:+            DeriveFunctor         |]        it "fails on cyclic defaults" $ do@@ -390,7 +399,9 @@         |] `shouldRenderTo` library [i|         other-modules:             Paths_foo-        default-extensions: RecordWildCards DeriveFunctor+        default-extensions:+            RecordWildCards+            DeriveFunctor         |]      describe "version" $ do
test/Hpack/Syntax/DependenciesSpec.hs view
@@ -39,8 +39,8 @@          it "accepts dependencies with constraints" $ do           [yaml|-            hpack >= 2 && < 3-          |] `shouldDecodeTo_` Dependencies [("hpack", defaultInfo { dependencyInfoVersion = versionRange ">=2 && <3" })]+            hpack >= 2 && < 4+          |] `shouldDecodeTo_` Dependencies [("hpack", defaultInfo { dependencyInfoVersion = versionRange ">=2 && <4" })]          context "with invalid constraint" $ do           it "returns an error message" $ do@@ -56,8 +56,8 @@          it "accepts dependencies with constraints" $ do           [yaml|-            - hpack >= 2 && < 3-          |] `shouldDecodeTo_` Dependencies [("hpack", defaultInfo { dependencyInfoVersion = versionRange ">=2 && <3" })]+            - hpack >= 2 && < 4+          |] `shouldDecodeTo_` Dependencies [("hpack", defaultInfo { dependencyInfoVersion = versionRange ">=2 && <4" })]          it "accepts ^>=" $ do           [yaml|