Ticket #592: cabal-test-bench-auto-build.dpatch

File cabal-test-bench-auto-build.dpatch, 53.0 KB (added by ttuegel, 13 months ago)

Patch changing behavior of cabal tool to run 'cabal build' before 'cabal test' and 'cabal bench'.

Line 
12 patches for repository /home/ttuegel/repos/cabal-head:
2
3Sat Apr 21 13:53:09 CDT 2012  Thomas Tuegel <ttuegel@gmail.com>
4  * Run 'cabal build' automatically whenever 'cabal test' is run.
5
6Sat Apr 21 13:57:19 CDT 2012  Thomas Tuegel <ttuegel@gmail.com>
7  * Automatically run 'cabal build' when 'cabal bench' is run.
8
9
10New patches:
11
12[Run 'cabal build' automatically whenever 'cabal test' is run.
13Thomas Tuegel <ttuegel@gmail.com>**20120421185309
14 Ignore-this: d45b6086eeb2e5757bc1a1088b6bff18
15] {
16hunk ./cabal-install/Distribution/Client/Setup.hs 30
17     , unpackCommand, UnpackFlags(..)
18     , initCommand, IT.InitFlags(..)
19     , sdistCommand, SDistFlags(..), SDistExFlags(..), ArchiveFormat(..)
20+    , testCommand
21 
22     , parsePackageArgs
23     --TODO: stop exporting these:
24hunk ./cabal-install/Distribution/Client/Setup.hs 53
25          ( defaultProgramConfiguration )
26 import Distribution.Simple.Command hiding (boolOpt)
27 import qualified Distribution.Simple.Setup as Cabal
28-         ( configureCommand, sdistCommand, haddockCommand )
29+         ( buildCommand, configureCommand, sdistCommand, haddockCommand
30+         , testCommand )
31 import Distribution.Simple.Setup
32hunk ./cabal-install/Distribution/Client/Setup.hs 56
33-         ( ConfigFlags(..), SDistFlags(..), HaddockFlags(..) )
34+         ( BuildFlags(..), ConfigFlags(..), SDistFlags(..), HaddockFlags(..)
35+         , TestFlags(..) )
36 import Distribution.Simple.Setup
37          ( Flag(..), toFlag, fromFlag, flagToMaybe, flagToList
38          , optionVerbosity, boolOpt, trueArg, falseArg )
39hunk ./cabal-install/Distribution/Client/Setup.hs 1113
40     where
41       combine field = field a `mappend` field b
42 
43+-- ------------------------------------------------------------
44+-- * Test Flags
45+-- ------------------------------------------------------------
46+
47+testCommand :: CommandUI (BuildFlags, TestFlags)
48+testCommand = Cabal.testCommand {
49+  commandDefaultFlags = (mempty, mempty),
50+  commandOptions      = \showOrParseArgs ->
51+       liftOptions get1 set1 (commandOptions buildCommand showOrParseArgs)
52+    ++ liftOptions get2 set2 (commandOptions Cabal.testCommand showOrParseArgs)
53+  }
54+  where
55+    get1 (a,_) = a; set1 a (_,b) = (a,b)
56+    get2 (_,b) = b; set2 b (a,_) = (a,b)
57+    buildCommand = Cabal.buildCommand defaultProgramConfiguration
58+
59 -- ------------------------------------------------------------
60 -- * GetOpt Utils
61 -- ------------------------------------------------------------
62hunk ./cabal-install/Main.hs 31
63          , ReportFlags(..), reportCommand
64          , InitFlags(initVerbosity), initCommand
65          , SDistFlags(..), SDistExFlags(..), sdistCommand
66+         , testCommand
67          , reportCommand
68          , unpackCommand, UnpackFlags(..) )
69 import Distribution.Simple.Setup
70hunk ./cabal-install/Main.hs 41
71          , CopyFlags(..), copyCommand
72          , RegisterFlags(..), registerCommand
73          , CleanFlags(..), cleanCommand
74-         , TestFlags(..), testCommand
75+         , TestFlags(..)
76          , BenchmarkFlags(..), benchmarkCommand
77          , Flag(..), fromFlag, fromFlagOrDefault, flagToMaybe )
78hunk ./cabal-install/Main.hs 44
79+import qualified Distribution.Simple.Setup as Cabal ( testCommand )
80 
81 import Distribution.Client.SetupWrapper
82          ( setupWrapper, SetupScriptOptions(..), defaultSetupScriptOptions )
83hunk ./cabal-install/Main.hs 143
84       ,reportCommand          `commandAddAction` reportAction
85       ,initCommand            `commandAddAction` initAction
86       ,configureExCommand     `commandAddAction` configureAction
87+      ,testCommand            `commandAddAction` testAction
88       ,wrapperAction (buildCommand defaultProgramConfiguration)
89                      buildVerbosity    buildDistPref
90       ,wrapperAction copyCommand
91hunk ./cabal-install/Main.hs 156
92                      hscolourVerbosity hscolourDistPref
93       ,wrapperAction registerCommand
94                      regVerbosity      regDistPref
95-      ,wrapperAction testCommand
96-                     testVerbosity     testDistPref
97       ,wrapperAction benchmarkCommand
98                      benchmarkVerbosity     benchmarkDistPref
99       ,upgradeCommand         `commandAddAction` upgradeAction
100hunk ./cabal-install/Main.hs 375
101             conf
102             initFlags
103 
104+testAction :: (BuildFlags, TestFlags) -> [String] -> GlobalFlags -> IO ()
105+testAction (buildFlags, testFlags) extraArgs _ = do
106+    let verbosity = fromFlagOrDefault normal (testVerbosity testFlags)
107+        setupScriptOptions = defaultSetupScriptOptions {
108+          useDistPref = fromFlagOrDefault
109+                          (useDistPref defaultSetupScriptOptions)
110+                          (testDistPref testFlags)
111+        }
112+    setupWrapper verbosity setupScriptOptions Nothing
113+                 (buildCommand defaultProgramConfiguration) (const buildFlags) extraArgs
114+    setupWrapper verbosity setupScriptOptions Nothing
115+                 Cabal.testCommand (const testFlags) extraArgs
116+
117 -- | See 'Distribution.Client.Install.withWin32SelfUpgrade' for details.
118 --
119 win32SelfUpgradeAction :: [String] -> IO ()
120}
121[Automatically run 'cabal build' when 'cabal bench' is run.
122Thomas Tuegel <ttuegel@gmail.com>**20120421185719
123 Ignore-this: 581573227937050027f7d766d6e2ca2
124] {
125hunk ./cabal-install/Distribution/Client/Setup.hs 30
126     , unpackCommand, UnpackFlags(..)
127     , initCommand, IT.InitFlags(..)
128     , sdistCommand, SDistFlags(..), SDistExFlags(..), ArchiveFormat(..)
129-    , testCommand
130+    , testCommand, benchmarkCommand
131 
132     , parsePackageArgs
133     --TODO: stop exporting these:
134hunk ./cabal-install/Distribution/Client/Setup.hs 53
135          ( defaultProgramConfiguration )
136 import Distribution.Simple.Command hiding (boolOpt)
137 import qualified Distribution.Simple.Setup as Cabal
138-         ( buildCommand, configureCommand, sdistCommand, haddockCommand
139-         , testCommand )
140+         ( benchmarkCommand, buildCommand, configureCommand, sdistCommand
141+         , haddockCommand, testCommand )
142 import Distribution.Simple.Setup
143hunk ./cabal-install/Distribution/Client/Setup.hs 56
144-         ( BuildFlags(..), ConfigFlags(..), SDistFlags(..), HaddockFlags(..)
145-         , TestFlags(..) )
146+         ( BenchmarkFlags(..), BuildFlags(..), ConfigFlags(..), SDistFlags(..)
147+         , HaddockFlags(..), TestFlags(..) )
148 import Distribution.Simple.Setup
149          ( Flag(..), toFlag, fromFlag, flagToMaybe, flagToList
150          , optionVerbosity, boolOpt, trueArg, falseArg )
151hunk ./cabal-install/Distribution/Client/Setup.hs 1129
152     get2 (_,b) = b; set2 b (a,_) = (a,b)
153     buildCommand = Cabal.buildCommand defaultProgramConfiguration
154 
155+-- ------------------------------------------------------------
156+-- * Benchmark Flags
157+-- ------------------------------------------------------------
158+
159+benchmarkCommand :: CommandUI (BuildFlags, BenchmarkFlags)
160+benchmarkCommand = Cabal.benchmarkCommand {
161+  commandDefaultFlags = (mempty, mempty),
162+  commandOptions      = \showOrParseArgs ->
163+       liftOptions get1 set1 (commandOptions buildCommand showOrParseArgs)
164+    ++ liftOptions get2 set2 (commandOptions Cabal.benchmarkCommand showOrParseArgs)
165+  }
166+  where
167+    get1 (a,_) = a; set1 a (_,b) = (a,b)
168+    get2 (_,b) = b; set2 b (a,_) = (a,b)
169+    buildCommand = Cabal.buildCommand defaultProgramConfiguration
170+
171 -- ------------------------------------------------------------
172 -- * GetOpt Utils
173 -- ------------------------------------------------------------
174hunk ./cabal-install/Main.hs 31
175          , ReportFlags(..), reportCommand
176          , InitFlags(initVerbosity), initCommand
177          , SDistFlags(..), SDistExFlags(..), sdistCommand
178-         , testCommand
179+         , testCommand, benchmarkCommand
180          , reportCommand
181          , unpackCommand, UnpackFlags(..) )
182 import Distribution.Simple.Setup
183hunk ./cabal-install/Main.hs 42
184          , RegisterFlags(..), registerCommand
185          , CleanFlags(..), cleanCommand
186          , TestFlags(..)
187-         , BenchmarkFlags(..), benchmarkCommand
188+         , BenchmarkFlags(..)
189          , Flag(..), fromFlag, fromFlagOrDefault, flagToMaybe )
190hunk ./cabal-install/Main.hs 44
191-import qualified Distribution.Simple.Setup as Cabal ( testCommand )
192+import qualified Distribution.Simple.Setup as Cabal
193+         ( benchmarkCommand, testCommand )
194 
195 import Distribution.Client.SetupWrapper
196          ( setupWrapper, SetupScriptOptions(..), defaultSetupScriptOptions )
197hunk ./cabal-install/Main.hs 145
198       ,initCommand            `commandAddAction` initAction
199       ,configureExCommand     `commandAddAction` configureAction
200       ,testCommand            `commandAddAction` testAction
201+      ,benchmarkCommand       `commandAddAction` benchmarkAction
202       ,wrapperAction (buildCommand defaultProgramConfiguration)
203                      buildVerbosity    buildDistPref
204       ,wrapperAction copyCommand
205hunk ./cabal-install/Main.hs 158
206                      hscolourVerbosity hscolourDistPref
207       ,wrapperAction registerCommand
208                      regVerbosity      regDistPref
209-      ,wrapperAction benchmarkCommand
210-                     benchmarkVerbosity     benchmarkDistPref
211       ,upgradeCommand         `commandAddAction` upgradeAction
212       ]
213 
214hunk ./cabal-install/Main.hs 388
215     setupWrapper verbosity setupScriptOptions Nothing
216                  Cabal.testCommand (const testFlags) extraArgs
217 
218+benchmarkAction :: (BuildFlags, BenchmarkFlags) -> [String] -> GlobalFlags -> IO ()
219+benchmarkAction (buildFlags, benchmarkFlags) extraArgs _ = do
220+    let verbosity = fromFlagOrDefault normal (benchmarkVerbosity benchmarkFlags)
221+        setupScriptOptions = defaultSetupScriptOptions {
222+          useDistPref = fromFlagOrDefault
223+                          (useDistPref defaultSetupScriptOptions)
224+                          (benchmarkDistPref benchmarkFlags)
225+        }
226+    setupWrapper verbosity setupScriptOptions Nothing
227+                 (buildCommand defaultProgramConfiguration) (const buildFlags) extraArgs
228+    setupWrapper verbosity setupScriptOptions Nothing
229+                 Cabal.benchmarkCommand (const benchmarkFlags) extraArgs
230+
231 -- | See 'Distribution.Client.Install.withWin32SelfUpgrade' for details.
232 --
233 win32SelfUpgradeAction :: [String] -> IO ()
234}
235
236Context:
237
238[version update in Cabal Makefile
239Andres Loeh <andres@well-typed.com>**20120418053859
240 Ignore-this: 955fcfc9f97a26d11b91b671639c73b2
241]
242[last-minute README changes
243Andres Loeh <andres@well-typed.com>**20120417151703
244 Ignore-this: 2ebed8c82fc6dfaf55af2dd59a38af24
245]
246[updated copyright year for Duncan
247Andres Loeh <andres@well-typed.com>**20120416171558
248 Ignore-this: b3745f5b7d78e94d872a0050ff0e5319
249]
250[updated changelog
251Andres Loeh <andres@well-typed.com>**20120416171256
252 Ignore-this: ce3af93be513c6ce0c1c9970745b34ac
253]
254[added deepseq to bootstrap.sh
255Andres Loeh <andres@well-typed.com>**20120416170448
256 Ignore-this: eb5f7ce79d96bbf6b30d9d1d16f5b2eb
257 
258 deepseq is a dependency of text, and not included with ghc-7.0.4.
259]
260[handling the solver options properly in config file
261Andres Loeh <andres@well-typed.com>**20120416123024
262 Ignore-this: e6238b7b2846d44dff996b0f03416d3e
263]
264[handling the "optimization" option properly in config file
265Andres Loeh <andres@well-typed.com>**20120416122903
266 Ignore-this: 53da3cf3f7bb5490286e960941704d4a
267]
268[Update cabal-install bootstrap.sh
269Tuncer Ayaz <tuncer.ayaz@gmail.com>**20120412212459
270 Ignore-this: ed0ac98d2b6a235bd4107acf194aa0a6
271]
272[treat packages that are unknown no longer as an "internal error" in modular solver
273Andres Loeh <andres@well-typed.com>**20120416070302
274 Ignore-this: f536450cab4370868edeedc154dc3ccb
275]
276[minor wording change when printing install plans
277Andres Loeh <andres@well-typed.com>**20120408171852
278 Ignore-this: ed5e00be940cb1c27c6b2de0fdff1da4
279]
280[no longer pre-filter broken packages for modular solver
281Andres Loeh <andres@well-typed.com>**20120408171423
282 Ignore-this: 89dca77a92ed810fa663d9d154b409c8
283 
284 The modular solver can now deal with broken packages in the
285 index. I have, however, discovered, that broken packages were
286 filtered before even passing the installed package index to
287 the solver. I have made that filtering conditional on using
288 the topdown solver for now.
289 
290 Related is the issue that we should not warn about possible
291 breakage of already broken packages. So we now exclude
292 already broken packages when considering whether an install
293 plan contains dangerous reinstalls.
294]
295[for empty install plans, print the packages that are installed
296Andres Loeh <andres@well-typed.com>**20120407092829
297 Ignore-this: 2e058d6fc4dfecc0425b4e8ba9223371
298 
299 This is a fix for #623.
300 
301 If we ask to install a package without --reinstall that's already
302 there, then we'll show the package and its version in the warning
303 message and suggest the use of the --reinstall flag.
304]
305[make the reinstall check less noisy
306Andres Loeh <andres@well-typed.com>**20120406172435
307 Ignore-this: 87e1722393d23b633c72501fab94d71f
308 
309 There are two aspects to this change.
310 
311 The uncontroversial one is that if the install plan contains
312 reinstalls, we now determine if there are reverse dependencies
313 of such reinstalled packages that we can see. If so, these
314 are likely to be broken. If we find such packages, we list
315 them and state that we can only install the plan if
316 --force-reinstalls is explicitly stated.
317 
318 The more controversial change is that if we cannot find such
319 reverse dependencies, we now merely print a warning but
320 continue, even though there are situations where executing
321 the build process can still break packages. The most likely
322 example of this is that we're installing to the global package
323 database, and user package databases on the system have
324 dependencies on the replaces packages -- but we cannot see
325 these user package databases.
326]
327[disable line-wrapping for solver debug output
328Andres Loeh <andres@well-typed.com>**20120406172403
329 Ignore-this: 339747737c9964abeb665d25c50dd206
330]
331[adding a solver flag for shadowing of installed packages
332Andres Loeh <andres@well-typed.com>**20120406103435
333 Ignore-this: 8126f62c6c2c69c0a2b0724cbaf9d585
334]
335[adding the possibility for index-disabled packages
336Andres Loeh <andres@well-typed.com>**20120405153315
337 Ignore-this: d339f6b52cf895507282e89a408de1c4
338 
339 In the modular solver, it's now possible to mark packages
340 as disabled in the index conversion phase. This can be used
341 to mark broken packages (with missing dependencies) in such
342 a way that they can still be seen by the solver and reported
343 in error messages.
344 
345 Furthermore, the feature could be used to implement
346 shadowing restrictions. Currently, there are some things
347 that can go wrong if multiple installed instances of
348 the same version and package exist on the system. However,
349 I've not enabled the use of shadowing for now, as it's
350 hard to match the restrictions exactly, and we can end up
351 excluding perfectly valid cases. Enabling shadowing
352 selectively by a solver flag would be an option.
353]
354[choose default solver based on compiler version
355Andres Loeh <andres@well-typed.com>**20120331134211
356 Ignore-this: 302cf0ca02aeca77b3c2ad675b557562
357 
358 GHC-6.12 has base-3 depending on base-4. This is a situation the
359 topdown solver is hacked to deal with, but the new modular solver
360 currently doesn't support it. We therefore switch back to the
361 topdown solver if a GHC version before 7 is detected, but switch
362 to the modular solver by default in all other situations.
363]
364[Added a comment
365Andres Loeh <andres@well-typed.com>**20120315181626
366 Ignore-this: 50c1ea721ec654c8759ea0f174be3a2f
367]
368[Use the new --package-db flag stuff in cabal-install
369Duncan Coutts <duncan@community.haskell.org>**20120329020752
370 Ignore-this: 922fc496afe50c3ab39101d12420fd97
371]
372[Extend the --package-db= feature to allow multiple dbs and start from empty
373Duncan Coutts <duncan@community.haskell.org>**20120329020720
374 Ignore-this: dcc425219ebc7cbb1e7fd361d248d93b
375 Previously only one --package-db flag was used (later ones overrode earlier).
376 Internally we can handle stacks of package dbs, now we expose that fully in
377 the user interface.
378  --global sets the initial db stack to [GlobalPackageDB]
379  --user sets the initial db stack to [GlobalPackageDB, UserPackageDB]
380  --package-db=clear clears the db stack to []
381  --package-db=global pushes GlobalPackageDB on the top of the stack
382  --package-db=user pushes UserPackageDB on the top of the stack
383  --package-db=${file} pushes SpecificPackageDB ${file} on the top of the stack
384 So --global and --user just affect the initial db stack, and this can be
385 extended by the --package-db flag, or reset using --package-db=clear.
386 
387 Note that although this lets users tell cabal to avoid using the global
388 package db, we cannot yet stop ghc from looking at the global package db.
389 See http://hackage.haskell.org/trac/ghc/ticket/5977
390 
391 Fixes feature request #437.
392]
393[head cabal-install requires head Cabal
394Duncan Coutts <duncan@community.haskell.org>**20120329014653
395 Ignore-this: 5193c3ce6957fc2fce47b0981d2232ba
396]
397[Add back deprecated ghcVerbosityOptions and ghcPackageDbOptions
398Duncan Coutts <duncan@community.haskell.org>**20120329010837
399 Ignore-this: 1a9a609654fbe32fcac5958ae34122b9
400]
401[Fix ticket #731
402Duncan Coutts <duncan@community.haskell.org>**20120328220556
403 Ignore-this: c43dc521130cceb91f0722e0b43ab0e9
404]
405[Check for the env var GHC_PACKAGE_PATH
406Duncan Coutts <duncan@community.haskell.org>**20120328214522
407 Ignore-this: 1007ec6206c782d16be5bc5c297c84b1
408 Based on the patch by Keegan McAllister <mcallister.keegan@gmail.com>
409 Fixes ticket #335
410]
411[Break up the component build code a bit
412Duncan Coutts <duncan@community.haskell.org>**20120327233203
413 Ignore-this: d017f92774140a5825218df2abf6c9a5
414 This will make it easier to allow building individual components
415]
416[Convert ghc option construction to use an options record
417Duncan Coutts <duncan@community.haskell.org>**20120327225205
418 Ignore-this: acc812662113673a9476fcfee6aa4239
419 Using a structured representation of the ghc options rather
420 than [String] makes it easier to share and reuse the code
421 for building sets of ghc options, which makes it easier to
422 add code for calling ghci.
423 
424 This is based on Sam Anklesaria's GSoC work on "cabal repl"
425]
426[Add brief description of PVP to cabal init generated .cabal files
427Duncan Coutts <duncan@community.haskell.org>**20110925051815
428 Ignore-this: febca1644219556fa1b823958bf37563
429]
430[Bump versions to 1.15 and 0.15
431Duncan Coutts <duncan@community.haskell.org>**20120329012952
432 Ignore-this: b281ea31cd85401b89636ac52f03a6d1
433 This is the head branch, the 1.14.x and 0.14.x are in the 1.14 branch.
434]
435[Add strip.exe to the list of programs we look for in GHC's mingw installation
436Ian Lynagh <igloo@earth.li>**20120318170938
437 Ignore-this: d89f0977272ea79d80c8d67f83c38c10
438 
439 In particular, this fixes the case where strip in your path is a Win32
440 strip, but you are using a Win64 GHC.
441]
442[Fix for #917: Generated Paths module broken with NoImplicitPrelude
443Duncan Coutts <duncan@community.haskell.org>**20120317202858
444 Ignore-this: d9663db5d6979bd862365a7b2067906f
445 import Prelude explicitly
446]
447[Tweak the tool-finder for mingw64
448Ian Lynagh <igloo@earth.li>**20120316233502
449 Ignore-this: 705a0296b1e7ffe8af62fdae1114b3d1
450]
451[init: guess at filling in deps in the build-depends: field
452Brent Yorgey <byorgey@cis.upenn.edu>**20111025050900
453 Ignore-this: 4adf589b96657d084c6fd72175d8ee05
454]
455[init: see whether source directory 'src' exists.
456Brent Yorgey <byorgey@cis.upenn.edu>**20111014202230
457 Ignore-this: 8008fc37fad5ebe45c1a62c5ce45264b
458]
459[init: improve prompt: enclose y/n in parens
460Brent Yorgey <byorgey@cis.upenn.edu>**20111014202210
461 Ignore-this: 4925b25ef425d774333856b83fc6eb6a
462]
463[init: improve prompt: 'homepage' field is not for repos.
464Brent Yorgey <byorgey@cis.upenn.edu>**20111014202134
465 Ignore-this: 432aabae368e371597a384d97f1dbc21
466]
467[bootstrap with --global should still respect $PREFIX
468Andres Loeh <andres@well-typed.com>**20120309083031
469 Ignore-this: 37e4b3b7bab5fa81d01cc26075eaed92
470 
471 Thanks to milkypostman for providing the patch. Closes ticket #926.
472]
473[Update cabal-install boostrap.sh package versions
474Tuncer Ayaz <tuncer.ayaz@gmail.com>**20120217201457
475 Ignore-this: dd38533c30efa49a29438216cb73bb2d
476]
477[Fix 'cabal configure --enable-{tests,benchmarks}'.
478Thomas Tuegel <ttuegel@gmail.com>**20120219005511
479 Ignore-this: 70d8481e4bbce0dcbd75af438dab0750
480 'cabal configure' was not adding optional stanza constraints when checking
481 dependencies, causing '--enable-{tests,benchmarks}' to be silently ignored.
482]
483[Relax containers dependency
484Ian Lynagh <igloo@earth.li>**20120222190918
485 Ignore-this: 8334d295f37a82a03076fbb6db3bd35a
486]
487[added missing error message
488Andres Loeh <andres@well-typed.com>**20120217072849
489 Ignore-this: d6771c1e4b8e9749595db25d82a92390
490 
491 Thanks to Thomas Tuegel for spotting this.
492]
493[Don't try to run test suites where none exist.
494Thomas Tuegel <ttuegel@gmail.com>**20120216184617
495 Ignore-this: 46bfa99cc4f731076254755b69378c1f
496]
497[Fixed non-exhaustive pattern matches with new InstallOutcome.
498Thomas Tuegel <ttuegel@gmail.com>**20120216181622
499 Ignore-this: 14fef6aed57bfa93dec3e8f6bcee3112
500]
501[Automatically run test suites when invoked with 'cabal install --enable-tests'. Do not install if tests fail.
502Thomas Tuegel <ttuegel@gmail.com>**20120204202258
503 Ignore-this: 5d3cdd405559fe2ed5393b80b6414555
504]
505[make test and bench available as user constraints
506Andres Loeh <andres@well-typed.com>**20120213081641
507 Ignore-this: 5394dc06ba70aa9e2f2316ab1f413a27
508 
509 Saying
510 
511   cabal install foo --enable-tests
512 
513 is now equivalent to saying
514 
515   cabal install foo --constraint="foo test"
516 
517 The constraint syntax in addition allows to enable tests and benchmarks
518 for packages that are further down in the dependency chain.
519]
520[let --reinstall imply --force-reinstalls for targets
521Andres Loeh <andres@well-typed.com>**20120212134322
522 Ignore-this: 451afd567040c56f1eaa17bb718c15ab
523]
524[stanza support in modular solver
525Andres Loeh <andres@well-typed.com>**20120212113524
526 Ignore-this: 9697a66807ddee3ea2de811458c2fa5a
527]
528[show optional stanzas when printing install plans
529Andres Loeh <andres@well-typed.com>**20120211155929
530 Ignore-this: b9d3b404ce7e58eb9368ee28670d31ae
531]
532[Added a missing case.
533Andres Loeh <andres@well-typed.com>**20120211154119
534 Ignore-this: 449e59fec67c986ea2804642bf02b8c3
535]
536[Enable tests and benchmarks in cabal-install without modifications to the Cabal library.
537Thomas Tuegel <ttuegel@gmail.com>**20120208065701
538 Ignore-this: 66273287bbae4fd47a8bc16734e4b305
539]
540[Don't build benchmarks, even if installing benchmark dependencies.
541Thomas Tuegel <ttuegel@gmail.com>**20120207194852
542 Ignore-this: 994177542d8d746f5e9035450059164e
543]
544[Update types in modular dependency solver to compile with new test/benchmark dependency constraints.
545Thomas Tuegel <ttuegel@gmail.com>**20120207194543
546 Ignore-this: ddfdb45064df125b176ade0ba19bbbbb
547]
548[Handle test and benchmark dependencies through the resolver properly.
549Thomas Tuegel <ttuegel@gmail.com>**20120207193958
550 Ignore-this: 99e675795396fc9f64741417f6d7afd5
551 
552 Previously, test and benchmark dependencies were handled by editing the
553 package description to include or exclude those stanzas before running
554 the dependency resolver. Test and benchmark dependencies could only be
555 installed for source packages because no package description is available
556 for named packages before dependency resolution.
557 
558 Now, test and benchmark stanzas are enabled or disabled through constraints
559 passed to the dependency resolver. This way, we can install dependencies for
560 the test suites of target packages without propagating '--enable-tests'
561 through the entire dependency tree; i.e., tests and benchmarks, when enabled,
562 are built only for target packages. Later, this will allow us to
563 automatically run test suites and, e.g., install only upon their success.
564]
565[updating dependencies in bootstrap.sh
566Andres Loeh <andres@well-typed.com>**20120110203053
567 Ignore-this: e48d474f85eb4fd8383c0e8ded858260
568 
569 Thanks to Tuncer Ayaz.
570]
571[fix compilation with ghc-7.4
572Andres Loeh <andres@well-typed.com>**20120110200356
573 Ignore-this: c949a5ef384fb9a47fd6c6c3d1b0010
574 
575 Thanks to Tuncer Ayaz.
576]
577[Update dependencies
578Ian Lynagh <igloo@earth.li>**20111212214606
579 Ignore-this: ccc7ed3096d33aae6115a671a0996867
580]
581[Bump version to 1.14.0
582Ian Lynagh <igloo@earth.li>**20111212214416
583 Ignore-this: 59dcc4f7ec38576350aa2d3d5e730394
584]
585[Added a comment.
586Andres Loeh <andres@well-typed.com>**20120109080907
587 Ignore-this: 6f16ea76d8c01423cdfb3cb1601bdf04
588]
589[removing trailing whitespace
590Andres Loeh <andres@well-typed.com>**20120101153235
591 Ignore-this: a5345cf959661ea4fca5d00d25f08129
592]
593[removing datatype contexts
594Andres Loeh <andres@well-typed.com>**20111216144355
595 Ignore-this: d64302ae49aaffb4e713eeecadad4689
596]
597[Now require mtl-2
598Duncan Coutts <duncan@community.haskell.org>**20111117001719
599 Ignore-this: fd7314e32766ab9a0aa84c2138d5e393
600]
601[Include testsuites and benchmarks in external deps when enabled
602Duncan Coutts <duncan@community.haskell.org>**20111116191455
603 Ignore-this: a6fd90e7645cbac6e5d9ad64b5991dad
604 In particular this should fix ticket #871 where the cabal_macros.h
605 is missing info for testsuite components.
606]
607[When running haddock, only pass package deps for the component only
608Duncan Coutts <duncan@community.haskell.org>**20111116191139
609 Ignore-this: a489d34257850af9b0b90718ed99fbcf
610 rather than for the union of all components in the package.
611]
612[Note in the README that you can install using the cabal program
613Duncan Coutts <duncan@community.haskell.org>**20111111133113
614 Ignore-this: cbd5b54d3d120ac354bbcaed2e323e59
615]
616[changed --override-reinstall-check to --force-reinstalls
617Andres Loeh <andres@well-typed.com>**20111107150713
618 Ignore-this: 8120844dc8479f7169cc8c0eb3e7bf97
619 
620 Also adapted the message for the failed check.
621]
622[do not print reinstall warning if --override-reinstall-check has been specified
623Andres Loeh <andres@well-typed.com>**20111107101501
624 Ignore-this: 79634b89056c38a0c87ea1409762c893
625]
626[slightly modify a debug message in the new solver
627Andres Loeh <andres@well-typed.com>**20111107101437
628 Ignore-this: eabc3949b3cb86235f3c2eb881ad25d8
629]
630[Fix fallout of Num / Show class changes in ghc-7.4
631Duncan Coutts <duncan@community.haskell.org>**20111104002510
632 Ignore-this: 2b646b5b5e73d692192576cab62f0565
633]
634[change solver default to TopDown for now
635Andres Loeh <andres@well-typed.com>**20111103205744
636 Ignore-this: 10c65a306dd53948eb025bbd8645ee11
637]
638[removing dead code
639Andres Loeh <andres@well-typed.com>**20111029141133
640 Ignore-this: b86c2a8dd2890059a069e54ef1a2be7
641]
642[goal choice heuristic in modular solver: choose base as early as possible
643Andres Loeh <andres@well-typed.com>**20111029140041
644 Ignore-this: 4a4113b878e041d901deed7e42837286
645]
646[bugfix: wrong flag choice was sometimes shown in goal reasons
647Andres Loeh <andres@well-typed.com>**20111029122324
648 Ignore-this: 6d0ea0605d767712e7d6116afd25269f
649]
650[when printing the install plan, show non-default flag assignments
651Andres Loeh <andres@well-typed.com>**20111029121515
652 Ignore-this: 4686e5efaf543c19b3435e3098609d8
653]
654[remove trailing whitespace
655Andres Loeh <andres@well-typed.com>**20111029112245
656 Ignore-this: be59e8a32bf881f1d34f35aae84b8fc
657]
658[proper fix for default solver option handling
659Andres Loeh <andres@well-typed.com>**20111028112358
660 Ignore-this: 5e5816f9eddb4cdb14196d65e3501b00
661 
662 Suggested by Duncan.
663]
664[removing wrong option handling fix
665Andres Loeh <andres@well-typed.com>**20111028111231
666 Ignore-this: a1cf3dedde8b6c535be11ae8dcac6fec
667]
668[fixed a strange options handling bug
669Andres Loeh <andres@well-typed.com>**20111028091727
670 Ignore-this: 6896824671481e929d7732b71d2a3d67
671]
672[revised solver flag configuration
673Andres Loeh <andres@well-typed.com>**20111028073729
674 Ignore-this: 5497056c8815bd43d287ce38a1ad3589
675]
676[make solver configurable via command-line flag
677Andres Loeh <andres@well-typed.com>**20111027212705
678 Ignore-this: d11264b74257f61720ab58fd1f04a50d
679]
680[reactivate (but not use) the top-down resolver
681Andres Loeh <andres@well-typed.com>**20111027190304
682 Ignore-this: 9741619c2052d21e8a7e28d2e941b6d5
683]
684[restore the index conversion utility function, but as a top-level function
685Andres Loeh <andres@well-typed.com>**20111027190152
686 Ignore-this: 26dcf713c8075fb58f895cc55db00e98
687]
688[collapse repeated flag choices
689Andres Loeh <andres@well-typed.com>**20111027161120
690 Ignore-this: 4b6f35c49675014002c4506eb7425fd
691 
692 In the build phase, we allow the same flag choice to occur multiple times.
693 This makes it easy to handle the situation where the same flag occurs
694 several times in the condition tree, and hence new goals and dependencies
695 might be introduced depending on the choice.
696 
697 Previously, we have ensured during validation that repeated flag choices
698 are consistent. This behaviour has now been replaced by the new approach
699 to collapse repeated flag choice nodes completely during validation.
700 
701 The advantage is that the tree is less deep, and that the trace output looks
702 less strange. Repeated flag choices are no longer seen, which I think avoids
703 confusion.
704]
705[fixing warnings
706Andres Loeh <andres@well-typed.com>**20111027160944
707 Ignore-this: 2f99859d1585045fb292c69b4431e76f
708]
709[adding a lookup function for PSQs
710Andres Loeh <andres@well-typed.com>**20111027160924
711 Ignore-this: b404d9055ba4237fc4410ff8c102eb65
712]
713[minor clarification in naming
714Andres Loeh <andres@well-typed.com>**20111027134534
715 Ignore-this: 2bd081c6adb7a8c5c888c8069696d1ae
716]
717[removing dead code for global flag enforcement
718Andres Loeh <andres@well-typed.com>**20111027133309
719 Ignore-this: 52be852bb715be5d83cf2e1db6169e8
720 
721 This is all covered by the function that enforces package constraints,
722 as global flag constraints are translated into package-specific flag
723 constraints outside of the solver.
724]
725[there may be more than one package constraint per package
726Andres Loeh <andres@well-typed.com>**20111027133108
727 Ignore-this: 44ba0feece724fce97f498d22bd56c93
728]
729[in parsing user constraints, require a space to separate the initial package name
730Andres Loeh <andres@well-typed.com>**20111027133021
731 Ignore-this: 335b77cc0e2ffadd1315a8ed42925d45
732]
733[add --override-reinstall-check option
734Jens Petersen <juhp@community.haskell.org>**20111026124024
735 Ignore-this: 176b70d8e72e4ce6b65ad21611426069
736 
737 This option flag overrides the new destructive reinstalls check,
738 allowing forcing overwriting already installed library versions.
739 The patch also documents this flag and other softer options
740 in the output of printPlanMessages, which is renamed to checkPrintPlan.
741]
742[treat ghc-prim like base as non-upgradeable in modular solver
743Andres Loeh <andres@well-typed.com>**20111025063820
744 Ignore-this: 68acee21bcc5df42f4295f61a93a367d
745]
746[merging changes from HEAD into modular-solver branch
747Andres Loeh <andres@well-typed.com>**20111025063632
748 Ignore-this: 35fb9a9d8736d4b2bca35e36004d24c4
749]
750[Added a check for destructive reinstalls.
751Andres Loeh <andres@well-typed.com>**20111021120831
752 Ignore-this: f343899c19a1b18156c8498cc1183d08
753 
754 Some refactoring in Distribution.Client.Install:
755 
756   * the linear representation of an install plan is now typed
757   * it can be checked for the presence of destructive reinstalls
758 
759 Currently, Cabal will stop if destructive reinstalls are encountered.
760 While this should become default behaviour, there has to be a flag
761 that overrides it.
762]
763[merging modular solver with main branch
764Andres Loeh <andres@well-typed.com>**20111021071736
765 Ignore-this: 57d24e3c979872682ee66abecbf808b2
766]
767[Added flag --independent-goals (not yet functioning correctly)
768Andres Loeh <andres@well-typed.com>**20110709083556
769 Ignore-this: d420a08623f173a3483b1f8382d7af27
770]
771[Fixing a few warnings.
772Andres Loeh <andres@well-typed.com>**20110708074744
773 Ignore-this: 395c2f791da6046c3e0b4ac73392f438
774]
775[make max backjumps configurable
776Andres Loeh <andres@well-typed.com>**20110707092854
777 Ignore-this: e57965fad997f248e5c811040b4c511b
778]
779[introduce backjump limit, and produce error messages
780Andres Loeh <andres@well-typed.com>**20110705141536
781 Ignore-this: dce6d6d474f71e46a20c6bfc6633ee46
782]
783[Generalized the type of traversals.
784Andres Loeh <andres@well-typed.com>**20110704184550
785 Ignore-this: f10a367f6c95b722f381afa4396adb9
786]
787[Added a Functor instance for search trees.
788Andres Loeh <andres@well-typed.com>**20110704184533
789 Ignore-this: f872a3349ccbe64de991106476586188
790]
791[Rewrite traversals using a new combinator.
792Andres Loeh <andres@well-typed.com>**20110704182930
793 Ignore-this: f989ec7fced87c9389fcd1a3e23b8896
794 
795 The hope is that sooner or later we can apply fusion.
796]
797[Refactoring: write traversals in a nicer way
798Andres Loeh <andres@well-typed.com>**20110704175631
799 Ignore-this: 7f9942f74e237b165c2be6c9c28431fe
800]
801[layout
802Andres Loeh <andres@well-typed.com>**20110704173553
803 Ignore-this: 12c8ab24e372068fdfbb2e9cc04a1590
804]
805[Added a --reorder-goals flag.
806Andres Loeh <andres@well-typed.com>**20110703143656
807 Ignore-this: c5a797b71d5050ac68ce4bb08b6f8bbd
808]
809[switch goal reordering off by default
810Andres Loeh <andres@well-typed.com>**20110703135217
811 Ignore-this: c7bc5a87f89c49793f9171cbb8aaac6a
812 
813 It surprised me somewhat, but goal reordering seems to slow things
814 down, even for backtracking packages. It was supposed to speed things
815 up, but it's possible that backjumping works so nicely that it more
816 than compensates for the effects. More systematic testing might be
817 needed.
818]
819[switch to less precise, more efficient goal reordering
820Andres Loeh <andres@well-typed.com>**20110703134359
821 Ignore-this: b9d1c7c8ce62480fb5885ef61c388677
822]
823[Refactoring: use toConflictSet
824Andres Loeh <andres@well-typed.com>**20110703132011
825 Ignore-this: e5c90d6c2dfe391d8becef3e6b667e00
826]
827[better conflict reporting
828Andres Loeh <andres@well-typed.com>**20110703131435
829 Ignore-this: f331ae416dc2606a903b7a563406a4c1
830]
831[Keep better track of goal reasons.
832Andres Loeh <andres@well-typed.com>**20110703101721
833 Ignore-this: d8b77e6b03fd089dd70095620ee49039
834]
835[typo
836Andres Loeh <andres@well-typed.com>**20110630121901
837 Ignore-this: 78cd22e1681dd9ddd9280acd764b0795
838]
839[Refactoring: moving goals to Dependency module
840Andres Loeh <andres@well-typed.com>**20110630121018
841 Ignore-this: 3f3e5a8debd4d6fd095f5f267a4710c7
842]
843[adding a command-line flag to avoid reinstalls
844Andres Loeh <andres@well-typed.com>**20110630101721
845 Ignore-this: e18974fd5c10e5b6e0a2450299b4f8a3
846]
847[make conflict sets slightly larger
848Andres Loeh <andres@well-typed.com>**20110621140618
849 Ignore-this: a17f29faddb8e955bd1c0c0a2ded71f7
850 
851 This is slower, however seems more correct. Larger conflict sets
852 typically mean fewer possibilities to cut the search space. On the
853 other hand, cutting too much risks incompleteness. At some later
854 stage, we might want to try hard to think about how/if conflict sets
855 could be reduced in size.
856]
857[more compact output for multiple subsequently rejected packages
858Andres Loeh <andres@well-typed.com>**20110621133231
859 Ignore-this: f2cdeac0e73501ac600ff6e29daf7605
860]
861[debug output for backjumping
862Andres Loeh <andres@well-typed.com>**20110621113210
863 Ignore-this: 6353021aec10f411abb2447534a151c9
864]
865[documentation for backjumping
866Andres Loeh <andres@well-typed.com>**20110621094547
867 Ignore-this: cf54c33b4bb632ad7dcc5429ae46189
868]
869[maintain chains of GoalReasons
870Andres Loeh <andres@well-typed.com>**20110621075136
871 Ignore-this: 3a1301ad75703a892e10b1796d7012ac
872 
873 Bugfix: conflict sets now contain the transitive closure of goal reasons,
874 which is required for completeness.
875 
876 We now finally have sufficient info to produce good error messages, too.
877 At a failure site, we can trace which parts of the tree are relevant to
878 the failure, via the correctly generated conflict sets.
879 
880]
881[refactoring: conflict sets are now sets instead of lists
882Andres Loeh <andres@well-typed.com>**20110620213330
883 Ignore-this: 5b428bd4bb4cce656fc05762bd10aa88
884]
885[implemented a version of backjumping
886Andres Loeh <andres@well-typed.com>**20110620171957
887 Ignore-this: e4125293151373f684be57d233b7f536
888]
889[annotate with goal reason throughout reordering phase
890Andres Loeh <andres@well-typed.com>**20110620150603
891 Ignore-this: d35069fa5f8da4bfdbb816e2e357675c
892]
893[no annotations needed in goal choices
894Andres Loeh <andres@well-typed.com>**20110620144923
895 Ignore-this: 6aa29a706003651994b6493a1520af1f
896]
897[refactoring: change the way tree annotations are handled
898Andres Loeh <andres@well-typed.com>**20110620143641
899 Ignore-this: 9ea74e5fed8b63b363d468f585efade2
900]
901[build conflict sets
902Andres Loeh <andres@well-typed.com>**20110620143443
903 Ignore-this: c648018f1a948f48bfd4780e1aab7cdd
904]
905[provide more info about conflicts
906Andres Loeh <andres@well-typed.com>**20110620130453
907 Ignore-this: d83f29eb56377129b40f6038cc6b1643
908]
909[proper constraint origins also for flag-introduced dependencies
910Andres Loeh <andres@well-typed.com>**20110620100852
911 Ignore-this: 6cc63c642dbb2fb01c58de558c98c7b9
912]
913[store origin info in constrained instances
914Andres Loeh <andres@well-typed.com>**20110620095808
915 Ignore-this: 59cf77a2c8009d3061dd9bbbff3e24b6
916]
917[Ignore self-dependencies (of executables on libraries).
918Andres Loeh <andres@well-typed.com>**20110620073104
919 Ignore-this: 843b67aba3b1d5d888d57445633c8161
920]
921[Reactivate output of changes for reinstalled pkgs in install plan
922Andres Loeh <andres@well-typed.com>**20110619163520
923 Ignore-this: 6058ad537ea93399ce1dadf677360943
924]
925[Bugfix: wrong flag name was used while adding new dependencies
926Andres Loeh <andres@well-typed.com>**20110619154841
927 Ignore-this: 6d5fb52890b518bd33f9bf0c5e274c72
928]
929[Bugfix: ignore broken packages.
930Andres Loeh <andres@well-typed.com>**20110616065422
931 Ignore-this: acba4e209ac0603c295f05153c0d1dd8
932]
933[produce a bit more compact debugging output
934Andres Loeh <andres@well-typed.com>**20110615114213
935 Ignore-this: d1f134808e33a47ccfe3d431eb3af44c
936]
937[fix package ordering bug
938Andres Loeh <andres@well-typed.com>**20110615073630
939 Ignore-this: 945f696c0467974e9463c4b8efb1d1d2
940]
941[change avoidReinstalls default, to match old Cabal solver
942Andres Loeh <andres@well-typed.com>**20110615072835
943 Ignore-this: cf1e95a0f3cf1d8ea2186dae35e35861
944]
945[integrate the modular solver into cabal-install repo
946Andres Loeh <andres@well-typed.com>**20110615070720
947 Ignore-this: c9dd7139bf2d29114991b2f23a9989f3
948]
949[New solver now respects preferences.
950Andres Loeh <andres@well-typed.com>**20110615070343
951 Ignore-this: 9442ddf244f28a0447560a54ffe3928b
952]
953[updated Cabal file
954Andres Loeh <andres@well-typed.com>**20110614213015
955 Ignore-this: a0a208a6c8d57efb50a6ef28b9b9f80c
956]
957[properly translate package constraints
958Andres Loeh <andres@well-typed.com>**20110614212736
959 Ignore-this: 518cb0e05af8e163235528c495d4ec4
960]
961[whitespace
962Andres Loeh <andres@well-typed.com>**20110614101908
963 Ignore-this: a6215083dd56f50cf21ff813d8d9a7b2
964]
965[modular resolver now standard
966Andres Loeh <andres@well-typed.com>**20110614101850
967 Ignore-this: fcf6d1d7443720e26f4ad5d9b8f944bb
968]
969[use InstalledPackageIndex throughout
970Andres Loeh <andres@well-typed.com>**20110614101525
971 Ignore-this: 6a86fd2d78b38815be8026314488c5db
972]
973[started the solver interface conversion
974Andres Loeh <andres@well-typed.com>**20110605125221
975 Ignore-this: 24e988891e3b3a91645763f1a54c3de1
976]
977[added a module for the interface to the new solver
978Andres Loeh <andres@well-typed.com>**20110605124213
979 Ignore-this: 1b43f04a29a8f4c88b94cb9d20fa0854
980]
981[integrated index conversion functions
982Andres Loeh <andres@well-typed.com>**20110605122430
983 Ignore-this: c6a3427e1e068b6bec8aba54c9e587e4
984]
985[added Progress instances
986Andres Loeh <andres@well-typed.com>**20110605112809
987 Ignore-this: 9ec44d6bceb4fd8310d2770843d818a6
988]
989[reordering
990Andres Loeh <andres@well-typed.com>**20110605110341
991 Ignore-this: bb889dea57cc8b9dbf63a8a3685d2433
992]
993[include the new solver in the dependency hierarchy
994Andres Loeh <andres@well-typed.com>**20110605110052
995 Ignore-this: 5d8dc387d44ffe7917d70d92bccf34ee
996]
997[moving PackagesPreferenceDefault
998Andres Loeh <andres@well-typed.com>**20110605110028
999 Ignore-this: a2e86dd13af1622856626a7f8cbb909c
1000]
1001[updated Cabal file to include modular solver modules
1002Andres Loeh <andres@well-typed.com>**20110605100942
1003 Ignore-this: 2a99b8c12681530e795cd16450877de6
1004]
1005[Bump major version to 1.13
1006Duncan Coutts <duncan@community.haskell.org>**20111026204346
1007 Ignore-this: 143bf697f22b7225757c9907b37d8fbb
1008 Since 1.12 got released with ghc-7.2.x
1009]
1010[Register 'bench' command with the CLI
1011Johan Tibell <johan.tibell@gmail.com>**20111026005309
1012 Ignore-this: 69168a6e951f5dcea6e9826704487d47
1013]
1014[Briefly document 'cabal test' and 'cabal bench'
1015Johan Tibell <johan.tibell@gmail.com>**20111026002738
1016 Ignore-this: ccfb88fa6bec02eef62cf2dee34807c2
1017]
1018[Small doc fix in Benchmarks section
1019Bas van Dijk <v.dijk.bas@gmail.com>**20111025184055
1020 Ignore-this: 5512c7f5d959335d73a8b9c427193d36
1021]
1022[typos in benchmarks documentation/help
1023Simon Meier <iridcode@gmail.com>**20111025183032
1024 Ignore-this: 3f6ecc518bce2d1d07380e35c1b7f160
1025]
1026[Describe benchmark sections in the user guide
1027Johan Tibell <johan.tibell@gmail.com>**20111019153233
1028 Ignore-this: 349a426ca769cfea19c5f784846e8a95
1029]
1030[Fix source repo subdir name after cabal->Cabal dir rename
1031Duncan Coutts <duncan@community.haskell.org>**20111023214425
1032 Ignore-this: e1e0327576da9bfc45056ef69c74e28a
1033]
1034[Add a source package index cache to speed up reading
1035Duncan Coutts <duncan@community.haskell.org>**20111023213253
1036 Ignore-this: d35c7eeaba12305fc9a5f1b1c146c902
1037 e.g. about 3x faster for cabal info pkgname
1038]
1039[Bump versions of Cabal and cabal-install
1040Duncan Coutts <duncan@community.haskell.org>**20111023213924
1041 Ignore-this: b298e60d9b5eada94f0f40edf942f031
1042 Latest cabal-install requires latest Cabal due to api addition
1043]
1044[Fail gracefully if 'cabal bench' is run before 'cabal build'
1045Johan Tibell <johan.tibell@gmail.com>**20111013232847
1046 Ignore-this: 9c73bb0b650fe4b06a5515bef7587cfd
1047]
1048[Add unit test for 'cabal bench' command-line flags
1049Johan Tibell <johan.tibell@gmail.com>**20111013232109
1050 Ignore-this: fc3e53a768c3c971a8f5e3a6e187ba2d
1051]
1052[Implement 'cabal bench' command
1053Johan Tibell <johan.tibell@gmail.com>**20111013225615
1054 Ignore-this: 34a2e6e5bdc13d16eaadc48a2efe2d75
1055 The only implement benchmark interface so far is exitcode-stdio-1.0,
1056 which forwards the output of the benchmark executable being run to the
1057 parent process' stdout/stderr.
1058]
1059[Add package checks for benchmarks
1060Johan Tibell <johan.tibell@gmail.com>**20111012201604
1061 Ignore-this: ce4094004ab81b6f60d69a30f6f16247
1062 Refactor duplicate names check to avoid having to manually write all
1063 O(n^2) possible collision cases between executables, test suites, and
1064 benchmarks.
1065]
1066[Uploading build reports shouldn't fail if there are no reports
1067Max Bolingbroke <batterseapower@hotmail.com>**20111016143819
1068 Ignore-this: 7423a9c3a67a581c04502912fc08f460
1069]
1070[Add a (substituted) flag to allow configuration of Haddock's --use-contents flag
1071Max Bolingbroke <batterseapower@hotmail.com>**20111016110852
1072 Ignore-this: 33d1cc9683e9e3e421c2ca54dc745de0
1073]
1074[Allow Haddock to be configured from the 'install' command
1075Max Bolingbroke <batterseapower@hotmail.com>**20111015170101
1076 Ignore-this: af173867f239b0259490445f27756ad9
1077]
1078[Rename the cabal directory to Cabal
1079Ian Lynagh <igloo@earth.li>**20111023151002
1080 Ignore-this: ff444b152bfc981496c6e2d2206a4953
1081 
1082 Makes things a little simpler in GHC's build system if libraries are in
1083 the same directory as their name.
1084]
1085[Change Safe Haskell package trust default to untrusted
1086David Terei <davidterei@gmail.com>**20111018033319
1087 Ignore-this: 2b7ea14f983abf92b8c7dca67b280d4a
1088]
1089[Install phase pulls in benchmark dependencies when necessary
1090Johan Tibell <johan.tibell@gmail.com>**20111012210035
1091 Ignore-this: 9b055441a6fec970fbb2aaa6f4cb4406
1092]
1093[Include benchmarks in product of 'setup sdist'
1094Johan Tibell <johan.tibell@gmail.com>**20111012205036
1095 Ignore-this: 216583b2d9ae5312aaf3da043bf45b6
1096]
1097[Add unit test for building benchmarks
1098Johan Tibell <johan.tibell@gmail.com>**20111012154138
1099 Ignore-this: b66404f7b8829e67223c0222cbc98b10
1100]
1101[Build executable benchmarks
1102Johan Tibell <johan.tibell@gmail.com>**20111012143034
1103 Ignore-this: 26ba0c0ab2476bef33c2e4c0b2e0c8d9
1104 Benchmarks are treated just like test suites in that a dummy
1105 Executable is created and built.
1106]
1107[Add unit test for benchmark section
1108Johan Tibell <johan.tibell@gmail.com>**20111011195847
1109 Ignore-this: 672f8848e5ce9cb2e321894506176b3e
1110]
1111[Implement 'configure' and preprocessing for benchmarks
1112Johan Tibell <johan.tibell@gmail.com>**20111011194838
1113 Ignore-this: 519cfe1fd6bb6ac0ccc4f10d2d037897
1114]
1115[Parse the --{enable,disable}-benchmarks command line flag
1116Johan Tibell <johan.tibell@gmail.com>**20111011192349
1117 Ignore-this: 268674c925d07184b6efc11a38d65d6f
1118]
1119[Parse 'benchmark' sections and handle configurations (flags) for benchmarks
1120Johan Tibell <johan.tibell@gmail.com>**20111011191515
1121 Ignore-this: e6b671538374a5db09b995ab1a233ce2
1122]
1123[Add a Benchmark data type for representing 'benchmark' sections
1124Johan Tibell <johan.tibell@gmail.com>**20111011175849
1125 Ignore-this: aba4698167e15db635302e577b871b1b
1126]
1127[Use the configured proxy even for uploading build reports
1128Max Bolingbroke <batterseapower@hotmail.com>**20110928210859
1129 Ignore-this: 189a21577bfe5a651850feda891955e2
1130]
1131[GHC 7.2+ no longer generates _stub.o files
1132Duncan Coutts <duncan@community.haskell.org>**20110910195329
1133 Ignore-this: e7b432affc79e4d7c418c03be7e55acc
1134 So stop looking for them. This could otherwise cause problems if one
1135 switches ghc version without cleaning the build dir since we'll pick
1136 up the old _stub.o files and end up with duplicate linker symbols.
1137]
1138[Use a PVP-style version as the default for cabal init
1139Duncan Coutts <duncan@community.haskell.org>**20110925021722
1140 Ignore-this: 58c054d082254c4bcf26cd4601317f2
1141]
1142[Filter autogenerated modules from test suite build info when doing sdist.
1143Thomas Tuegel <ttuegel@gmail.com>**20110923201806
1144 Ignore-this: 6f1eb9a1af8fad0442544d05d2568db9
1145]
1146[Change extension name to "ConstraintKinds"
1147Duncan Coutts <duncan@community.haskell.org>**20110908220819
1148 Ignore-this: a5faf4ded03ba1394278c810a8136bf2
1149 For consistency with the rest of the extensions. Requested by SPJ.
1150]
1151[Add the ConstraintKind extension
1152Max Bolingbroke <batterseapower@hotmail.com>**20110906094145
1153 Ignore-this: 838aa67afada51bc8f023a24531a0d0d
1154]
1155[Fix a typo in a QA message
1156Duncan Coutts <duncan@community.haskell.org>**20110905001515
1157 Ignore-this: e906b589e4acea1121ac193998696751
1158]
1159[Better error message for unknown build types
1160Duncan Coutts <duncan@community.haskell.org>**20110901114046
1161 Ignore-this: 91989561ff78edbe3d72b7d569db4561
1162]
1163[Consistent import of Text.PrettyPrint
1164David Terei <davidterei@gmail.com>**20110825180411
1165 Ignore-this: 785b7c0aaad8b997678c1e68b90502f8
1166]
1167[Drop assertion checking in the old solver
1168Duncan Coutts <duncan@community.haskell.org>**20110818172118
1169 Ignore-this: a516461e7f19e2aa2109fc905ac85
1170 Make it a bit faster.
1171]
1172[Update version constraint on the Cabal library, for 1.12 release.
1173Duncan Coutts <duncan@community.haskell.org>**20110818171955
1174 Ignore-this: 870a523382e1e0cec2b5cd033c778359
1175]
1176[Add cabal sdist --zip flag for creating zip archives
1177Duncan Coutts <duncan@community.haskell.org>**20110818171721
1178 Ignore-this: 86469c0f4f4b72d58b6278c3ef692901
1179 Handy if you want to send sources to people who do not grok .tar.gz
1180 Requires that the 'zip' program be installed (unlike for .tar.gz where
1181 we do it internally so that it works on all systems).
1182]
1183[Relax cabal-install's deps for ghc-7.2
1184Duncan Coutts <duncan@community.haskell.org>**20110812110846
1185 Ignore-this: 1524732bffa5cc04e5d475ec4c4f12d8
1186]
1187[Fix the repo location
1188Duncan Coutts <duncan@community.haskell.org>**20110812110820
1189 Ignore-this: 1ed9152864fc3336c82495904b1e5612
1190]
1191[Improve the error message emitted when multiple .cabal files are found
1192Duncan Coutts <duncan@community.haskell.org>**20110508223014
1193 Ignore-this: 1c96d4f42fe55094f07b0573bb80fda1
1194]
1195[Add Safe Haskell flags to known extensions
1196David Terei <davidterei@gmail.com>**20110810201543
1197 Ignore-this: 9e0a42de1539e1a56d72f9a7ecdf554c
1198]
1199[Change trusted property to be true by default
1200David Terei <davidterei@gmail.com>**20110808223228
1201 Ignore-this: c46cf169c46b809cf457678f77e02b20
1202]
1203[Fix for intra-package build-tools dependencies
1204Duncan Coutts <duncan@community.haskell.org>**20110808165045
1205 Ignore-this: 83f148981c7d8d3c616027975ee8f59a
1206]
1207[Simplify some code in Program.Hpc slightly
1208Duncan Coutts <duncan@community.haskell.org>**20110726001531
1209 Ignore-this: d7ea77d1f072f7071fc709e0c9a38ded
1210]
1211[Added Distribution.Simple.Program.Hpc.
1212Thomas Tuegel <ttuegel@gmail.com>**20110719004251
1213 Ignore-this: a988f4262e4f52c8ae0a3ca5715a636e
1214]
1215[Restore graceful failure upon invoking "cabal test" before "cabal build".
1216Thomas Tuegel <ttuegel@gmail.com>**20110719002218
1217 Ignore-this: 2096a4cfad17eb67ef26bb15a8b3a066
1218]
1219[Fix executable test suite unit test for improved HPC interface.
1220Thomas Tuegel <ttuegel@gmail.com>**20110718033150
1221 Ignore-this: b543b01721940b23aac7bd46282425b1
1222]
1223[Generate aggregate coverage statistics from all test suites in package.
1224Thomas Tuegel <ttuegel@gmail.com>**20110718050448
1225 Ignore-this: bff5f3167ab61da015b8fcb7c4f77cdc
1226]
1227[Invoke HPC using D.S.Program utilities.
1228Thomas Tuegel <ttuegel@gmail.com>**20110718045949
1229 Ignore-this: 37e1f01f594dd522c5328b397ac0e94d
1230 This patch also reorganizes the HPC output directories for consistency. All
1231 files related to HPC are now located in the "dist/hpc" directory.
1232]
1233[Fix cabal haddock for packages with internal dependencies
1234Duncan Coutts <duncan@community.haskell.org>**20110718235728
1235 Ignore-this: 86cdab6325a86875e9ae592881b4f54f
1236]
1237[Update cabal sdist to follow the changes in the Cabal lib
1238Duncan Coutts <duncan@community.haskell.org>**20110717223648
1239 Ignore-this: 1136aa98cb024a10250ea75ec8633a2c
1240]
1241[Added unit test for test options.
1242Thomas Tuegel <ttuegel@gmail.com>**20110521164529
1243 Ignore-this: 3dc94c06cdfacf20cf000682370fbf3
1244]
1245[Fixed crash on Windows due to file handle leak.
1246Thomas Tuegel <ttuegel@gmail.com>**20110518030422
1247 Ignore-this: c94eb903aef9ffcf52394a821d245dda
1248 Ticket #843. Cabal test crashed when trying to delete a temporary log file
1249 because 'readFile' reads unnecessarily lazily and was keeping a file handle
1250 open during attempted deletion. This patch forces the entire file to be read
1251 so the handle will be closed.
1252]
1253[Stop cabal-install from duplicating test options.
1254Thomas Tuegel <ttuegel@gmail.com>**20110521232047
1255 Ignore-this: 55b98ab47306178e355cacedc7a5a6d2
1256]
1257[Fix use of multiple test options.
1258Thomas Tuegel <ttuegel@gmail.com>**20110521223029
1259 Ignore-this: c694ad21faab23abb7157ccec700ccf2
1260]
1261[Don't prefix test output with ">>>".
1262Thomas Tuegel <ttuegel@gmail.com>**20110708035007
1263 Ignore-this: a9d417eb836c641339a0203d1c36e82e
1264 Ticket #848. Removing the prefix brings "cabal test" in line with other cabal
1265 commands, which do not prefix their output, either. Prior to this patch, the
1266 summary notices which appear before and after each test suite were written to
1267 the temporary log file along with the stdio from the test executable; this would
1268 lead to duplicate notices when the contents of the temporary log file are read
1269 onto the console. After this patch, the summary notices are never written to the
1270 temporary log file, only to the console and the final log file (which is never
1271 read by Cabal), removing the confusing duplicate notices.
1272]
1273[Fail gracefully when running "setup test" before "setup build".
1274Thomas Tuegel <ttuegel@gmail.com>**20110303164611
1275 Ignore-this: a4d818cd7702ddbbbbffc8679abeb85d
1276]
1277[Bump cabal-install version
1278Duncan Coutts <duncan@community.haskell.org>**20110708013248
1279 Ignore-this: 16626faad564787fc5ae3808d1e6ccc9
1280]
1281[Bump Cabal lib version
1282Duncan Coutts <duncan@community.haskell.org>**20110708013245
1283 Ignore-this: e01c7efbb68856167c227ba118ddce33
1284]
1285[Couple of trivial code changes
1286Duncan Coutts <duncan@community.haskell.org>**20110708013012
1287 Ignore-this: b98aaac9e33f8c684cefedcd05d37ee2
1288]
1289[Fix withComponentsLBI and move Components to LocalBuildInfo module
1290Duncan Coutts <duncan@community.haskell.org>**20110708012122
1291 Ignore-this: 57217119f7825c9bcd3824a34ecd0c8f
1292 An annoyance of the current Simple build system is that each phase
1293 (build, install, etc) can be passed additional HookedBuildInfo which
1294 gets merged into the PackageDescription. This means that we cannot
1295 process the PackageDescription up front at configure time and just
1296 store and reuse it later, we have to work from it each time afresh.
1297 
1298 The recent addition of Components (libs, exes, test suites) and a
1299 topoligical sort of the components in the LocalBuildInfo fell foul
1300 of this annoyance. The LocalBuildInfo stored the entire component
1301 which meant they were not updated with the HookedBuildInfo. This
1302 broke packages with custom Setup.hs scripts that took advantage of
1303 the HookedBuildInfo feature, including those with configure scripts.
1304 
1305 The solution is to store not the list of whole components but the
1306 list of component names. Then withComponentsLBI retrieves the actual
1307 components from the PackageDescription which thus includes the
1308 HookedBuildInfo.
1309 
1310 Also moved the Components into an internal module because (for the
1311 moment at least) it is part of the Simple build system, not part of
1312 the package description.
1313]
1314[Relax some dependencies
1315Ian Lynagh <igloo@earth.li>**20110706192619
1316 Ignore-this: 6353c1d64a2fff3cef3ca0d8a9f2e95e
1317]
1318[Add files needed by the GHC build system
1319Ian Lynagh <igloo@earth.li>**20110624003654
1320 Ignore-this: a40dd98104e994d1a1648c3ce2676a45
1321]
1322[Add a dash separator for pid in createTempDirectory and openBinaryTempFile too
1323Jens Petersen <juhp@community.haskell.org>**20110519021658
1324 Ignore-this: ee0c842388212326579309ac6f93408f
1325]
1326[Update changelog for 1.10.2.0
1327Duncan Coutts <duncan@community.haskell.org>**20110618190748
1328 Ignore-this: 64129f45dd16d2d93c82097530dc15d1
1329]
1330[TAG cabal-install merged
1331Duncan Coutts <duncan@community.haskell.org>**20110619135228
1332 Ignore-this: 58d670de46a24046d0b869dc2b88e13a
1333 We now have both the Cabal library and the cabal-install tool
1334 together in the same repo, each in a subdir.
1335     
1336 The idea is that this will make splitting packages and moving
1337 code between package rather easier in future.
1338]
1339Patch bundle hash:
1340d256bfe8948c5ea0ccdaa10609570bf34724475f