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

cjerdonek at webkit.org cjerdonek at webkit.org
Thu Apr 8 02:22:03 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit a9c262571b01f6a0ba342473d7c142f79840133e
Author: cjerdonek at webkit.org <cjerdonek at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun Mar 14 00:23:55 2010 +0000

    The webkit-patch script now displays a warning if run using
    a version of Python less than 2.5.  This will help users
    understand why webkit-patch is erroring out if they are
    using Python 2.4, for example.
    
    Reviewed by Adam Barth.
    
    https://bugs.webkit.org/show_bug.cgi?id=31533
    
    * Scripts/webkit-patch:
      - Moved most of the file contents to webkitpy/patch/patcher.py
        so the Python version can be checked before interpreting
        any code that can cause the script to error out.
      - Added a configure_logging() method to enable any version
        warnings to show up.
      - Added a main() method with calls to configure_logging(),
        check_version(), and the main webkit patch method.
    
    * Scripts/webkitpy/patch/__init__.py: Copied from WebKitTools/QueueStatusServer/filters/__init__.py.
      - This file is required to make a folder a package.
    
    * Scripts/webkitpy/patch/patcher.py: Added.
      - Moved code from Scripts/webkit-patch.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55972 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 432ca37..6db8002 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -2,6 +2,32 @@
 
         Reviewed by Adam Barth.
 
+        The webkit-patch script now displays a warning if run using
+        a version of Python less than 2.5.  This will help users
+        understand why webkit-patch is erroring out if they are
+        using Python 2.4, for example.
+
+        https://bugs.webkit.org/show_bug.cgi?id=31533
+
+        * Scripts/webkit-patch:
+          - Moved most of the file contents to webkitpy/patch/patcher.py
+            so the Python version can be checked before interpreting
+            any code that can cause the script to error out.
+          - Added a configure_logging() method to enable any version
+            warnings to show up.
+          - Added a main() method with calls to configure_logging(),
+            check_version(), and the main webkit patch method.
+
+        * Scripts/webkitpy/patch/__init__.py: Copied from WebKitTools/QueueStatusServer/filters/__init__.py.
+          - This file is required to make a folder a package.
+
+        * Scripts/webkitpy/patch/patcher.py: Added.
+          - Moved code from Scripts/webkit-patch.
+
+2010-03-13  Chris Jerdonek  <cjerdonek at webkit.org>
+
+        Reviewed by Adam Barth.
+
         Changed test-webkitpy so that messages logged as a side-effect
         of unit-testing code do not get displayed to the screen.  These
         messages clutter up the unit test results if not filtered out.
diff --git a/WebKitTools/Scripts/webkit-patch b/WebKitTools/Scripts/webkit-patch
index b4bcc4c..34adef7 100755
--- a/WebKitTools/Scripts/webkit-patch
+++ b/WebKitTools/Scripts/webkit-patch
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # Copyright (c) 2009, Google Inc. All rights reserved.
 # Copyright (c) 2009 Apple Inc. All rights reserved.
+# Copyright (C) 2010 Chris Jerdonek (cjerdonek at webkit.org)
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
@@ -30,80 +31,40 @@
 #
 # A tool for automating dealing with bugzilla, posting patches, committing patches, etc.
 
+import logging
 import os
+import sys
 
-from webkitpy.bugzilla import Bugzilla
-from webkitpy.buildbot import BuildBot
-from webkitpy.commands.download import *
-from webkitpy.commands.early_warning_system import *
-from webkitpy.commands.openbugs import OpenBugs
-from webkitpy.commands.queries import *
-from webkitpy.commands.queues import *
-from webkitpy.commands.upload import *
-from webkitpy.executive import Executive
-from webkitpy.webkit_logging import log
-from webkitpy.multicommandtool import MultiCommandTool
-from webkitpy.scm import detect_scm_system
-from webkitpy.user import User
+import webkitpy.init.versioning as versioning
 
 
-class WebKitPatch(MultiCommandTool):
-    global_options = [
-        make_option("--dry-run", action="store_true", dest="dry_run", default=False, help="do not touch remote servers"),
-        make_option("--status-host", action="store", dest="status_host", type="string", nargs=1, help="Hostname (e.g. localhost or commit.webkit.org) where status updates should be posted."),
-    ]
+# FIXME: Consider logging more than just messages from the
+#        version-checking module.  For now we enable only enough
+#        for the version warning to show up.
+def configure_logging():
+    """Configure logging for the version-checker."""
+    handler = logging.StreamHandler(sys.stderr)
+    formatter = logging.Formatter("%(levelname)s: %(message)s")
+    handler.setFormatter(formatter)
 
-    def __init__(self):
-        MultiCommandTool.__init__(self)
+    logger = logging.getLogger(versioning.__name__)
+    logger.setLevel(logging.INFO)
+    logger.addHandler(handler)
 
-        self.bugs = Bugzilla()
-        self.buildbot = BuildBot()
-        self.executive = Executive()
-        self.user = User()
-        self._scm = None
-        self.status_server = StatusServer()
 
-    def scm(self):
-        # Lazily initialize SCM to not error-out before command line parsing (or when running non-scm commands).
-        original_cwd = os.path.abspath(".")
-        if not self._scm:
-            self._scm = detect_scm_system(original_cwd)
+def main():
+    configure_logging()
 
