[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

abarth at webkit.org abarth at webkit.org
Thu Apr 8 00:53:54 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit da97f2e5fdbf298888a725e62dbc3ef407ab921d
Author: abarth at webkit.org <abarth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jan 4 23:13:50 2010 +0000

    2010-01-04  Adam Barth  <abarth at webkit.org>
    
            Reviewed by Eric Seidel.
    
            commit-queue can wrongly reject patches if the buildbots are behind
            https://bugs.webkit.org/show_bug.cgi?id=30098
    
            Check to make sure we can currently build and test before trying to
            land a patch.
    
            * Scripts/webkitpy/commands/queues.py:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 05173be..04dfe01 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,15 @@
+2010-01-04  Adam Barth  <abarth at webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        commit-queue can wrongly reject patches if the buildbots are behind
+        https://bugs.webkit.org/show_bug.cgi?id=30098
+
+        Check to make sure we can currently build and test before trying to
+        land a patch.
+
+        * Scripts/webkitpy/commands/queues.py:
+
 2010-01-04  Adam Roben  <aroben at apple.com>
 
         Add a test harness for the Windows WebKit API, and a few tests
diff --git a/WebKitTools/Scripts/webkitpy/commands/queues.py b/WebKitTools/Scripts/webkitpy/commands/queues.py
index ef19145..734fef3 100644
--- a/WebKitTools/Scripts/webkitpy/commands/queues.py
+++ b/WebKitTools/Scripts/webkitpy/commands/queues.py
@@ -145,19 +145,39 @@ class CommitQueue(AbstractQueue, StepSequenceErrorHandler):
         self.log_progress([patch['id'] for patch in patches])
         return patches[0]
 
-    def should_proceed_with_work_item(self, patch):
+    def _can_build_and_test(self):
+        try:
+            self.run_bugzilla_tool(["build-and-test", "--force-clean", "--non-interactive", "--build-style=both", "--quiet"])
+        except ScriptError, e:
+            self._update_status("Unabled to successfully build and test", None)
+            return False
+        return True
+
+    def _builders_are_green(self):
         red_builders_names = self.tool.buildbot.red_core_builders_names()
         if red_builders_names:
             red_builders_names = map(lambda name: "\"%s\"" % name, red_builders_names) # Add quotes around the names.
             self._update_status("Builders [%s] are red. See http://build.webkit.org" % ", ".join(red_builders_names), None)
             return False
+        return True
+
+    def should_proceed_with_work_item(self, patch):
+        if not self._builders_are_green():
+            return False
+        if not self._can_build_and_test():
+            return False
+        if not self._builders_are_green():
+            return False
         self._update_status("Landing patch", patch)
         return True
 
     def process_work_item(self, patch):
         try:
             self._cc_watchers(patch["bug_id"])
-            self.run_bugzilla_tool(["land-attachment", "--force-clean", "--non-interactive", "--parent-command=commit-queue", "--build-style=both", "--quiet", patch["id"]])
+            # We pass --no-update here because we've already validated
+            # that the current revision actually builds and passes the tests.
+            # If we update, we risk moving to a revision that doesn't!
+            self.run_bugzilla_tool(["land-attachment", "--force-clean", "--non-interactive", "--no-update", "--parent-command=commit-queue", "--build-style=both", "--quiet", patch["id"]])
             self._did_pass(patch)
         except ScriptError, e:
             self._did_fail(patch)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list