On Fri, May 2, 2008 at 9:20 AM, Joachim Steiger &lt;<a href="mailto:roh@openmoko.org">roh@openmoko.org</a>&gt; wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="Wj3C7c">Michael &#39;Mickey&#39; Lauer wrote:<br>
&gt; This is all good and well, however there&#39;s one inherently problematic issue to<br>
&gt; consider here. Continuous integration is very good and very possible (and we<br>
&gt; need and will to use it to improve quality), however where it really shines<br>
&gt; is, when the complete stack is under your control.<br>
&gt;<br>
&gt; Unfortunately (or rahter, luckily?), 80% of the Openmoko distribution actually<br>
&gt; is not under Openmoko&#39;s control and we do not want to go and open a<br>
&gt; repository and (effectively) fork all upstream projects.<br>
<br>
</div></div>indeed.<br>
i thought of something more generic like bitbake invoking make check and<br>
put patches to add tests into the upstream packages into OE for now,<br>
with the goal for these to move upstream.<br>
after all, thats where tests belong and should be maintained.<br>
too bad the usual FOSS has a rather bad testcaseratio<br>
<br>
also i believe true CI will be problematic since the checkin rate is<br>
sometimes much higher than what buildhost could build. (cron triggered)<br>
<font color="#888888"><br>
--<br>
<br>
Joachim Steiger<br>
developer relations/support<br>
</font></blockquote></div><br>I haven&#39;t been on a project where we pulled a significant amount of code<br>from repositories not under our control, and I agree that changes things<br>slightly.&nbsp; It seems to me that it&#39;s more reason, not less, for CI, though.<br>
(Really, I think you&#39;re already on the same track...)<br><br>Assuming that the outside repository doesn&#39;t already have a way to<br>find the latest good build, just use a dated pull from the repositories<br>outside your control, and record the &quot;label&quot; in a file.&nbsp; Use the latest<br>
good build date for the external code as your &quot;label&quot; to use when<br>building the code that *is* under your control.<br><br>You would probably want a separate CI process for each externally<br>controlled repository, plus one for all the OM controlled code.<br>
<br>Also, certainly for external code you would need to build on a<br>schedule, rather than restarting the build when new checkins<br>happen.&nbsp; Really, you should probably do the same for your <br>internal code, too, though.&nbsp; (With the caveat that you only<br>
build your internal code at the scheduled time if changes have<br>been checked in).<br clear="all"><br>-- <br>If it doesn&#39;t make you smile, you&#39;re doing something wrong.