attoparsec-time 0.1.3.2 → 0.1.4
raw patch · 4 files changed
+49/−79 lines, 4 filesdep ~doctestsetup-changedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: doctest
API changes (from Hackage documentation)
Files
- Setup.hs +28/−37
- attoparsec-time.cabal +9/−7
- doctest/Main.hs +0/−35
- doctests/Main.hs +12/−0
Setup.hs view
@@ -1,42 +1,33 @@--- 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 ( (</>) )+{-# LANGUAGE CPP #-}+{-# OPTIONS_GHC -Wall #-}+module Main (main) where +#ifndef MIN_VERSION_cabal_doctest+#define MIN_VERSION_cabal_doctest(x,y,z) 0+#endif++#if MIN_VERSION_cabal_doctest(1,0,0)++import Distribution.Extra.Doctest ( defaultMainWithDoctests ) main :: IO ()-main = defaultMainWithHooks simpleUserHooks- { buildHook = \pkg lbi hooks flags -> do- generateBuildModule (fromFlag (buildVerbosity flags)) pkg lbi- buildHook simpleUserHooks pkg lbi hooks flags- }+main = defaultMainWithDoctests "doctests" -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)+#else -testDeps :: ComponentLocalBuildInfo -> ComponentLocalBuildInfo -> [(InstalledPackageId, PackageId)]-testDeps xs ys = nub $ componentPackageDeps xs ++ componentPackageDeps ys+#ifdef MIN_VERSION_Cabal+-- If the macro is defined, we have new cabal-install,+-- but for some reason we don't have cabal-doctest in package-db+--+-- Probably we are running cabal sdist, when otherwise using new-build+-- workflow+#warning You are configuring this package without cabal-doctest installed. \+ The doctests test-suite will not work as a result. \+ To fix this, install cabal-doctest before configuring.+#endif +import Distribution.Simple++main :: IO ()+main = defaultMain++#endif
attoparsec-time.cabal view
@@ -1,7 +1,7 @@ name: attoparsec-time version:- 0.1.3.2+ 0.1.4 synopsis: Attoparsec parsers of time description:@@ -25,7 +25,7 @@ build-type: Custom cabal-version:- >=1.10+ >= 1.24 source-repository head type:@@ -33,6 +33,10 @@ location: git://github.com/nikita-volkov/attoparsec-time.git +custom-setup+ setup-depends:+ base, Cabal, cabal-doctest >= 1.0.2 && < 1.1+ library hs-source-dirs: library@@ -57,23 +61,21 @@ base-prelude < 2, base >= 4.7 && < 5 -test-suite doctest+test-suite doctests type: exitcode-stdio-1.0 hs-source-dirs:- doctest+ doctests main-is: Main.hs ghc-options: -threaded "-with-rtsopts=-N" -funbox-strict-fields- default-extensions:- Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples default-language: Haskell2010 build-depends:- doctest == 0.11.*,+ doctest == 0.13.*, directory >= 1.2 && < 2, filepath >= 1.4 && < 2, base-prelude < 2,
− doctest/Main.hs
@@ -1,35 +0,0 @@--- The code is mostly ripped from--- https://github.com/ekmett/lens/blob/d1d97469f0e93c1d3535308954a060e8a04e37aa/tests/doctests.hsc-import BasePrelude-import System.Directory-import System.FilePath-import Test.DocTest-import Build_doctest (deps)--main :: IO ()-main = do- sources <- getSources- doctest $ defaultParams ++ map ("-package="++) deps ++ extensionParams ++ sources- where- defaultParams = - [- "-isrc",- "-idist/build/autogen",- "-optP-include",- "-optPdist/build/autogen/cabal_macros.h",- "-hide-all-packages"- ]- extensionParams =- ["-XArrows", "-XBangPatterns", "-XConstraintKinds", "-XDataKinds", "-XDefaultSignatures", "-XDeriveDataTypeable", "-XDeriveFoldable", "-XDeriveFunctor", "-XDeriveGeneric", "-XDeriveTraversable", "-XEmptyDataDecls", "-XFlexibleContexts", "-XFlexibleInstances", "-XFunctionalDependencies", "-XGADTs", "-XGeneralizedNewtypeDeriving", "-XLambdaCase", "-XLiberalTypeSynonyms", "-XMagicHash", "-XMultiParamTypeClasses", "-XMultiWayIf", "-XNoImplicitPrelude", "-XNoMonomorphismRestriction", "-XOverloadedStrings", "-XPatternGuards", "-XParallelListComp", "-XQuasiQuotes", "-XRankNTypes", "-XRecordWildCards", "-XScopedTypeVariables", "-XStandaloneDeriving", "-XTemplateHaskell", "-XTupleSections", "-XTypeFamilies", "-XTypeOperators", "-XUnboxedTuples"]--getSources :: IO [FilePath]-getSources = filter (isSuffixOf ".hs") <$> go "library"- 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
+ doctests/Main.hs view
@@ -0,0 +1,12 @@+module Main where++import Build_doctests (flags, pkgs, module_sources)+import Data.Foldable (traverse_)+import Test.DocTest++main :: IO ()+main = do+ traverse_ putStrLn args+ doctest args+ where+ args = flags ++ pkgs ++ module_sources