Bug 100844

Summary: [Qt] Reduce the number of clean builds
Product: WebKit Reporter: Csaba Osztrogonác <ossy>
Component: New BugsAssignee: Csaba Osztrogonác <ossy>
Status: RESOLVED FIXED    
Severity: Normal CC: dbates, hausmann, ossy, vestbo, webkit.review.bot
Priority: P2 Keywords: Qt, QtTriaged
Version: 420+   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Csaba Osztrogonác
Reported 2012-10-31 05:35:26 PDT
After http://trac.webkit.org/changeset/131445 build-webkit always trigger clean build if any Qt project file changed after the latest successful build. I checked the history on one of our buildbot. There were 622 builds in this 2 weeks and 60 was clean build because of this change. I think clean build in ~10% of cases is too high and unnecessary. I suggest we should do clean build if any project file changed _and_ incremental build failed. Patch is coming soon.
Attachments
Patch (2.39 KB, patch)
2012-10-31 05:48 PDT, Csaba Osztrogonác
no flags
Patch (2.54 KB, patch)
2012-10-31 07:04 PDT, Csaba Osztrogonác
no flags
Patch (2.62 KB, patch)
2012-11-06 07:09 PST, Csaba Osztrogonác
no flags
Csaba Osztrogonác
Comment 1 2012-10-31 05:48:40 PDT
Csaba Osztrogonác
Comment 2 2012-10-31 05:52:51 PDT
I checked the "config change triggers clean build" case too, it was only 2 clean build because of this reason during 622 builds. And it is still needed, because a config change can easily cause false positive build and/or test fail.
Simon Hausmann
Comment 3 2012-10-31 06:11:07 PDT
Comment on attachment 171627 [details] Patch LGTM, but it would be good to get an opinion from Tor Arne on this, too.
Tor Arne Vestbø
Comment 4 2012-10-31 06:25:27 PDT
Comment on attachment 171627 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=171627&action=review This opens us up to false positive incremental builds. If you're fine with that, then let's try it. A few nitpicks: > Tools/Scripts/webkitdirs.pm:2337 > + print "Change to $_ detected, maybe clean build needed.\n"; "clean build may be needed" > Tools/Scripts/webkitdirs.pm:2390 > + $result = system "$command wipeclean incremental"; What's the behaviour of make when passing multiple targets? Is there a chance it will try to parallelise them, or is this equivalent to make foo && make bar?
Csaba Osztrogonác
Comment 5 2012-10-31 07:04:15 PDT
Csaba Osztrogonác
Comment 6 2012-10-31 07:05:30 PDT
(In reply to comment #4) > (From update of attachment 171627 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=171627&action=review > > This opens us up to false positive incremental builds. If you're fine with that, then let's try it. A few nitpicks: > > > Tools/Scripts/webkitdirs.pm:2337 > > + print "Change to $_ detected, maybe clean build needed.\n"; > > "clean build may be needed" Fixed. > > Tools/Scripts/webkitdirs.pm:2390 > > + $result = system "$command wipeclean incremental"; > > What's the behaviour of make when passing multiple targets? Is there a chance it will try to parallelise them, or is this equivalent to make foo && make bar? Good point, it can be parallelizable. Fixed.
Csaba Osztrogonác
Comment 7 2012-10-31 07:16:44 PDT
(In reply to comment #4) > (From update of attachment 171627 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=171627&action=review > > This opens us up to false positive incremental builds. If you're fine with that, then let's try it. You're right. But as far as I remember there were much more false negative incremental build issue that false positive. On the whole I'm fine with it, let's see what happens. ;-)
Tor Arne Vestbø
Comment 8 2012-10-31 07:51:14 PDT
Comment on attachment 171646 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=171646&action=review > Tools/Scripts/webkitdirs.pm:2349 > + if ($needsIncrementalBuild && !$maybeNeedsCleanBuild) { Doesn't this mean that when a file changes, we won't do an incremental build, only a regular build? I think we can leave it like it was. > Tools/Scripts/webkitdirs.pm:2388 > + print "Calling '$command wipeclean' in " . $dir . "\n\n"; And then you need to reconstruct command here, since it will have "incremental" in it at this point.
Csaba Osztrogonác
Comment 9 2012-11-06 07:09:21 PST
Csaba Osztrogonác
Comment 10 2012-11-06 07:11:12 PST
(In reply to comment #8) > (From update of attachment 171646 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=171646&action=review > > > Tools/Scripts/webkitdirs.pm:2349 > > + if ($needsIncrementalBuild && !$maybeNeedsCleanBuild) { > > Doesn't this mean that when a file changes, we won't do an incremental build, only a regular build? I think we can leave it like it was. Good point. Fixed. > > Tools/Scripts/webkitdirs.pm:2388 > > + print "Calling '$command wipeclean' in " . $dir . "\n\n"; > > And then you need to reconstruct command here, since it will have "incremental" in it at this point. It is simpler using $make instead of $command, because we don't need incremental option after the wipeclean.
Csaba Osztrogonác
Comment 11 2012-11-07 23:46:04 PST
Comment on attachment 172579 [details] Patch ping?
Csaba Osztrogonác
Comment 12 2012-11-08 02:38:18 PST
Comment on attachment 172579 [details] Patch Clearing flags on attachment: 172579 Committed r133873: <http://trac.webkit.org/changeset/133873>
Csaba Osztrogonác
Comment 13 2012-11-08 02:38:24 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.