[Hackage] #598: Bogus build failures on HackageDB

Hackage trac at galois.com
Mon Jan 11 10:02:23 EST 2010


#598: Bogus build failures on HackageDB
--------------------------------+-------------------------------------------
  Reporter:  mboes              |        Owner:         
      Type:  defect             |       Status:  new    
  Priority:  normal             |    Milestone:         
 Component:  hackageDB website  |      Version:         
  Severity:  normal             |   Resolution:         
  Keywords:                     |   Difficulty:  unknown
Ghcversion:                     |     Platform:         
--------------------------------+-------------------------------------------
Comment (by mokus):

 I'm getting extremely frustrated by situations very much like this one.
 the bytestring-0.9.1.5 update was particularly nasty and caused bogus
 failures in every package I uploaded for a couple months, to the point
 where i added hacks to one project's cabal file for the sole purpose of
 making it build on the hackage server.  It really should not be possible
 for a _._._.x version bump to wreak this kind of havoc.

 More recently, I uploaded a new version of my 'random-fu' package and it
 failed due to some problem which prevented the non-negative package from
 linking.  I have not looked into it just yet, but it looks like another of
 the same issues - essentially bitrot in the ghc-pkg database on whatever
 system does the hackage builds.  This is getting out of hand, in my
 opinion.

 I propose a few alternative solutions, varying in directness and
 complexity:
     1) all packages be rebuilt occasionally (say, monthly) from a clean
 Haskell-Platform install (preferably also updating the info on the web for
 packages that successfully rebuild)

     2) keep stats on reverse-dependency build failures, use a pagerank-
 like tool to propagate those stats up the graph, and rebuild packages and
 their dependencies when scores start to plummet (which presumably would
 have happened to bytestring shortly after 0.9.1.5 was uploaded and huge
 numbers of projects referencing it would not build)

     3) Just build *every* upload in its own clean package.conf environment
 as a fallback (instead of or in addition to the preferred-versions
 fallback), rebuilding all the package's dependencies as well like "cabal
 install" does.

 That last should be fairly simple to implement and would make a lot of
 sense to me, especially given that I think most users do something of the
 kind in their own pre-upload testing.  I know I do anyway.

 I would personally be satisfied if I could just get the haddock
 documentation to appear on the package archive page when the build fails.
 People can and will skim the package documentation and try building a
 package themselves if the package sounds interesting to them, but they're
 extremely unlikely to build the documentation just so that they can
 discover whether the package is interesting to them.

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


More information about the cabal-devel mailing list