Pre-review CI

Friedrich W. H. Kossebau kossebau at kde.org
Mon Jul 30 10:50:48 BST 2018


Am Montag, 30. Juli 2018, 06:50:47 CEST schrieb Bhushan Shah:
> On Sun, Jul 29, 2018 at 05:00:19PM +0200, Friedrich W. H. Kossebau wrote:
> > 1 job means one huge build log to look at, or? In that case I would prefer
> > separate jobs. Given review requests are prone to fail.
> 
> Thing is, you don't care about the pre-review CI jobs as long as they
> are passing, but in case of fail, yes you might have to look at long
> log depending on where failure was, in first platform or last one.

So this is a use-case which should be optimized for, given it is an expected 
to hit hot-path of developer workflow :)

> > compare to non-review build jobs, I would assume. And having jobs separate
> > also means one gets results for any platforms, does not stop on the first
> > failing?
> 
> Yes, but it also means that if there is obvious mistake in review, all
> will fail, insteaad of bailing out earlier.

More advantages with parallel builds:
* bigger projects, where building takes some time (krita, kdevelop, plasma-*, 
etc) and where sometimes patches are reviewed almost in sync, parallel builds 
mean quicker feedback
* when doing fix-up for patches which fail on a platform, getting quicker 
feedback would be also good
* parallel builds might also mean easier report for results on the different 
platforms in the jenkins page, so one can quickly see on which platform there 
are issues (and which experts might be needed)
* a platform being broken on normal CI for some unrelated reason (outdated 
deps, platform issues) will also mean the review build breaks there, in that 
case any later platforms in the single job build would not be reached for 
review feedback
* platform-specific issues (like missing includes) which need platform experts 
will result in a fail before reaching other issues (like regressions in 
tests), having parallel builds would allow the non-build failing platforms to 
also run the tests and allow the developer to already investigate the test 
regression, while waiting for the platform experts to help out with the 
platform specific issues

So unless we are short of resources on CI, I really would favour separate 
builds, to always get feedback for all platforms, instead of doing some try & 
error walk through all platforms one by one, with the others having to wait 
for the earlier (and respective people to sort out things there).

Let's make sure things can be worked in parallel where possible, and as quick 
as possible, given most FLOSS contributors only have small time snippets to do 
things.

> > > - Should we send out comment for failure and success? Or is it easier to
> > > 
> > >   figure out the console log link without the comment? See linked review
> > >   for example [1].
> > 
> > [1] -> [2] here.
> > 
> > What do you mean exactly by "send out comment for failure and success"?
> > More emails? (Please not). That example works fine with me, but not sure
> > what the alternative is?
> 
> The alternative being, instead of jenkins-ci comemnting with link, you
> find it manually in Diff detail section, see screenshot
> 
> https://screenshots.firefox.com/1GG7B0bPLod3QMFg/phabricator.kde.org
> 
> Here, the "Jenkins" after the "Build 1313: Frameworks Pre-Review CI" is
> link to jenkins build. But the test was if you were able to spot it in
> first glance, and it failed. :P so yeah we will keep comments enabled
> even if it means extra emails.

Eh, not talking about that does not mean I would have not seen it ;)
Cannot remember if I did, but such a central last build status display would 
be good to have in general, so there is one defined place to look at the learn 
about the latest build report for the current state, and not having to search 
for in the timeline. So that entry being there or some other defined place 
could be taken for granted :)

Having the different build reports also in the timeline (by a comment or 
whatever other entry type phabricator allows) might be nice to have, it might 
help to compare results when trying to fix a build failure only hit/available 
on CI.


Which brings another question: how long would review build logs be kept?

I could imagine that discarding once a review is closed (discarded or 
committed) would be fine. But while a review request is open, keeping also 
build logs for older revisions (at least to a certain count) of a patch under 
review would be good to have, as sometimes one needs to compare results for 
different versions.

Cheers
Friedrich




More information about the Kde-frameworks-devel mailing list