cartel 0.6.0.0 → 0.8.0.0
raw patch · 5 files changed
+106/−13 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Cartel.Ast: TestMainIs :: String -> TestSuiteField
+ Cartel.Ast: TestModule :: String -> TestSuiteField
+ Cartel.Defaults: flag :: Flag
- Cartel.Ast: Detailed :: String -> TestSuiteType
+ Cartel.Ast: Detailed :: TestSuiteType
- Cartel.Ast: ExitcodeStdio :: String -> TestSuiteType
+ Cartel.Ast: ExitcodeStdio :: TestSuiteType
Files
- cartel.cabal +2/−2
- genCabal.hs +1/−1
- lib/Cartel/Ast.hs +79/−8
- lib/Cartel/Defaults.hs +20/−0
- lib/Cartel/Render.hs +4/−2
cartel.cabal view
@@ -3,10 +3,10 @@ -- http://www.github.com/massysett/cartel -- -- Script name used to generate: genCabal.hs--- Generated on: 2014-05-28 20:46:01.203146 EDT+-- Generated on: 2014-05-29 21:17:51.6472 EDT -- Cartel library version: 0.6.0.0 name: cartel-version: 0.6.0.0+version: 0.8.0.0 cabal-version: >= 1.14 build-type: Simple license: BSD3
genCabal.hs view
@@ -49,7 +49,7 @@ properties :: A.Properties properties = A.properties { A.prName = "cartel"- , A.prVersion = A.Version [0,6,0,0]+ , A.prVersion = A.Version [0,8,0,0] , A.prCabalVersion = (1, 14) , A.prBuildType = A.Simple , A.prLicense = A.BSD3
lib/Cartel/Ast.hs view
@@ -12,8 +12,63 @@ -- -- <http://www.haskell.org/cabal/users-guide/developing-packages.html> -module Cartel.Ast where+module Cartel.Ast+ (+ -- * Constraint trees+ Logical(..)+ , Version(..)+ , Constraint(..)+ , ConstrTree(..) + -- * Global package description+ , BuildType(..)+ , License(..)+ , Compiler(..)+ , Properties(..)++ -- * Repositories+ , RepoKind(..)+ , Vcs(..)+ , Repository(..)++ -- * Flags+ , Flag(..)++ -- * Build information+ , Package(..)+ , Language(..)+ , BuildInfoField(..)++ -- * Conditionals+ , Condition(..)+ , CondTree(..)+ , CondBlock(..)++ -- * Field class+ , Field(..)++ -- * Libraries+ , LibraryField(..)+ , Library(..)++ -- * Executables+ , ExecutableField(..)+ , Executable(..)++ -- * Test suites+ , TestSuiteType(..)+ , TestSuiteField(..)+ , TestSuite(..)++ -- * Benchmarks+ , BenchmarkField(..)+ , Benchmark(..)++ -- * Cabal+ , Cabal(..)++ ) where+ -- | A version number. The Cabal documentation says this -- \"usually\" consists of a sequence of natural numbers separated -- by dots. Though this suggests that a version number could@@ -253,15 +308,14 @@ -- | What kind of test suite is this? data TestSuiteType- = ExitcodeStdio String+ = ExitcodeStdio -- ^ An @exitcode-stdio-1.0@ test. The @String@ is the name of- -- the file containing the executable code. This @String@ becomes- -- the @main-is@ is the resulting Cabal file.+ -- the file containing the executable code. In this case, the+ -- 'TestMainIs' field is required. - | Detailed String- -- ^ The @detailed-1.0@ test. The @String@ is the module- -- exporting the @tests@ symbol. The @String@ becomes the- -- @test-module@ field in the resulting Cabal file.+ | Detailed+ -- ^ The @detailed-1.0@ test. In this case, the 'TestModule'+ -- field is required. deriving (Eq, Ord, Show) -- | A single field value in a test suite section. A single test@@ -269,10 +323,26 @@ data TestSuiteField = TestType TestSuiteType -- ^ What kind of test this is++ | TestMainIs String+ -- ^ The name of the @.hs@ or @.lhs@ file containing the @Main@+ -- module. The @.hs@ filename must be listed, even if that file+ -- is generated with a preprocessor. The file must be relatie to+ -- one of the directories listed in 'HsSourceDirs'. This field+ -- is required when using 'ExitcodeStdio' and disallowed when+ -- using 'Detailed'.++ | TestModule String+ -- ^ The module exporting the @tests@ symbol. This field is+ -- required when using 'Detailed' and disallowed when using+ -- 'ExitcodeStdio'.+ | TestConditional (CondBlock TestSuiteField) -- ^ A test may contain zero or more conditional blocks.+ | TestInfo BuildInfoField -- ^ A test suite can contain build information fields.+ deriving (Eq, Ord, Show) instance Field TestSuiteField where@@ -525,6 +595,7 @@ } deriving (Eq, Ord, Show) +-- | Data for the entire Cabal file. data Cabal = Cabal { cProperties :: Properties , cRepositories :: [Repository]
lib/Cartel/Defaults.hs view
@@ -7,6 +7,11 @@ import qualified Cartel.Ast as A +-- | A default 'A.Properties'. 'A.prCabalVersion' is @(1, 14)@ to+-- specify Cabal version 1.14; 'A.prBuildType' is 'A.Simple', and+-- 'A.prLicense' is 'A.BSD3'. All other items are either the empty+-- 'String' or the empty list, including the 'A.prVersion', which is+-- left empty. properties :: A.Properties properties = A.Properties { A.prName = ""@@ -34,6 +39,8 @@ , A.prExtraTmpFiles = [] } +-- | A default 'A.Cabal'. 'properties' is used for 'A.cProperties',+-- and 'A.cLibrary' is 'Nothing'; all other lists are empty. cabal :: A.Cabal cabal = A.Cabal { A.cProperties = properties@@ -45,6 +52,10 @@ , A.cBenchmarks = [] } +-- | A default 'A.Repository'. You must supply the VCS type,+-- information about the kind of repository ('A.Head' or 'A.This'),+-- and the repository location. 'A.repoBranch' and 'A.repoSubdir'+-- are empty. repository :: A.Vcs -- ^ Type of VCS in use@@ -64,3 +75,12 @@ , A.repoSubdir = "" } +-- | A default 'A.Flag'. 'A.flName' and 'A.flDescription' are+-- empty; 'A.flDefault' is 'True', and 'A.flManual' is 'False'.+flag :: A.Flag+flag = A.Flag+ { A.flName = ""+ , A.flDescription = ""+ , A.flDefault = True+ , A.flManual = False+ }
lib/Cartel/Render.hs view
@@ -171,12 +171,14 @@ testSuiteType :: A.TestSuiteType -> String testSuiteType t = case t of- A.ExitcodeStdio _ -> "exitcode-stdio-1.0"- A.Detailed _ -> "detailed-1.0"+ A.ExitcodeStdio -> "exitcode-stdio-1.0"+ A.Detailed -> "detailed-1.0" instance Field A.TestSuiteField where field i t = case t of A.TestType a -> labeled i "type" (testSuiteType a)+ A.TestMainIs s -> labeled i "main-is" s+ A.TestModule s -> labeled i "test-module" s A.TestConditional b -> condBlock i b A.TestInfo b -> field i b