record 0.3.2 → 0.3.2.1
raw patch · 3 files changed
+16/−106 lines, 3 filesdep ~base-preludedep ~directorydep ~doctestsetup-changed
Dependency ranges changed: base-prelude, directory, doctest, template-haskell-compat-v0208
Files
- Setup.hs +4/−40
- doctest/Main.hs +8/−61
- record.cabal +4/−5
Setup.hs view
@@ -1,42 +1,6 @@--- The code is mostly ripped from--- https://github.com/ekmett/lens/blob/697582fb9a980f273dbf8496253c5bbefedd0a8b/Setup.lhs-import Data.List ( nub )-import Data.Version ( showVersion )-import Distribution.Package ( PackageName(PackageName), Package, PackageId, InstalledPackageId, packageVersion, packageName )-import Distribution.PackageDescription ( PackageDescription(), TestSuite(..) )-import Distribution.Simple ( defaultMainWithHooks, UserHooks(..), simpleUserHooks )-import Distribution.Simple.Utils ( rewriteFile, createDirectoryIfMissingVerbose, copyFiles )-import Distribution.Simple.BuildPaths ( autogenModulesDir )-import Distribution.Simple.Setup ( BuildFlags(buildVerbosity), Flag(..), fromFlag, HaddockFlags(haddockDistPref))-import Distribution.Simple.LocalBuildInfo ( withLibLBI, withTestLBI, LocalBuildInfo(), ComponentLocalBuildInfo(componentPackageDeps) )-import Distribution.Text ( display )-import Distribution.Verbosity ( Verbosity, normal )-import System.FilePath ( (</>) )--main :: IO ()-main = defaultMainWithHooks simpleUserHooks- { buildHook = \pkg lbi hooks flags -> do- generateBuildModule (fromFlag (buildVerbosity flags)) pkg lbi- buildHook simpleUserHooks pkg lbi hooks flags- }--generateBuildModule :: Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()-generateBuildModule verbosity pkg lbi = do- let dir = autogenModulesDir lbi- createDirectoryIfMissingVerbose verbosity True dir- withLibLBI pkg lbi $ \_ libcfg -> do- withTestLBI pkg lbi $ \suite suitecfg -> do- rewriteFile (dir </> "Build_" ++ testName suite ++ ".hs") $ unlines- [ "module Build_" ++ testName suite ++ " where"- , "import Prelude"- , "deps :: [String]"- , "deps = " ++ (show $ formatdeps (testDeps libcfg suitecfg))- ]- where- formatdeps = map (formatone . snd)- formatone p = case packageName p of- PackageName n -> n ++ "-" ++ showVersion (packageVersion p)+module Main where -testDeps :: ComponentLocalBuildInfo -> ComponentLocalBuildInfo -> [(InstalledPackageId, PackageId)]-testDeps xs ys = nub $ componentPackageDeps xs ++ componentPackageDeps ys+import Distribution.Extra.Doctest ( defaultMainWithDoctests ) +main :: IO ()+main = defaultMainWithDoctests "doctest"
doctest/Main.hs view
@@ -1,66 +1,13 @@--- The code is mostly ripped from--- https://github.com/ekmett/lens/blob/d1d97469f0e93c1d3535308954a060e8a04e37aa/tests/doctests.hsc-import BasePrelude-import System.Directory-import System.FilePath+module Main where++import Prelude+import Build_doctests (flags, pkgs, module_sources)+import Data.Foldable (traverse_) import Test.DocTest-import Build_doctest (deps) main :: IO () main = do- sources <- getSources- doctest $ dfltParams ++ map ("-package="++) deps ++ sources- where- dfltParams = - [- "-isrc",- "-idist/build/autogen",- "-optP-include",- "-optPdist/build/autogen/cabal_macros.h",- "-XArrows",- "-XBangPatterns",- "-XConstraintKinds",- "-XDataKinds",- "-XDefaultSignatures",- "-XDeriveDataTypeable",- "-XDeriveFunctor",- "-XDeriveGeneric",- "-XEmptyDataDecls",- "-XFlexibleContexts",- "-XFlexibleInstances",- "-XFunctionalDependencies",- "-XGADTs",- "-XGeneralizedNewtypeDeriving",- "-XImpredicativeTypes",- "-XLambdaCase",- "-XLiberalTypeSynonyms",- "-XMultiParamTypeClasses",- "-XMultiWayIf",- "-XNoImplicitPrelude",- "-XNoMonomorphismRestriction",- "-XOverloadedStrings",- "-XPatternGuards",- "-XParallelListComp",- "-XQuasiQuotes",- "-XRankNTypes",- "-XRecordWildCards",- "-XScopedTypeVariables",- "-XStandaloneDeriving",- "-XTemplateHaskell",- "-XTupleSections",- "-XTypeFamilies",- "-XTypeOperators",- "-hide-all-packages"- ]--getSources :: IO [FilePath]-getSources = filter (isSuffixOf ".hs") <$> go "library"+ traverse_ putStrLn args+ doctest args where- go dir = do- (dirs, files) <- getFilesAndDirectories dir- (files ++) . concat <$> mapM go dirs--getFilesAndDirectories :: FilePath -> IO ([FilePath], [FilePath])-getFilesAndDirectories dir = do- c <- map (dir </>) . filter (`notElem` ["..", "."]) <$> getDirectoryContents dir- (,) <$> filterM doesDirectoryExist c <*> filterM doesFileExist c+ args = flags ++ pkgs ++ module_sources
record.cabal view
@@ -1,7 +1,7 @@ name: record version:- 0.3.2+ 0.3.2.1 synopsis: First class records implemented with quasi-quotation description:@@ -73,7 +73,7 @@ text >= 1 && < 2, -- template-haskell >= 2.8 && < 3,- template-haskell-compat-v0208 == 0.1.*,+ template-haskell-compat-v0208 >= 0.1.1.1 && < 0.2, -- transformers >= 0.2 && < 0.6, base-prelude >= 0.1 && < 2,@@ -98,10 +98,9 @@ if !flag(doctest) buildable: False build-depends:- doctest == 0.11.*,- directory == 1.2.*,+ doctest >= 0.13 && < 0.17,+ directory >= 1.2 && < 1.5, filepath >= 1.3 && < 1.5,- base-prelude, base