[Hackage] #501: clean up UI for build logging / reporting

Hackage trac at galois.com
Sun Feb 15 08:21:23 EST 2009


#501: clean up UI for build logging / reporting
---------------------------------+------------------------------------------
  Reporter:  duncan              |        Owner:     
      Type:  enhancement         |       Status:  new
  Priority:  normal              |    Milestone:     
 Component:  cabal-install tool  |      Version:     
  Severity:  normal              |     Keywords:     
Difficulty:  normal              |   Ghcversion:     
  Platform:                      |  
---------------------------------+------------------------------------------
 The current `cabal install` command line interface to specify build logs
 files is incomplete and a bit confusing.

 The current interface is:
 {{{
 --log-builds=FILE   Log all builds to file (name template
                     can use $pkgid, $compiler, $os, $arch)
 --build-reports     Generate detailed build reports.
                     (overrides --log-builds)
 }}}

 However we also always generate a local build summary to
 `~/.cabal/logs/build.log` and a anonymous remote one in
 `~/.cabal/packages/$server/build-reports.log`. The generation of these is
 not controllable at the moment.

 While the underlying mechanisms are similar, we think it is useful in the
 user interface to separate the local logging from the generation of build
 reports to send to remote hackage servers.

 There are two aspects to local logging. We can generate machine readable
 summary information like:
 {{{
 package: xmonad-0.7
 os: linux
 arch: x86_64
 compiler: ghc-6.8.2
 client: cabal-install-0.5.2
 flags: -testing small_base
 dependencies: X11-1.4.2 base-3.0.1.0 containers-0.1.0.1
               directory-1.0.0.0 mtl-1.1.0.0 process-1.0.0.0 unix-2.3.0.0
 install-outcome: InstallOk
 docs-outcome: NotTried
 tests-outcome: NotTried
 }}}
 and we can generate the actual build log.

 So we propose controlling each separately with the flags:
 {{{
 --local-build-summary=FILE
 --local-build-log=FILE
 }}}
 The `FILE` parameter can contain instances of variables like '$pkgid' etc
 to allow for splitting the summaries or logs into different files. Each
 log/summary file is written using file append so it should be possible to
 have both go into one file (interleaved).

 For the remote case the layout of the files is prescribed. The user has no
 control over that. They should just be able to specify the level of
 logging. We suggest:
 {{{
 --remote-build-reporting=[none,anonymous,detailed]
 }}}

 A couple remaining questions:
   * how to specify that we do not want any local summary, not even the
 default one
   * does `--local-build-summary=` specify a single valued configuration
 setting or a list? If I specify it multiple times, does it write into all
 files or only the last?

 One possible answer to the above is to say that it's a list of files and
 the default is given in the `~/.cabal/config` file. So adding `--local-
 build-summary=` would write into both the default and the extra file. That
 way if someone really wants to they can turn off the default log.

-- 
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/501>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects


More information about the cabal-devel mailing list