I've done a little searching, and I found at least one continuous
integration tool that will do this (for Git though, not Darcs)

"continuous integration" would seem to be a useful thing support
for which to have nice would be (even if it might permute patches
in unexpected ways, depending on when they pass the tests;-). Could you please add that as a wanted feature to the RCS evaluation page?

I did once suggest to wrap new patches in '#ifdef BUILDBOT'
(unless they are definitely-I-swear-I'm-not-kidding-I've-got-proof
platform-independent), then gradually turn that into

   '#if (defined(BUILDBOT) || platformX || platformY) && !(platformZ)'

as builders pull the patches and start reporting in with success or
failure. That suggestion was voted down because of CPP use,
IIRC, which was probably right.

But that doesn't mean that there may not be a cleaner way to achieve the intended effect. Using darcs, and assuming that
branches will only be used for substantial groups of topically
related patches, not for day-to-day patching, one could imagine
adding a tested platform list to the description of every patch,
having humans only pull tested patches, while builbot pulls all
patches.

Having imagined things that far, one might tune this further, to simply assume that every patch is for buildbot only at first, and
to have lists of successfully built/tested patches per platform:

0. for each platform, have a list of successfully tested patches
1. push patches as now
2. humans pull the lists of tested patches, then only pull
   the patches on the list for their platform (unless they
   are trying to debug the failed patches) - this could be
   handled by a script like darcs-all
3. builders pull all patches, try to build
4. whenever a builder succeeds, it adds all its patches to
   the list for its platform

Does that sound useful/doable?
Claus

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to