<div dir="ltr">Thanks Anil for coloring in so much detail. Clearly this is actually a lot more ambitious than my conception of Travis with more OSes :)<div>I'll look forward to seeing how it all comes together.</div><div>

Mike<div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 13, 2013 at 2:53 PM, Anil Madhavapeddy <span dir="ltr"><<a href="mailto:avsm2@cl.cam.ac.uk" target="_blank">avsm2@cl.cam.ac.uk</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 13 Feb 2013, at 22:42, Anil Madhavapeddy <<a href="mailto:avsm2@cl.cam.ac.uk">avsm2@cl.cam.ac.uk</a>> wrote:<br>


<br>
> Opamalot is more of a coordination service.  It interfaces with OPAM to get the (non-trivial) package database, version constraints and compiler variants out of it, and comes up with a prioritised schedule of builds and tests that need to be run on different platforms.  Some of these could (and should) run on third-party hosted services such as Travis, just to get some diversity.  Others, however, really require a Xen pool so that more exotic stuff can be done.<br>


<br>
</div>It's also worth noting the difference in execution speeds for adopting a copy-on-write approach.  We  need to test 300+ packages (which will grow) across 3.12.1/4.00.0/4.00.1/4.01.0dev and experimental compiler branches, ideally without recompiling the compiler for each package.  If a package fails to build on a fast architecture (x86), it should immediately be dropped from a slow one.<br>


<br>
When Jane Street issues a pull request for a new version of Core [1] we need to run these tests quickly to avoid holding up the release and prioritise that over other pull requests, since it's a high risk patch that touches a lot of other packages.<br>


<br>
It's certainly possible to code this up in Travis, but it's certainly not part of the standard continuous build service (unless one of these does offer this -- I would be delighted to be corrected).<br>
<br>
I tried building it as a Jenkins plugin, but frankly, life's too short for that.  I can't even get the Jenkins port to install on FreeBSD 9.1/amd64 due to some OpenJDK/JIT compile error.  And the Raspberry Pi is in even worse shape with a big hunk of RAM taken up by a Jenkins worker.<br>


<br>
-anil<br>
<br>
<br>
[1] <a href="https://github.com/OCamlPro/opam-repository/pull/382" target="_blank">https://github.com/OCamlPro/opam-repository/pull/382</a></blockquote></div><br></div>