packages feed

hpack 0.12.0 → 0.13.0

raw patch · 4 files changed

+78/−31 lines, 4 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Hpack.Config: [sectionCSources] :: Section a -> [FilePath]
+ Hpack.Config: [sectionExtraLibDirs] :: Section a -> [FilePath]
+ Hpack.Config: [sectionExtraLibraries] :: Section a -> [FilePath]
+ Hpack.Config: instance GHC.Generics.Selector Hpack.Config.S1_0_12CommonOptions
+ Hpack.Config: instance GHC.Generics.Selector Hpack.Config.S1_0_13CommonOptions
+ Hpack.Config: instance GHC.Generics.Selector Hpack.Config.S1_0_14CommonOptions
- Hpack.Config: Section :: a -> [FilePath] -> [Dependency] -> [String] -> [String] -> [GhcOption] -> [GhcProfOption] -> [CppOption] -> [FilePath] -> [FilePath] -> [LdOption] -> Maybe Bool -> [Conditional] -> Section a
+ Hpack.Config: Section :: a -> [FilePath] -> [Dependency] -> [String] -> [String] -> [GhcOption] -> [GhcProfOption] -> [CppOption] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [FilePath] -> [LdOption] -> Maybe Bool -> [Conditional] -> Section a

Files

hpack.cabal view
@@ -1,9 +1,9 @@--- This file has been generated from package.yaml by hpack version 0.11.2.+-- This file has been generated from package.yaml by hpack version 0.12.0. -- -- see: https://github.com/sol/hpack  name:           hpack-version:        0.12.0+version:        0.13.0 synopsis:       An alternative format for Haskell packages category:       Development homepage:       https://github.com/sol/hpack#readme
src/Hpack/Config.hs view
@@ -52,7 +52,7 @@ import           Data.String import           Data.Text (Text) import qualified Data.Text as T-import           GHC.Generics+import           GHC.Generics (Generic, Rep) import           Prelude () import           Prelude.Compat import           System.Directory@@ -91,7 +91,7 @@   ++ maybe [] sectionDependencies packageLibrary  section :: a -> Section a-section a = Section a [] [] [] [] [] [] [] [] [] [] Nothing []+section a = Section a [] [] [] [] [] [] [] [] [] [] [] [] [] Nothing []  packageConfig :: FilePath packageConfig = "package.yaml"@@ -181,6 +181,9 @@ , commonOptionsGhcOptions :: Maybe (List GhcOption) , commonOptionsGhcProfOptions :: Maybe (List GhcProfOption) , commonOptionsCppOptions :: Maybe (List CppOption)+, commonOptionsCSources :: Maybe (List FilePath)+, commonOptionsExtraLibDirs :: Maybe (List FilePath)+, commonOptionsExtraLibraries :: Maybe (List FilePath) , commonOptionsIncludeDirs :: Maybe (List FilePath) , commonOptionsInstallIncludes :: Maybe (List FilePath) , commonOptionsLdOptions :: Maybe (List LdOption)@@ -384,6 +387,9 @@ , sectionGhcOptions :: [GhcOption] , sectionGhcProfOptions :: [GhcProfOption] , sectionCppOptions :: [CppOption]+, sectionCSources :: [FilePath]+, sectionExtraLibDirs :: [FilePath]+, sectionExtraLibraries :: [FilePath] , sectionIncludeDirs :: [FilePath] , sectionInstallIncludes :: [FilePath] , sectionLdOptions :: [LdOption]@@ -591,37 +597,48 @@  mergeSections :: Section global -> Section a -> Section a mergeSections globalOptions options-  = Section a sourceDirs dependencies defaultExtensions otherExtensions ghcOptions ghcProfOptions cppOptions includeDirs installIncludes ldOptions buildable conditionals-  where-    a = sectionData options-    sourceDirs = sectionSourceDirs globalOptions ++ sectionSourceDirs options-    defaultExtensions = sectionDefaultExtensions globalOptions ++ sectionDefaultExtensions options-    otherExtensions = sectionOtherExtensions globalOptions ++ sectionOtherExtensions options-    ghcOptions = sectionGhcOptions globalOptions ++ sectionGhcOptions options-    ghcProfOptions = sectionGhcProfOptions globalOptions ++ sectionGhcProfOptions options-    cppOptions = sectionCppOptions globalOptions ++ sectionCppOptions options-    includeDirs = sectionIncludeDirs globalOptions ++ sectionIncludeDirs options-    installIncludes = sectionInstallIncludes globalOptions ++ sectionInstallIncludes options-    ldOptions = sectionLdOptions globalOptions ++ sectionLdOptions options-    buildable = sectionBuildable options <|> sectionBuildable globalOptions-    dependencies = sectionDependencies globalOptions ++ sectionDependencies options-    conditionals = sectionConditionals globalOptions ++ sectionConditionals options+  = Section {+    sectionData = sectionData options+  , sectionSourceDirs = sectionSourceDirs globalOptions ++ sectionSourceDirs options+  , sectionDefaultExtensions = sectionDefaultExtensions globalOptions ++ sectionDefaultExtensions options+  , sectionOtherExtensions = sectionOtherExtensions globalOptions ++ sectionOtherExtensions options+  , sectionGhcOptions = sectionGhcOptions globalOptions ++ sectionGhcOptions options+  , sectionGhcProfOptions = sectionGhcProfOptions globalOptions ++ sectionGhcProfOptions options+  , sectionCppOptions = sectionCppOptions globalOptions ++ sectionCppOptions options+  , sectionCSources = sectionCSources globalOptions ++ sectionCSources options+  , sectionExtraLibDirs = sectionExtraLibDirs globalOptions ++ sectionExtraLibDirs options+  , sectionExtraLibraries = sectionExtraLibraries globalOptions ++ sectionExtraLibraries options+  , sectionIncludeDirs = sectionIncludeDirs globalOptions ++ sectionIncludeDirs options+  , sectionInstallIncludes = sectionInstallIncludes globalOptions ++ sectionInstallIncludes options+  , sectionLdOptions = sectionLdOptions globalOptions ++ sectionLdOptions options+  , sectionBuildable = sectionBuildable options <|> sectionBuildable globalOptions+  , sectionDependencies = sectionDependencies globalOptions ++ sectionDependencies options+  , sectionConditionals = sectionConditionals globalOptions ++ sectionConditionals options+  }  toSection :: a -> CommonOptions -> ([FieldName], Section a) toSection a CommonOptions{..}-  = (concat unknownFields, Section a sourceDirs dependencies defaultExtensions otherExtensions ghcOptions ghcProfOptions cppOptions includeDirs installIncludes ldOptions buildable conditionals)+  = ( concat unknownFields +    , Section {+        sectionData = a+      , sectionSourceDirs = fromMaybeList commonOptionsSourceDirs+      , sectionDefaultExtensions = fromMaybeList commonOptionsDefaultExtensions+      , sectionOtherExtensions = fromMaybeList commonOptionsOtherExtensions+      , sectionGhcOptions = fromMaybeList commonOptionsGhcOptions+      , sectionGhcProfOptions = fromMaybeList commonOptionsGhcProfOptions+      , sectionCppOptions = fromMaybeList commonOptionsCppOptions+      , sectionCSources = fromMaybeList commonOptionsCSources+      , sectionExtraLibDirs = fromMaybeList commonOptionsExtraLibDirs+      , sectionExtraLibraries = fromMaybeList commonOptionsExtraLibraries+      , sectionIncludeDirs = fromMaybeList commonOptionsIncludeDirs+      , sectionInstallIncludes = fromMaybeList commonOptionsInstallIncludes+      , sectionLdOptions = fromMaybeList commonOptionsLdOptions+      , sectionBuildable = commonOptionsBuildable+      , sectionDependencies = fromMaybeList commonOptionsDependencies+      , sectionConditionals = conditionals+      }+    )   where-    sourceDirs = fromMaybeList commonOptionsSourceDirs-    defaultExtensions = fromMaybeList commonOptionsDefaultExtensions-    otherExtensions = fromMaybeList commonOptionsOtherExtensions-    ghcOptions = fromMaybeList commonOptionsGhcOptions-    ghcProfOptions = fromMaybeList commonOptionsGhcProfOptions-    cppOptions = fromMaybeList commonOptionsCppOptions-    includeDirs = fromMaybeList commonOptionsIncludeDirs-    installIncludes = fromMaybeList commonOptionsInstallIncludes-    ldOptions = fromMaybeList commonOptionsLdOptions-    buildable = commonOptionsBuildable-    dependencies = fromMaybeList commonOptionsDependencies     (unknownFields, conditionals) = unzip (map toConditional $ fromMaybeList commonOptionsWhen)  toConditional :: ConditionalSection -> ([FieldName], Conditional)
src/Hpack/Run.hs view
@@ -211,6 +211,9 @@   , renderCppOptions sectionCppOptions   , Field "include-dirs" (LineSeparatedList sectionIncludeDirs)   , Field "install-includes" (LineSeparatedList sectionInstallIncludes)+  , Field "c-sources" (LineSeparatedList sectionCSources)+  , Field "extra-lib-dirs" (LineSeparatedList sectionExtraLibDirs)+  , Field "extra-libraries" (LineSeparatedList sectionExtraLibraries)   , renderLdOptions sectionLdOptions   , renderDependencies sectionDependencies   ]
test/Hpack/ConfigSpec.hs view
@@ -108,6 +108,33 @@         captureUnknownFieldsValue <$> decodeEither input           `shouldBe` Right (section Empty){sectionInstallIncludes = ["foo.h", "bar.h"]} +      it "accepts c-sources" $ do+        let input = [i|+              c-sources:+                - foo.c+                - bar.c+              |]+        captureUnknownFieldsValue <$> decodeEither input+          `shouldBe` Right (section Empty){sectionCSources = ["foo.c", "bar.c"]}++      it "accepts extra-lib-dirs" $ do+        let input = [i|+              extra-lib-dirs:+                - foo+                - bar+              |]+        captureUnknownFieldsValue <$> decodeEither input+          `shouldBe` Right (section Empty){sectionExtraLibDirs = ["foo", "bar"]}++      it "accepts extra-libraries" $ do+        let input = [i|+              extra-libraries:+                - foo+                - bar+              |]+        captureUnknownFieldsValue <$> decodeEither input+          `shouldBe` Right (section Empty){sectionExtraLibraries = ["foo", "bar"]}+       context "when parsing conditionals" $ do         it "accepts conditionals" $ do           let input = [i|