Controlled anarchy, was Re: Data.* collections maintenance

Jacques Carette carette at mcmaster.ca
Mon Oct 24 12:17:50 EDT 2005


Simon Marlow wrote:

>On 21 October 2005 21:12, Jacques Carette wrote:
>  
>
>>I would strongly recommend against 'allow everyone to just commit'
>>without the presence of a large automated test suite which is used to
>>(automatically) reject code that breaks a test.
>>    
>>
>
>pre-commit testing using GHC isn't really practical; it would be a huge
>bottleneck.  The asynchronous testing we have right now (full testsuite
>every night) is a better compromise.
>  
>
And for check-ins of changesets that affect a *lot* of tests, this is 
also the compromise that was chosen at Maplesoft.

The upshot of that is that it
1) complicated the automated rejection of code a lot, enough so that
2) it necessitates having someone monitor nightly test failures every 
day to manually figure out what managed to make things fail

#2 can vary from very little work to quite onerous, depending on the 
level of activity.  It only gets bad when things are allowed to 
degenerate.  Interestingly cases of many tests failures seem to be more 
people-related than anything else.  So a social process (ie making them 
feel really guilty by letting everyone know who screwed up the build, 
again) seems to reach a workable middle ground quite efficiently.

>However, online testing of libraries using Hugs might be do-able.  It
>would make a nice little project if anyone's interested.  I would
>happily run a bunch of Hugs tests before committing a library change if
>it was done either with a single command or automatically by the
>checkin.
>
I can't *do* this, but I can certainly help with the design.  I helped 
write parts of Maplesoft's "rfindtest" (script to find which tests to 
run given a changeset) and "robocop" (script to find which changeset 
most likely is the source of a particular test failure).  The hardest 
part is to ensure that one has the right data available in the right 
format, the rest is easy database query stuff coupled with lots of 
scripting.  Being able to run the appropriate 100 tests (out of several 
million) for a small change certainly is very convenient!

Jacques


More information about the Libraries mailing list