packages feed

hpack-convert 0.14.5 → 0.14.6

raw patch · 10 files changed

+98/−25 lines, 10 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Hpack.Convert: processDir :: String -> String
+ Hpack.Convert: processDirs :: [String] -> [String]

Files

hpack-convert.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           hpack-convert-version:        0.14.5+version:        0.14.6 synopsis:       Convert Cabal manifests into hpack's package.yamls category:       Development homepage:       https://github.com/yamadapc/hpack-convert#readme@@ -33,8 +33,12 @@     ./test/data/cabal-init-with-conditionals-buildable5.cabal.yaml     ./test/data/cabal-init-with-conditionals.cabal     ./test/data/cabal-init-with-conditionals.cabal.yaml+    ./test/data/cabal-init-with-dot.cabal+    ./test/data/cabal-init-with-dot.cabal.yaml     ./test/data/cabal-init-with-executables.cabal     ./test/data/cabal-init-with-executables.cabal.yaml+    ./test/data/cabal-init-with-tested-with.cabal+    ./test/data/cabal-init-with-tested-with.cabal.yaml     ./test/data/cabal-init-with-tests.cabal     ./test/data/cabal-init-with-tests.cabal.yaml     ./test/data/ChangeLog.md
src/Hpack/Config.hs view
@@ -11,6 +11,8 @@ #endif {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE OverloadedLists #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE UndecidableInstances #-}
src/Hpack/Convert.hs view
@@ -1,22 +1,24 @@-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE NamedFieldPuns  #-}+{-# LANGUAGE RankNTypes      #-} {-# LANGUAGE RecordWildCards #-} module Hpack.Convert where -import           Prelude ()+import           Data.Char+import           Data.Monoid+import           Prelude                               () import           Prelude.Compat  import           Data.Maybe-import qualified Data.Version as Version-import qualified Distribution.Compiler as Compiler-import qualified Distribution.InstalledPackageInfo as Cabal-import qualified Distribution.Package as Cabal-import qualified Distribution.PackageDescription as Cabal+import qualified Data.Version                          as Version+import qualified Distribution.Compiler                 as Compiler+import qualified Distribution.InstalledPackageInfo     as Cabal+import qualified Distribution.Package                  as Cabal+import qualified Distribution.PackageDescription       as Cabal import qualified Distribution.PackageDescription.Parse as Cabal-import qualified Distribution.Text as Cabal-import qualified Distribution.Version as Cabal-import           Hpack.Config  hiding (package)-import           Text.PrettyPrint (fsep, (<+>))+import qualified Distribution.Text                     as Cabal+import qualified Distribution.Version                  as Cabal+import           Hpack.Config                          hiding (package)+import           Text.PrettyPrint                      (fsep, (<+>))  -- * Public API @@ -40,8 +42,9 @@             , packageLicense = Just (show (Cabal.disp license))             , packageLicenseFile = listToMaybe licenseFiles             , packageTestedWith =+                    map toUpper .                     show .-                    fsep . map (\(f, vr) -> Cabal.disp f <+> Cabal.disp vr ) <$>+                    fsep . map (\(f, vr) -> Cabal.disp f <> Cabal.disp vr ) <$>                     nullNothing testedWith             , packageFlags =                     map (\Cabal.MkFlag{..} ->@@ -85,7 +88,7 @@     -- (     Just SourceRepository { sourceRepositoryUrl = fromMaybe "" repoLocation                           -- TODO - this is broken (?)-                          , sourceRepositorySubdir = repoSubdir+                          , sourceRepositorySubdir = fmap processDir repoSubdir                           }     -- TODO - Warnings     -- , case repoLocation of@@ -191,7 +194,7 @@ sectionWithBuildInfo :: a -> Cabal.BuildInfo -> Section a sectionWithBuildInfo d Cabal.BuildInfo{..} =     Section { sectionData = d-            , sectionSourceDirs = hsSourceDirs+            , sectionSourceDirs = processDirs hsSourceDirs             , sectionDependencies = map fromDependency targetBuildDepends             , sectionDefaultExtensions = map (show . Cabal.disp)                                              defaultExtensions@@ -203,9 +206,9 @@             , sectionCppOptions = cppOptions             , sectionCCOptions = ccOptions             , sectionCSources = cSources-            , sectionExtraLibDirs = extraLibDirs+            , sectionExtraLibDirs = processDirs extraLibDirs             , sectionExtraLibraries = extraLibs-            , sectionIncludeDirs = includeDirs+            , sectionIncludeDirs = processDirs includeDirs             , sectionInstallIncludes = installIncludes             , sectionLdOptions = ldOptions             , sectionBuildable = Just buildable@@ -264,3 +267,13 @@ -- Just [1, 2, 3] nullNothing :: [a] -> Maybe [a] nullNothing s = const s <$> listToMaybe s++processDirs :: [String] -> [String]+processDirs = map processDir++-- | Replaces @.@ with @./.@+--+-- See https://github.com/sol/hpack/issues/119+processDir :: String -> String+processDir "." = "./."+processDir d = d
src/Hpack/Util.hs view
@@ -73,7 +73,7 @@ toModule path = case reverse path of   [] -> Nothing   x : xs -> do-    m <- stripSuffix ".hs" x <|> stripSuffix ".lhs" x+    m <- stripSuffix ".hs" x <|> stripSuffix ".lhs" x <|> stripSuffix ".hsc" x     let name = reverse (m : xs)     guard (isModule name) >> return (intercalate "." name)   where
test/Hpack/ConfigSpec.hs view
@@ -813,10 +813,8 @@           (do           touch "src/Main.hs"           touch "src/Foo.hs"-          touch "src/Bar.hs"-          touch "src/Baz.lhs"           )-          (map (executableOtherModules . sectionData) . packageExecutables >>> (`shouldBe` [["Bar", "Baz", "Foo"]]))+          (map (executableOtherModules . sectionData) . packageExecutables >>> (`shouldBe` [["Foo"]]))        it "allows to specify other-modules" $ do         withPackageConfig [i|@@ -993,7 +991,7 @@               foo:                 ain: driver/Main.hs             |]-          readPackageConfig file `shouldReturn` Left (file ++ ": Error in $.executables.foo: failed to parse field executables: The key \"main\" was not found")+          readPackageConfig file >>= (`shouldSatisfy` isLeft)        context "when package.yaml does not exist" $ do         it "returns an error" $ \dir -> do
test/Hpack/UtilSpec.hs view
@@ -37,8 +37,14 @@       parseMain "Foo.bar" `shouldBe` ("Foo.hs", ["-main-is Foo.bar"])    describe "toModule" $ do-    it "maps paths to module names" $ do-      toModule ["Foo", "Bar", "Baz.hs"] `shouldBe` Just "Foo.Bar.Baz"+    it "maps .hs paths to module names" $ do+      toModule ["Foo", "Bar", "Baz.hs"]  `shouldBe` Just "Foo.Bar.Baz"++    it "maps .lhs paths to module names" $ do+      toModule ["Foo", "Bar", "Baz.lhs"] `shouldBe` Just "Foo.Bar.Baz"++    it "maps .hsc paths to module names" $ do+      toModule ["Foo", "Bar", "Baz.hsc"] `shouldBe` Just "Foo.Bar.Baz"      it "rejects invalid module names" $ do       toModule ["resources", "hello.hs"] `shouldBe` Nothing
+ test/data/cabal-init-with-dot.cabal view
@@ -0,0 +1,13 @@+name:                cabal-init-minimal+version:             0.1.0.0+license:             PublicDomain+author:              Pedro Tacla Yamada+maintainer:          tacla.yamada@gmail.com+build-type:          Simple+extra-source-files:  ChangeLog.md+cabal-version:       >=1.10++library+  build-depends:       base >=4.8 && <4.9+  hs-source-dirs:      .+  default-language:    Haskell2010
+ test/data/cabal-init-with-dot.cabal.yaml view
@@ -0,0 +1,11 @@+name: cabal-init-minimal+version: '0.1.0.0'+author: Pedro Tacla Yamada+maintainer: tacla.yamada@gmail.com+license: PublicDomain+extra-source-files:+- ChangeLog.md+dependencies:+- base >=4.8 && <4.9+library:+  source-dirs: ./.
+ test/data/cabal-init-with-tested-with.cabal view
@@ -0,0 +1,14 @@+name:                cabal-init-minimal+version:             0.1.0.0+license:             PublicDomain+author:              Pedro Tacla Yamada+maintainer:          tacla.yamada@gmail.com+build-type:          Simple+extra-source-files:  ChangeLog.md+cabal-version:       >=1.10+tested-with:        GHC==8.0.1, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2++library+  build-depends:       base >=4.8 && <4.9+  hs-source-dirs:      src+  default-language:    Haskell2010
+ test/data/cabal-init-with-tested-with.cabal.yaml view
@@ -0,0 +1,12 @@+name: cabal-init-minimal+version: '0.1.0.0'+author: Pedro Tacla Yamada+maintainer: tacla.yamada@gmail.com+license: PublicDomain+tested-with: GHC==8.0.1 GHC==7.10.3 GHC==7.8.4 GHC==7.6.3 GHC==7.4.2+extra-source-files:+- ChangeLog.md+dependencies:+- base >=4.8 && <4.9+library:+  source-dirs: src