RESOLVED INVALID 108425
[Qt] Adjust the way of determining whether build-webkit needs full incremental build
https://bugs.webkit.org/show_bug.cgi?id=108425
Summary [Qt] Adjust the way of determining whether build-webkit needs full incrementa...
Seulgi Kim
Reported 2013-01-30 21:49:06 PST
Now, webkitdirs.pm caches SVN revision only when it is built successfully. So if a build fails after getting a new revision, another full incremental build is needed after fixing the error.
Attachments
Patch (1.70 KB, patch)
2013-01-30 21:53 PST, Seulgi Kim
no flags
Patch (1.97 KB, patch)
2013-04-24 17:57 PDT, Seulgi Kim
vestbo: review-
vestbo: commit-queue-
Seulgi Kim
Comment 1 2013-01-30 21:53:27 PST
Jocelyn Turcotte
Comment 2 2013-03-13 10:14:18 PDT
Comment on attachment 185675 [details] Patch No need to duplicate this code, plus the file should be saved in every case, including the two "elsif" above. You could just move this code out of "if ($result eq 0)" and run it right after we ran "system $command".
Seulgi Kim
Comment 3 2013-04-24 17:57:07 PDT
Tor Arne Vestbø
Comment 4 2013-04-24 23:57:51 PDT
Comment on attachment 199569 [details] Patch The whole point is to ensure that we have a successful build before adding to BUILTREVISIONS. Why do you think the "second full incremental build is unnecessary"? What if 'make qmake_all' fails to generate a project file, or generating sources fails? Will we still end up running qmake for the whole project, even with -j1?
Jocelyn Turcotte
Comment 5 2013-04-25 02:08:48 PDT
(In reply to comment #4) > (From update of attachment 199569 [details]) > The whole point is to ensure that we have a successful build before adding to BUILTREVISIONS. Why do you think the "second full incremental build is unnecessary"? What if 'make qmake_all' fails to generate a project file, or generating sources fails? Will we still end up running qmake for the whole project, even with -j1? The bug is real and annoying: - Build successfully svn rev 12345 - git pull --rebase (to svn rev 12346) - Merge conflicts, make some mistakes that would make the build fail - build-webkit -> some .pro file change detected -> full build -> fails - Fix mistakes - build-webkit -> same .pro file change detected again -> full build again!! And this goes on until you're able to fix the build with full builds between all tries. This is actually caused by the side effect where maybeNeedsCleanBuild is set to 1. Since the build fails, we do a clean build every time. So it's not the "second incremental build" that is unnecessary, it's the second full rebuild because the first one failed and maybeNeedsCleanBuild was set. I wasn't following the difference quite well the first time, so I think you're right and the fix is wrong. But we still have to make sure that maybeNeedsCleanBuild isn't set the second time, or maybe just set it if on the buildbot.
Jocelyn Turcotte
Comment 6 2013-04-25 02:10:56 PDT
(In reply to comment #5) > - Merge conflicts, make some mistakes that would make the build fail Plus it also happens every time the build is already broken in SVN for the platform you're building and while you're trying to fix it.
Tor Arne Vestbø
Comment 7 2013-04-25 07:32:45 PDT
The terminology in the script is a bit off, but we have three levels: - clean - 'safe' incremental (make qmake_all && make) - 'regular' incremental (rely on make's dependency tracking) You're right that we shouldn't do repeated clean builds. This patch was trying to skip the 'safe' incremental step before actually producing a working build, which is going to break builds. I think one way to fix the repeated clean builds is to check for buildbot in the "elsif ($maybeNeedsCleanBuild)" block, and only wipe and re-make if we're on a build bot. Otherwise we can instruct the user to run make wipeclean manually.
Jocelyn Turcotte
Comment 8 2014-02-03 03:24:32 PST
=== Bulk closing of Qt bugs === If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary. If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.
Note You need to log in before you can comment on or make changes to this bug.