-        if not self._scm:
-            script_directory = os.path.abspath(sys.path[0])
-            webkit_directory = os.path.abspath(os.path.join(script_directory, "../.."))
-            self._scm = detect_scm_system(webkit_directory)
-            if self._scm:
-                log("The current directory (%s) is not a WebKit checkout, using %s" % (original_cwd, webkit_directory))
-            else:
-                error("FATAL: Failed to determine the SCM system for either %s or %s" % (original_cwd, webkit_directory))
+    versioning.check_version()
 
-        return self._scm
+    # Import webkit-patch code only after version-checking so that
+    # script doesn't error out before having a chance to report the
+    # version warning.
+    from webkitpy.patch.patcher import WebKitPatch
 
-    def path(self):
-        return __file__
-
-    def should_show_in_main_help(self, command):
-        if not command.show_in_main_help:
-            return False
-        if command.requires_local_commits:
-            return self.scm().supports_local_commits()
-        return True
-
-    # FIXME: This may be unnecessary since we pass global options to all commands during execute() as well.
-    def handle_global_options(self, options):
-        if options.dry_run:
-            self.scm().dryrun = True
-            self.bugs.dryrun = True
-        if options.status_host:
-            self.status_server.set_host(options.status_host)
-
-    def should_execute_command(self, command):
-        if command.requires_local_commits and not self.scm().supports_local_commits():
-            failure_reason = "%s requires local commits using %s in %s." % (command.name, self.scm().display_name(), self.scm().checkout_root)
-            return (False, failure_reason)
-        return (True, None)
+    WebKitPatch().main()
 
 
 if __name__ == "__main__":
-    WebKitPatch().main()
+
+    main()
diff --git a/WebKitTools/QueueStatusServer/filters/__init__.py b/WebKitTools/Scripts/webkitpy/patch/__init__.py
similarity index 100%
copy from WebKitTools/QueueStatusServer/filters/__init__.py
copy to WebKitTools/Scripts/webkitpy/patch/__init__.py
diff --git a/WebKitTools/Scripts/webkitpy/patch/patcher.py b/WebKitTools/Scripts/webkitpy/patch/patcher.py
new file mode 100755
index 0000000..0f17678
--- /dev/null
+++ b/WebKitTools/Scripts/webkitpy/patch/patcher.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python
+# Copyright (c) 2009, Google Inc. All rights reserved.
+# Copyright (c) 2009 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# A tool for automating dealing with bugzilla, posting patches, committing patches, etc.
+
+import os
+
+from webkitpy.bugzilla import Bugzilla
+from webkitpy.buildbot import BuildBot
+from webkitpy.commands.download import *
+from webkitpy.commands.early_warning_system import *
+from webkitpy.commands.openbugs import OpenBugs
+from webkitpy.commands.queries import *
+from webkitpy.commands.queues import *
+from webkitpy.commands.upload import *
+from webkitpy.executive import Executive
+from webkitpy.webkit_logging import log
+from webkitpy.multicommandtool import MultiCommandTool
+from webkitpy.scm import detect_scm_system
+from webkitpy.user import User
+
+
+class WebKitPatch(MultiCommandTool):
+    global_options = [
+        make_option("--dry-run", action="store_true", dest="dry_run", default=False, help="do not touch remote servers"),
+        make_option("--status-host", action="store", dest="status_host", type="string", nargs=1, help="Hostname (e.g. localhost or commit.webkit.org) where status updates should be posted."),
+    ]
+
+    def __init__(self):
+        MultiCommandTool.__init__(self)
+
+        self.bugs = Bugzilla()
+        self.buildbot = BuildBot()
+        self.executive = Executive()
+        self.user = User()
+        self._scm = None
+        self.status_server = StatusServer()
+
+    def scm(self):
+        # Lazily initialize SCM to not error-out before command line parsing (or when running non-scm commands).
+        original_cwd = os.path.abspath(".")
+        if not self._scm:
+            self._scm = detect_scm_system(original_cwd)
+
+        if not self._scm:
+            script_directory = os.path.abspath(sys.path[0])
+            webkit_directory = os.path.abspath(os.path.join(script_directory, "../.."))
+            self._scm = detect_scm_system(webkit_directory)
+            if self._scm:
+                log("The current directory (%s) is not a WebKit checkout, using %s" % (original_cwd, webkit_directory))
+            else:
+                error("FATAL: Failed to determine the SCM system for either %s or %s" % (original_cwd, webkit_directory))
+
+        return self._scm
+
+    def path(self):
+        return __file__
+
+    def should_show_in_main_help(self, command):
+        if not command.show_in_main_help:
+            return False
+        if command.requires_local_commits:
+            return self.scm().supports_local_commits()
+        return True
+
+    # FIXME: This may be unnecessary since we pass global options to all commands during execute() as well.
+    def handle_global_options(self, options):
+        if options.dry_run:
+            self.scm().dryrun = True
+            self.bugs.dryrun = True
+        if options.status_host:
+            self.status_server.set_host(options.status_host)
+
+    def should_execute_command(self, command):
+        if command.requires_local_commits and not self.scm().supports_local_commits():
+            failure_reason = "%s requires local commits using %s in %s." % (command.name, self.scm().display_name(), self.scm().checkout_root)
+            return (False, failure_reason)
+        return (True, None)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list