Status updates

Herbert Valerio Riedel hvriedel at gmail.com
Sun Apr 27 08:18:02 UTC 2014


On 2014-04-22 at 14:42:46 +0200, Austin Seipp wrote:

[...]

>  - I've been looking into our CI setup for GHC, and evaluating things.
> Right now though, I am directly working on getting Windows build bots
> set up on Gabor's infrastructure. He gave me the credentials, and
> hopefully this should not take long, it just slipped my mind.
>
>  But mostly I've been looking at CI systems for Hackage, so that we
> can try to continuously integrate a subset of important packages
> against GHC over time. Right now, we have Travis-CI thanks to Herbert,
> but not quite everyone uses this (or doesn't properly configure it to
> e.g. test HEAD).
>
> This would really help find things in the future, I think, especially
> closer to release. It would also really help find nasty bugs in the
> RCs, like the dreaded #8978
>
>  Right now, after some thought, I'm looking into Michael's Stackage as
> a starting point for this, as he's done some awesome work. But I
> haven't yet done so in anger, and there are some other things I want
> to try too.

I want to add that a GitHub-integrated CI like Travis-CI and a
"Hackage-CI" are two different CI-systems that complement each other, in
case there may be the impression that one renders the other one
redundant.

Something like Travis-CI helps a package maintainer keep the HEAD branch
from breaking early during development even before the package is
actually uploaded to Hackage (furthermore, it helps pre-validating
patches in pull-requests so might save the package maintainer time with
patches that don't pass the test-suite). 

Whereas a build-the-world Hackage-CI would (the way I understand it)
help detecting that the Hackage *released* package-set is in a working
state for a given compiler configuration (including GHC HEAD[1]), w/o
any active cooperation from the package maintainer. And more
importantly, it may trigger rebuilds of depending packages, when new
packages is added to the Hackage index to help detect problems due to
inter-package interactions.


 [1]: However, I wonder how to keep Hackage buildable with GHC HEAD w/o
      having to patch up every package that will likely break sooner or
      later due to API (e.g. the AMP-refactoring will likely break
      stuff) and compiler changes[2], as I don't think cabal-install's
      --allow-newer will help in all cases.

 [2]: This already happened due to #8883 with the HTTP package, 
      see also haskell/HTTP#58


Cheers,
  hvr


More information about the ghc-devs mailing list