Title: [264425] trunk/Tools
Revision
264425
Author
jbed...@apple.com
Date
2020-07-15 14:39:33 -0700 (Wed, 15 Jul 2020)

Log Message

[webkitcorepy] Spin off general webkitpy tools into a pip module
https://bugs.webkit.org/show_bug.cgi?id=214309

Reviewed by Dewei Zhu.

* Scripts/libraries: Added.
* Scripts/libraries/webkitcorepy: Added.
* Scripts/libraries/webkitcorepy/MANIFEST.in: Added.
* Scripts/libraries/webkitcorepy/README.md: Added.
* Scripts/libraries/webkitcorepy/setup.py: Added.
(readme):
* Scripts/libraries/webkitcorepy/webkitcorepy: Added.
* Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py: Added.
* Scripts/libraries/webkitcorepy/webkitcorepy/tests: Added.
* Scripts/libraries/webkitcorepy/webkitcorepy/tests/__init__.py: Added.
* Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py: Moved from
webkitpy/common/version_unittest.py.
* Scripts/libraries/webkitcorepy/webkitcorepy/version.py: Added.
(Version): Moved from webkitpy/common/version.py.
* Scripts/webkitpy/__init__.py: Include webkitcorepy on import path.
* Scripts/webkitpy/common/checkout/scm/scm_unittest.py: Use Version from webkitcorepy.
* Scripts/webkitpy/common/checkout/scm/svn.py: Ditto.
* Scripts/webkitpy/common/system/platforminfo.py: Ditto.
* Scripts/webkitpy/common/system/platforminfo_mock.py: Ditto.
* Scripts/webkitpy/common/version.py: Ditto.
(Version): Moved to webkitcorepy.
* Scripts/webkitpy/common/version_name_map.py: Use Version from webkitcorepy.
* Scripts/webkitpy/common/version_name_map_unittest.py: Ditto.
* Scripts/webkitpy/common/version_unittest.py: Moved to webkitcorepy.
* Scripts/webkitpy/port/factory_unittest.py: Use Version from webkitcorepy.
* Scripts/webkitpy/port/ios.py: Use Version from webkitcorepy, remove unneeded imports.
* Scripts/webkitpy/port/ios_device.py: se Version from webkitcorepy.
* Scripts/webkitpy/port/ios_device_unittest.py: Ditto.
* Scripts/webkitpy/port/ios_simulator.py: Ditto.
* Scripts/webkitpy/port/ios_simulator_unittest.py: Ditto.
* Scripts/webkitpy/port/ios_testcase.py: Ditto.
* Scripts/webkitpy/port/mac.py: Ditto.
* Scripts/webkitpy/port/mac_unittest.py: Ditto.
* Scripts/webkitpy/port/watch.py: Use Version from webkitcorepy, remove unneeded imports.
* Scripts/webkitpy/port/watch_device.py: Use Version from webkitcorepy.
* Scripts/webkitpy/port/watch_simulator.py: Ditto.
* Scripts/webkitpy/port/watch_simulator_unittest.py: Ditto.
* Scripts/webkitpy/port/watch_testcase.py: Ditto.
* Scripts/webkitpy/port/win.py: Use Version from webkitcorepy, remove unneeded imports.
* Scripts/webkitpy/port/win_unittest.py: Use Version from webkitcorepy.
* Scripts/webkitpy/test/main.py:
(main): Include webkitcorepy tests.
* Scripts/webkitpy/xcode/device_type_unittest.py: Use Version from webkitcorepy.
* Scripts/webkitpy/xcode/simulated_device.py: Ditto.
* Scripts/webkitpy/xcode/simulated_device_unittest.py: Use Version from webkitcorepy, fix style for imports.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Tools/ChangeLog (264424 => 264425)


--- trunk/Tools/ChangeLog	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/ChangeLog	2020-07-15 21:39:33 UTC (rev 264425)
@@ -1,3 +1,56 @@
+2020-07-15  Jonathan Bedard  <jbed...@apple.com>
+
+        [webkitcorepy] Spin off general webkitpy tools into a pip module
+        https://bugs.webkit.org/show_bug.cgi?id=214309
+
+        Reviewed by Dewei Zhu.
+
+        * Scripts/libraries: Added.
+        * Scripts/libraries/webkitcorepy: Added.
+        * Scripts/libraries/webkitcorepy/MANIFEST.in: Added.
+        * Scripts/libraries/webkitcorepy/README.md: Added.
+        * Scripts/libraries/webkitcorepy/setup.py: Added.
+        (readme):
+        * Scripts/libraries/webkitcorepy/webkitcorepy: Added.
+        * Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py: Added.
+        * Scripts/libraries/webkitcorepy/webkitcorepy/tests: Added.
+        * Scripts/libraries/webkitcorepy/webkitcorepy/tests/__init__.py: Added.
+        * Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py: Moved from
+        webkitpy/common/version_unittest.py.
+        * Scripts/libraries/webkitcorepy/webkitcorepy/version.py: Added.
+        (Version): Moved from webkitpy/common/version.py.
+        * Scripts/webkitpy/__init__.py: Include webkitcorepy on import path.
+        * Scripts/webkitpy/common/checkout/scm/scm_unittest.py: Use Version from webkitcorepy.
+        * Scripts/webkitpy/common/checkout/scm/svn.py: Ditto.
+        * Scripts/webkitpy/common/system/platforminfo.py: Ditto.
+        * Scripts/webkitpy/common/system/platforminfo_mock.py: Ditto.
+        * Scripts/webkitpy/common/version.py: Ditto.
+        (Version): Moved to webkitcorepy.
+        * Scripts/webkitpy/common/version_name_map.py: Use Version from webkitcorepy.
+        * Scripts/webkitpy/common/version_name_map_unittest.py: Ditto.
+        * Scripts/webkitpy/common/version_unittest.py: Moved to webkitcorepy.
+        * Scripts/webkitpy/port/factory_unittest.py: Use Version from webkitcorepy.
+        * Scripts/webkitpy/port/ios.py: Use Version from webkitcorepy, remove unneeded imports.
+        * Scripts/webkitpy/port/ios_device.py: se Version from webkitcorepy.
+        * Scripts/webkitpy/port/ios_device_unittest.py: Ditto.
+        * Scripts/webkitpy/port/ios_simulator.py: Ditto.
+        * Scripts/webkitpy/port/ios_simulator_unittest.py: Ditto.
+        * Scripts/webkitpy/port/ios_testcase.py: Ditto.
+        * Scripts/webkitpy/port/mac.py: Ditto.
+        * Scripts/webkitpy/port/mac_unittest.py: Ditto.
+        * Scripts/webkitpy/port/watch.py: Use Version from webkitcorepy, remove unneeded imports.
+        * Scripts/webkitpy/port/watch_device.py: Use Version from webkitcorepy.
+        * Scripts/webkitpy/port/watch_simulator.py: Ditto.
+        * Scripts/webkitpy/port/watch_simulator_unittest.py: Ditto.
+        * Scripts/webkitpy/port/watch_testcase.py: Ditto.
+        * Scripts/webkitpy/port/win.py: Use Version from webkitcorepy, remove unneeded imports.
+        * Scripts/webkitpy/port/win_unittest.py: Use Version from webkitcorepy.
+        * Scripts/webkitpy/test/main.py:
+        (main): Include webkitcorepy tests.
+        * Scripts/webkitpy/xcode/device_type_unittest.py: Use Version from webkitcorepy.
+        * Scripts/webkitpy/xcode/simulated_device.py: Ditto.
+        * Scripts/webkitpy/xcode/simulated_device_unittest.py: Use Version from webkitcorepy, fix style for imports.
+
 2020-07-15  Aakash Jain  <aakash_j...@apple.com>
 
         [ews] clicking submit for EWS analysis button for patches on closed bug should display error

Added: trunk/Tools/Scripts/libraries/webkitcorepy/MANIFEST.in (0 => 264425)


--- trunk/Tools/Scripts/libraries/webkitcorepy/MANIFEST.in	                        (rev 0)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/MANIFEST.in	2020-07-15 21:39:33 UTC (rev 264425)
@@ -0,0 +1 @@
+include README.md

Added: trunk/Tools/Scripts/libraries/webkitcorepy/README.md (0 => 264425)


--- trunk/Tools/Scripts/libraries/webkitcorepy/README.md	                        (rev 0)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/README.md	2020-07-15 21:39:33 UTC (rev 264425)
@@ -0,0 +1,12 @@
+# webkitcorepy
+
+Provides a number of utilities intended to support intermediate to advanced Python programming.
+
+
+## Usage
+
+Version representation
+```
+from webkitcorepy import Version
+version = Version(1, 2, 3)
+```

Added: trunk/Tools/Scripts/libraries/webkitcorepy/setup.py (0 => 264425)


--- trunk/Tools/Scripts/libraries/webkitcorepy/setup.py	                        (rev 0)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/setup.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -0,0 +1,58 @@
+# Copyright (C) 2020 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:
+# 1.  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2.  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.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
+
+from webkitcorepy import version
+from setuptools import setup
+
+
+def readme():
+    with open('README.md') as f:
+        return f.read()
+
+
+setup(
+    name='webkitcorepy',
+    version=str(version),
+    description='Library containing various Python support classes and functions.',
+    long_description=readme(),
+    classifiers=[
+        'Development Status :: 5 - Production/Stable',
+        'Intended Audience :: Developers',
+        'License :: Other/Proprietary License',
+        'Operating System :: MacOS',
+        'Natural Language :: English',
+        'Programming Language :: Python :: 3',
+        'Topic :: Software Development :: Libraries :: Python Modules',
+    ],
+    keywords='python unicode',
+    url='',
+    author='Jonathan Bedard',
+    author_email='jbed...@apple.com',
+    license='Modified BSD',
+    packages=['webkitcorepy'],
+    install_requires=[
+        'mock',
+        'requests',
+    ],
+    include_package_data=True,
+    zip_safe=False,
+)

Added: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py (0 => 264425)


--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py	                        (rev 0)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -0,0 +1,24 @@
+# Copyright (C) 2020 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:
+# 1.  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2.  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.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
+
+from webkitcorepy.version import Version
+version = Version(0, 0, 1)

Added: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/__init__.py (0 => 264425)


--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/__init__.py	                        (rev 0)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/__init__.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -0,0 +1,21 @@
+# Copyright (C) 2020 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:
+# 1.  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2.  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.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.

Copied: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py (from rev 264424, trunk/Tools/Scripts/webkitpy/common/version_unittest.py) (0 => 264425)


--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py	                        (rev 0)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/version_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -0,0 +1,154 @@
+# Copyright (C) 2020 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:
+# 1.  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2.  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.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
+
+import unittest
+
+from webkitcorepy import Version
+
+
+class VersionTestCase(unittest.TestCase):
+
+    def test_string_constructor(self):
+        v = Version.from_string('1.2.3.4.5')
+        self.assertEqual(v.major, 1)
+        self.assertEqual(v.minor, 2)
+        self.assertEqual(v.tiny, 3)
+        self.assertEqual(v.micro, 4)
+        self.assertEqual(v.nano, 5)
+
+    def test_from_list(self):
+        v = Version.from_iterable([1, 2, 3, 4, 5])
+        self.assertEqual(v.major, 1)
+        self.assertEqual(v.minor, 2)
+        self.assertEqual(v.tiny, 3)
+        self.assertEqual(v.micro, 4)
+        self.assertEqual(v.nano, 5)
+
+    def test_from_tuple(self):
+        v = v = Version.from_iterable((1, 2, 3))
+        self.assertEqual(v.major, 1)
+        self.assertEqual(v.minor, 2)
+        self.assertEqual(v.tiny, 3)
+
+    def test_int_constructor(self):
+        v = Version(1)
+        self.assertEqual(v.major, 1)
+        self.assertEqual(v.minor, 0)
+        self.assertEqual(v.tiny, 0)
+        self.assertEqual(v.micro, 0)
+        self.assertEqual(v.nano, 0)
+
+    def test_len(self):
+        self.assertEqual(len(Version(1, 2, 3, 4, 5)), 5)
+        self.assertEqual(len(Version()), 5)
+
+    def test_set_by_int(self):
+        v = Version()
+        v[0] = 1
+        self.assertEqual(v.major, 1)
+        v[1] = 2
+        self.assertEqual(v.minor, 2)
+        v[2] = 3
+        self.assertEqual(v.tiny, 3)
+        v[3] = 4
+        self.assertEqual(v.micro, 4)
+        v[4] = 5
+        self.assertEqual(v.nano, 5)
+
+    def test_set_by_string(self):
+        v = Version()
+        v['major'] = 1
+        self.assertEqual(v.major, 1)
+        v['minor'] = 2
+        self.assertEqual(v.minor, 2)
+        v['tiny'] = 3
+        self.assertEqual(v.tiny, 3)
+        v['micro'] = 4
+        self.assertEqual(v.micro, 4)
+        v['nano'] = 5
+        self.assertEqual(v.nano, 5)
+
+    def test_get_by_int(self):
+        v = Version(1, 2, 3, 4, 5)
+        self.assertEqual(v[0], v.major)
+        self.assertEqual(v[1], v.minor)
+        self.assertEqual(v[2], v.tiny)
+        self.assertEqual(v[3], v.micro)
+        self.assertEqual(v[4], v.nano)
+
+    def test_get_by_string(self):
+        v = Version(1, 2, 3, 4, 5)
+        self.assertEqual(v['major'], v.major)
+        self.assertEqual(v['minor'], v.minor)
+        self.assertEqual(v['tiny'], v.tiny)
+        self.assertEqual(v['micro'], v.micro)
+        self.assertEqual(v['nano'], v.nano)
+
+    def test_string(self):
+        self.assertEqual(str(Version(1, 2, 3)), '1.2.3')
+        self.assertEqual(str(Version(1, 2, 0)), '1.2')
+        self.assertEqual(str(Version(1, 2)), '1.2')
+        self.assertEqual(str(Version(0, 0, 3)), '0.0.3')
+
+    def test_contained_in(self):
+        self.assertTrue(Version(11, 1) in Version(11))
+        self.assertTrue(Version(11, 1, 2) in Version(11, 1))
+        self.assertFalse(Version(11) in Version(11, 1))
+        self.assertFalse(Version(11) in Version(11, 1, 2))
+        self.assertFalse(Version(11, 1) in Version(11, 1, 2))
+        self.assertTrue(Version(11) in Version(11))
+        self.assertTrue(Version(11, 1) in Version(11, 1))
+        self.assertTrue(Version(11, 1, 2) in Version(11, 1, 2))
+        self.assertTrue(Version(11) in Version(11, 0))
+        self.assertTrue(Version(11, 0) in Version(11))
+        self.assertTrue(Version(11) in Version(11, 0, 0))
+        self.assertTrue(Version(11, 0, 0) in Version(11))
+        self.assertTrue(Version(11, 1) in Version(11, 1, 0))
+        self.assertTrue(Version(11, 1, 0) in Version(11, 1))
+
+    def test_compare_versions(self):
+        self.assertEqual(Version(1, 2, 3), Version(1, 2, 3))
+        self.assertGreater(Version(1, 2, 4), Version(1, 2, 3))
+        self.assertGreater(Version(1, 3, 2), Version(1, 2, 3))
+        self.assertGreater(Version(2, 1, 1), Version(1, 2, 3))
+        self.assertNotEqual(Version(1, 2, 3), None)
+
+    def test_matches(self):
+        version = Version(1, 2, 3)
+        self.assertTrue(version.matches(''))
+        self.assertTrue(version.matches('1.*'))
+        self.assertFalse(version.matches('2.*'))
+
+        self.assertFalse(version.matches('!=1.*'))
+        self.assertTrue(version.matches('!=2.*'))
+
+        self.assertTrue(version.matches('<=2'))
+        self.assertFalse(version.matches('<=1'))
+
+        self.assertTrue(version.matches('<1.3'))
+        self.assertFalse(version.matches('<1.2'))
+
+        self.assertTrue(version.matches('>=1'))
+        self.assertFalse(version.matches('>=2'))
+
+        self.assertTrue(version.matches('>1.2'))
+        self.assertFalse(version.matches('>1.3'))

Copied: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/version.py (from rev 264424, trunk/Tools/Scripts/webkitpy/common/version.py) (0 => 264425)


--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/version.py	                        (rev 0)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/version.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -0,0 +1,188 @@
+# Copyright (C) 2020 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:
+# 1.  Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2.  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.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
+
+import collections
+import re
+
+from functools import total_ordering
+
+
+class Version(object):
+    MATCHES_RE = re.compile(r'(?P<operator>==|!=|>|<|>=|<=)?(?P<version>\d+(\.\d+)?(\.\d+)?(\.\*)?)')
+
+    @staticmethod
+    def from_string(string):
+        assert isinstance(string, str) or isinstance(string, unicode)
+        return Version.from_iterable(string.split('.'))
+
+    @staticmethod
+    def from_iterable(val):
+        result = Version()
+        for i in range(len(val)):
+            result[i] = int(val[i])
+        return result
+
+    @staticmethod
+    def from_name(name):
+        from webkitpy.common.version_name_map import VersionNameMap
+        return VersionNameMap.map().from_name(name)[1]
+
+    def __init__(self, major=0, minor=0, tiny=0, micro=0, nano=0):
+        self.major = int(major)
+        self.minor = int(minor)
+        self.tiny = int(tiny)
+        self.micro = int(micro)
+        self.nano = int(nano)
+
+    def __len__(self):
+        return 5
+
+    def __getitem__(self, key):
+        if isinstance(key, int):
+            if key == 0:
+                return self.major
+            elif key == 1:
+                return self.minor
+            elif key == 2:
+                return self.tiny
+            elif key == 3:
+                return self.micro
+            elif key == 4:
+                return self.nano
+            raise ValueError('Version key must be between 0 and 4')
+        elif isinstance(key, str):
+            if hasattr(self, key):
+                return getattr(self, key)
+            raise ValueError('Version key must be major, minor, tiny, micro or nano')
+        raise ValueError('Expected version key to be string or integer')
+
+    def __setitem__(self, key, value):
+        if isinstance(key, int):
+            if key == 0:
+                self.major = int(value)
+                return self.major
+            elif key == 1:
+                self.minor = int(value)
+                return self.minor
+            elif key == 2:
+                self.tiny = int(value)
+                return self.tiny
+            elif key == 3:
+                self.micro = int(value)
+                return self.micro
+            elif key == 4:
+                self.nano = int(value)
+                return self.nano
+            raise ValueError('Version key must be between 0 and 4')
+        elif isinstance(key, str):
+            if hasattr(self, key):
+                return setattr(self, key, value)
+            raise ValueError('Version key must be major, minor, tiny, micro or nano')
+        raise ValueError('Expected version key to be string or integer')
+
+    def matches(self, expressions):
+        does_match = None
+        for _expression_ in expressions.split(','):
+            match = self.MATCHES_RE.search(_expression_)
+            if not match:
+                continue
+            operator = match.group('operator') or '=='
+            if operator in ['==', '!=']:
+                version_match = True
+                split = match.group('version').split('.')
+                for index in range(len(split)):
+                    if '*' == split[index]:
+                        continue
+                    if str(self[index]) != split[index]:
+                        version_match = False
+                        break
+
+                if operator == '==':
+                    does_match = (does_match or False) | version_match
+                if version_match and operator == '!=':
+                    return False
+                continue
+
+            version = self.from_string(match.group('version').replace('*', '0'))
+            does_match = (does_match or False) | {
+                '>': lambda a, b: a > b,
+                '<': lambda a, b: a < b,
+                '>=': lambda a, b: a >= b,
+                '<=': lambda a, b: a <= b,
+            }[operator](self, version)
+
+        return True if does_match is None else does_match
+
+    # 11.2 is in 11, but 11 is not in 11.2
+    def __contains__(self, version):
+        assert isinstance(version, Version)
+        does_match = True
+        for i in range(len(version)):
+            if self[i] != version[i]:
+                does_match = False
+            if not does_match and self[i] != 0:
+                return False
+        return True
+
+    def __repr__(self):
+        len_to_print = 1
+        for i in range(len(self)):
+            if self[i]:
+                len_to_print = i + 1
+        result = str(self.major)
+        for i in range(len_to_print - 1):
+            result += '.{}'.format(self[i + 1])
+        return result
+
+    def __hash__(self):
+        result = 0
+        for index in range(len(self)):
+            result *= 1000
+            result += self[index]
+        return result
+
+    def __cmp__(self, other):
+        if other is None:
+            return 1
+        for i in range(len(self)):
+            diff = self[i] - other[i]
+            if diff:
+                return diff
+        return 0
+
+    def __eq__(self, other):
+        return self.__cmp__(other) == 0
+
+    def __ne__(self, other):
+        return self.__cmp__(other) != 0
+
+    def __lt__(self, other):
+        return self.__cmp__(other) < 0
+
+    def __le__(self, other):
+        return self.__cmp__(other) <= 0
+
+    def __gt__(self, other):
+        return self.__cmp__(other) > 0
+
+    def __ge__(self, other):
+        return self.__cmp__(other) >= 0

Modified: trunk/Tools/Scripts/webkitpy/__init__.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/__init__.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/__init__.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -11,3 +11,9 @@
 # code in this file so that callers can opt-in as they want.  This also
 # allows different callers to choose different initialization code,
 # as necessary.
+
+import os
+import sys
+
+libraries = os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))), 'libraries')
+sys.path.insert(0, os.path.join(libraries, 'webkitcorepy'))

Modified: trunk/Tools/Scripts/webkitpy/common/checkout/scm/scm_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/checkout/scm/scm_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/checkout/scm/scm_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -45,6 +45,8 @@
 import unittest
 
 from datetime import date
+from webkitcorepy import Version
+
 from webkitpy.common.checkout.checkout import Checkout
 from webkitpy.common.config.committers import Committer  # FIXME: This should not be needed
 from webkitpy.common.net.bugzilla import Attachment  # FIXME: This should not be needed
@@ -52,7 +54,6 @@
 from webkitpy.common.system.filesystem_mock import MockFileSystem
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.common.system.executive_mock import MockExecutive
-from webkitpy.common.version import Version
 from webkitpy.common.checkout.scm.git import Git, AmbiguousCommitError
 from webkitpy.common.checkout.scm.detection import detect_scm_system
 from webkitpy.common.checkout.scm.scm import SCM, CheckoutNeedsUpdate, commit_error_handler, AuthenticationError

Modified: trunk/Tools/Scripts/webkitpy/common/checkout/scm/svn.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/checkout/scm/svn.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/checkout/scm/svn.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -36,12 +36,13 @@
 import sys
 import tempfile
 
+from webkitcorepy import Version
+
 from webkitpy.common.checkout.scm.scm import AuthenticationError, SCM, commit_error_handler
 from webkitpy.common.config.urls import svn_server_host, svn_server_realm
 from webkitpy.common.memoized import memoized
 from webkitpy.common.system.executive import Executive, ScriptError
 from webkitpy.common.webkit_finder import WebKitFinder
-from webkitpy.common.version import Version
 from webkitpy.common.unicode_compatibility import encode_if_necessary
 
 

Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -33,8 +33,9 @@
 import sys
 import platform
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
-from webkitpy.common.version import Version
 from webkitpy.common.version_name_map import PUBLIC_TABLE, INTERNAL_TABLE, VersionNameMap
 from webkitpy.common.system.executive import Executive, ScriptError
 

Modified: trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/system/platforminfo_mock.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -27,7 +27,8 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from webkitpy.common.version import Version
+from webkitcorepy import Version
+
 from webkitpy.common.version_name_map import PUBLIC_TABLE, INTERNAL_TABLE, VersionNameMap
 
 

Modified: trunk/Tools/Scripts/webkitpy/common/version.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/version.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/version.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 Apple Inc. All rights reserved.
+# Copyright (C) 2020 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -20,128 +20,4 @@
 # 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.
 
-import collections
-
-
-class Version(object):
-
-    @staticmethod
-    def from_string(string):
-        assert isinstance(string, str) or isinstance(string, unicode)
-        return Version.from_iterable(string.split('.'))
-
-    @staticmethod
-    def from_iterable(val):
-        result = Version()
-        for i in range(len(val)):
-            result[i] = int(val[i])
-        return result
-
-    @staticmethod
-    def from_name(name):
-        from webkitpy.common.version_name_map import VersionNameMap
-        return VersionNameMap.map().from_name(name)[1]
-
-    def __init__(self, major=0, minor=0, tiny=0, micro=0, nano=0):
-        self.major = int(major)
-        self.minor = int(minor)
-        self.tiny = int(tiny)
-        self.micro = int(micro)
-        self.nano = int(nano)
-
-    def __len__(self):
-        return 5
-
-    def __getitem__(self, key):
-        if isinstance(key, int):
-            if key == 0:
-                return self.major
-            elif key == 1:
-                return self.minor
-            elif key == 2:
-                return self.tiny
-            elif key == 3:
-                return self.micro
-            elif key == 4:
-                return self.nano
-            raise ValueError('Version key must be between 0 and 4')
-        elif isinstance(key, str):
-            if hasattr(self, key):
-                return getattr(self, key)
-            raise ValueError('Version key must be major, minor, tiny, micro or nano')
-        raise ValueError('Expected version key to be string or integer')
-
-    def __setitem__(self, key, value):
-        if isinstance(key, int):
-            if key == 0:
-                self.major = int(value)
-                return self.major
-            elif key == 1:
-                self.minor = int(value)
-                return self.minor
-            elif key == 2:
-                self.tiny = int(value)
-                return self.tiny
-            elif key == 3:
-                self.micro = int(value)
-                return self.micro
-            elif key == 4:
-                self.nano = int(value)
-                return self.nano
-            raise ValueError('Version key must be between 0 and 4')
-        elif isinstance(key, str):
-            if hasattr(self, key):
-                return setattr(self, key, value)
-            raise ValueError('Version key must be major, minor, tiny, micro or nano')
-        raise ValueError('Expected version key to be string or integer')
-
-    # 11.2 is in 11, but 11 is not in 11.2
-    def __contains__(self, version):
-        assert isinstance(version, Version)
-        does_match = True
-        for i in range(len(version)):
-            if self[i] != version[i]:
-                does_match = False
-            if not does_match and self[i] != 0:
-                return False
-        return True
-
-    def __str__(self):
-        len_to_print = 1
-        for i in range(len(self)):
-            if self[i]:
-                len_to_print = i + 1
-        result = str(self.major)
-        for i in range(len_to_print - 1):
-            result += '.{}'.format(self[i + 1])
-        return result
-
-    def __hash__(self):
-        return hash(str(self))
-
-    def __cmp__(self, other):
-        if other is None:
-            return 1
-        for i in range(len(self)):
-            diff = self[i] - other[i]
-            if diff:
-                return diff
-        return 0
-
-    def __eq__(self, other):
-        return self.__cmp__(other) == 0
-
-    def __ne__(self, other):
-        return self.__cmp__(other) != 0
-
-    def __lt__(self, other):
-        return self.__cmp__(other) < 0
-
-    def __le__(self, other):
-        return self.__cmp__(other) <= 0
-
-    def __gt__(self, other):
-        return self.__cmp__(other) > 0
-
-    def __ge__(self, other):
-        return self.__cmp__(other) >= 0
+from webkitcorepy import Version

Modified: trunk/Tools/Scripts/webkitpy/common/version_name_map.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/version_name_map.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/version_name_map.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,8 +22,9 @@
 
 import re
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
-from webkitpy.common.version import Version
 
 
 PUBLIC_TABLE = 'public'

Modified: trunk/Tools/Scripts/webkitpy/common/version_name_map_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/version_name_map_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/version_name_map_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,8 +22,9 @@
 
 import unittest
 
+from webkitcorepy import Version
+
 from webkitpy.common.system.systemhost import SystemHost
-from webkitpy.common.version import Version
 from webkitpy.common.version_name_map import VersionNameMap
 
 

Deleted: trunk/Tools/Scripts/webkitpy/common/version_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/common/version_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/common/version_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -1,133 +0,0 @@
-# Copyright (C) 2017 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:
-# 1.  Redistributions of source code must retain the above copyright
-#     notice, this list of conditions and the following disclaimer.
-# 2.  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.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
-
-import unittest
-
-from webkitpy.common.version import Version
-
-
-class VersionTestCase(unittest.TestCase):
-
-    def test_string_constructor(self):
-        v = Version.from_string('1.2.3.4.5')
-        self.assertEqual(v.major, 1)
-        self.assertEqual(v.minor, 2)
-        self.assertEqual(v.tiny, 3)
-        self.assertEqual(v.micro, 4)
-        self.assertEqual(v.nano, 5)
-
-    def test_from_list(self):
-        v = Version.from_iterable([1, 2, 3, 4, 5])
-        self.assertEqual(v.major, 1)
-        self.assertEqual(v.minor, 2)
-        self.assertEqual(v.tiny, 3)
-        self.assertEqual(v.micro, 4)
-        self.assertEqual(v.nano, 5)
-
-    def test_from_tuple(self):
-        v = v = Version.from_iterable((1, 2, 3))
-        self.assertEqual(v.major, 1)
-        self.assertEqual(v.minor, 2)
-        self.assertEqual(v.tiny, 3)
-
-    def test_int_constructor(self):
-        v = Version(1)
-        self.assertEqual(v.major, 1)
-        self.assertEqual(v.minor, 0)
-        self.assertEqual(v.tiny, 0)
-        self.assertEqual(v.micro, 0)
-        self.assertEqual(v.nano, 0)
-
-    def test_len(self):
-        self.assertEqual(len(Version(1, 2, 3, 4, 5)), 5)
-        self.assertEqual(len(Version()), 5)
-
-    def test_set_by_int(self):
-        v = Version()
-        v[0] = 1
-        self.assertEqual(v.major, 1)
-        v[1] = 2
-        self.assertEqual(v.minor, 2)
-        v[2] = 3
-        self.assertEqual(v.tiny, 3)
-        v[3] = 4
-        self.assertEqual(v.micro, 4)
-        v[4] = 5
-        self.assertEqual(v.nano, 5)
-
-    def test_set_by_string(self):
-        v = Version()
-        v['major'] = 1
-        self.assertEqual(v.major, 1)
-        v['minor'] = 2
-        self.assertEqual(v.minor, 2)
-        v['tiny'] = 3
-        self.assertEqual(v.tiny, 3)
-        v['micro'] = 4
-        self.assertEqual(v.micro, 4)
-        v['nano'] = 5
-        self.assertEqual(v.nano, 5)
-
-    def test_get_by_int(self):
-        v = Version(1, 2, 3, 4, 5)
-        self.assertEqual(v[0], v.major)
-        self.assertEqual(v[1], v.minor)
-        self.assertEqual(v[2], v.tiny)
-        self.assertEqual(v[3], v.micro)
-        self.assertEqual(v[4], v.nano)
-
-    def test_get_by_string(self):
-        v = Version(1, 2, 3, 4, 5)
-        self.assertEqual(v['major'], v.major)
-        self.assertEqual(v['minor'], v.minor)
-        self.assertEqual(v['tiny'], v.tiny)
-        self.assertEqual(v['micro'], v.micro)
-        self.assertEqual(v['nano'], v.nano)
-
-    def test_string(self):
-        self.assertEqual(str(Version(1, 2, 3)), '1.2.3')
-        self.assertEqual(str(Version(1, 2, 0)), '1.2')
-        self.assertEqual(str(Version(1, 2)), '1.2')
-        self.assertEqual(str(Version(0, 0, 3)), '0.0.3')
-
-    def test_contained_in(self):
-        self.assertTrue(Version(11, 1) in Version(11))
-        self.assertTrue(Version(11, 1, 2) in Version(11, 1))
-        self.assertFalse(Version(11) in Version(11, 1))
-        self.assertFalse(Version(11) in Version(11, 1, 2))
-        self.assertFalse(Version(11, 1) in Version(11, 1, 2))
-        self.assertTrue(Version(11) in Version(11))
-        self.assertTrue(Version(11, 1) in Version(11, 1))
-        self.assertTrue(Version(11, 1, 2) in Version(11, 1, 2))
-        self.assertTrue(Version(11) in Version(11, 0))
-        self.assertTrue(Version(11, 0) in Version(11))
-        self.assertTrue(Version(11) in Version(11, 0, 0))
-        self.assertTrue(Version(11, 0, 0) in Version(11))
-        self.assertTrue(Version(11, 1) in Version(11, 1, 0))
-        self.assertTrue(Version(11, 1, 0) in Version(11, 1))
-
-    def test_compare_versions(self):
-        self.assertEqual(Version(1, 2, 3), Version(1, 2, 3))
-        self.assertGreater(Version(1, 2, 4), Version(1, 2, 3))
-        self.assertGreater(Version(1, 3, 2), Version(1, 2, 3))
-        self.assertGreater(Version(2, 1, 1), Version(1, 2, 3))
-        self.assertNotEqual(Version(1, 2, 3), None)

Modified: trunk/Tools/Scripts/webkitpy/port/factory_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/factory_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/factory_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -29,9 +29,10 @@
 
 import unittest
 
+from webkitcorepy import Version
+
 from webkitpy.tool.mocktool import MockOptions
 from webkitpy.common.system.systemhost_mock import MockSystemHost
-from webkitpy.common.version import Version
 
 from webkitpy.port import factory
 from webkitpy.port import gtk

Modified: trunk/Tools/Scripts/webkitpy/port/ios.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/ios.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/ios.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -21,12 +21,10 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 import logging
-import traceback
 
-from webkitpy.common.memoized import memoized
-from webkitpy.common.version import Version
+from webkitcorepy import Version
+
 from webkitpy.common.version_name_map import VersionNameMap, INTERNAL_TABLE
-from webkitpy.layout_tests.models.test_configuration import TestConfiguration
 from webkitpy.port.config import apple_additions
 from webkitpy.port.device_port import DevicePort
 from webkitpy.port.simulator_process import SimulatorProcess

Modified: trunk/Tools/Scripts/webkitpy/port/ios_device.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/ios_device.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/ios_device.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,9 +22,10 @@
 
 import logging
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
 from webkitpy.common.system.crashlogs import CrashLogs
-from webkitpy.common.version import Version
 from webkitpy.port.config import apple_additions
 from webkitpy.port.ios import IOSPort
 

Modified: trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/ios_device_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,9 +22,10 @@
 
 import time
 
+from webkitcorepy import Version
+
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
-from webkitpy.common.version import Version
 from webkitpy.port.config import clear_cached_configuration
 from webkitpy.port.ios_device import IOSDevicePort
 from webkitpy.port import ios_testcase

Modified: trunk/Tools/Scripts/webkitpy/port/ios_simulator.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/ios_simulator.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/ios_simulator.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,8 +22,9 @@
 
 import logging
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
-from webkitpy.common.version import Version
 from webkitpy.port.config import apple_additions, Config
 from webkitpy.port.ios import IOSPort
 from webkitpy.xcode.device_type import DeviceType

Modified: trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/ios_simulator_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -20,11 +20,12 @@
 # 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.
 
+from webkitcorepy import Version
+
 from webkitpy.port.ios_simulator import IOSSimulatorPort
 from webkitpy.port import ios_testcase
 from webkitpy.port import port_testcase
 from webkitpy.common.system.outputcapture import OutputCapture
-from webkitpy.common.version import Version
 from webkitpy.port.config import clear_cached_configuration
 from webkitpy.tool.mocktool import MockOptions
 from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError

Modified: trunk/Tools/Scripts/webkitpy/port/ios_testcase.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/ios_testcase.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/ios_testcase.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -20,7 +20,8 @@
 # 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.
 
-from webkitpy.common.version import Version
+from webkitcorepy import Version
+
 from webkitpy.port import darwin_testcase
 
 

Modified: trunk/Tools/Scripts/webkitpy/port/mac.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/mac.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/mac.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -31,9 +31,10 @@
 import os
 import re
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
 from webkitpy.common.system.executive import ScriptError
-from webkitpy.common.version import Version
 from webkitpy.common.version_name_map import PUBLIC_TABLE, INTERNAL_TABLE
 from webkitpy.common.version_name_map import VersionNameMap
 from webkitpy.port.config import apple_additions, Config

Modified: trunk/Tools/Scripts/webkitpy/port/mac_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/mac_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/mac_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -27,6 +27,8 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+from webkitcorepy import Version
+
 from webkitpy.port.mac import MacPort
 from webkitpy.port import darwin_testcase
 from webkitpy.port import port_testcase
@@ -33,7 +35,6 @@
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.tool.mocktool import MockOptions
 from webkitpy.common.system.executive_mock import MockExecutive, MockExecutive2, ScriptError
-from webkitpy.common.version import Version
 from webkitpy.common.version_name_map import VersionNameMap
 
 

Modified: trunk/Tools/Scripts/webkitpy/port/watch.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/watch.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/watch.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,8 +22,8 @@
 
 import logging
 
-from webkitpy.common.memoized import memoized
-from webkitpy.common.version import Version
+from webkitcorepy import Version
+
 from webkitpy.common.version_name_map import VersionNameMap, INTERNAL_TABLE
 from webkitpy.port.config import apple_additions
 from webkitpy.port.device_port import DevicePort

Modified: trunk/Tools/Scripts/webkitpy/port/watch_device.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/watch_device.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/watch_device.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,9 +22,10 @@
 
 import logging
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
 from webkitpy.common.system.crashlogs import CrashLogs
-from webkitpy.common.version import Version
 from webkitpy.port.config import apple_additions
 from webkitpy.port.watch import WatchPort
 

Modified: trunk/Tools/Scripts/webkitpy/port/watch_simulator.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/watch_simulator.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/watch_simulator.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,8 +22,9 @@
 
 import logging
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
-from webkitpy.common.version import Version
 from webkitpy.port.config import apple_additions
 from webkitpy.port.watch import WatchPort
 from webkitpy.xcode.device_type import DeviceType

Modified: trunk/Tools/Scripts/webkitpy/port/watch_simulator_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/watch_simulator_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/watch_simulator_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -20,9 +20,10 @@
 # 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.
 
+from webkitcorepy import Version
+
 from webkitpy.common.system.executive_mock import MockExecutive2, ScriptError
 from webkitpy.common.system.outputcapture import OutputCapture
-from webkitpy.common.version import Version
 from webkitpy.port.config import clear_cached_configuration
 from webkitpy.port.watch_simulator import WatchSimulatorPort
 from webkitpy.port import watch_testcase

Modified: trunk/Tools/Scripts/webkitpy/port/watch_testcase.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/watch_testcase.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/watch_testcase.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -1,4 +1,27 @@
-from webkitpy.common.version import Version
+# Copyright (C) 2020 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:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  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.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
+
+from webkitcorepy import Version
+
 from webkitpy.port import darwin_testcase
 from webkitpy.tool.mocktool import MockOptions
 

Modified: trunk/Tools/Scripts/webkitpy/port/win.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/win.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/win.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -35,11 +35,11 @@
 import sys
 import time
 
+from webkitcorepy import Version
+
 from webkitpy.common.system.crashlogs import CrashLogs
 from webkitpy.common.system.systemhost import SystemHost
-from webkitpy.common.system.executive import Executive
 from webkitpy.common.system.path import abspath_to_uri, cygpath
-from webkitpy.common.version import Version
 from webkitpy.common.version_name_map import VersionNameMap
 from webkitpy.port.apple import ApplePort
 from webkitpy.port.config import apple_additions

Modified: trunk/Tools/Scripts/webkitpy/port/win_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/port/win_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/port/win_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -26,10 +26,11 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+from webkitcorepy import Version
+
 from webkitpy.common.system.executive_mock import MockExecutive
 from webkitpy.common.system.outputcapture import OutputCapture
 from webkitpy.common.system.systemhost_mock import MockSystemHost
-from webkitpy.common.version import Version
 from webkitpy.common.version_name_map import PUBLIC_TABLE, VersionNameMap
 from webkitpy.port import port_testcase
 from webkitpy.port.win import WinPort

Modified: trunk/Tools/Scripts/webkitpy/test/main.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/test/main.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/test/main.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -62,6 +62,7 @@
 
     tester = Tester()
     tester.add_tree(os.path.join(_webkit_root, 'Tools', 'Scripts'), 'webkitpy')
+    tester.add_tree(os.path.join(_webkit_root, 'Tools', 'Scripts', 'libraries', 'webkitcorepy'), 'webkitcorepy')
 
     # There is no WebKit2 on Windows, so we don't need to run WebKit2 unittests on it.
     if not (sys.platform.startswith('win') or sys.platform == 'cygwin'):

Modified: trunk/Tools/Scripts/webkitpy/xcode/device_type_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/xcode/device_type_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/xcode/device_type_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -22,7 +22,8 @@
 
 import unittest
 
-from webkitpy.common.version import Version
+from webkitcorepy import Version
+
 from webkitpy.xcode.device_type import DeviceType
 
 

Modified: trunk/Tools/Scripts/webkitpy/xcode/simulated_device.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/xcode/simulated_device.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/xcode/simulated_device.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -27,11 +27,12 @@
 import re
 import time
 
+from webkitcorepy import Version
+
 from webkitpy.common.memoized import memoized
 from webkitpy.common.system.executive import ScriptError
 from webkitpy.common.system.systemhost import SystemHost
 from webkitpy.common.timeout_context import Timeout
-from webkitpy.common.version import Version
 from webkitpy.port.device import Device
 from webkitpy.xcode.device_type import DeviceType
 

Modified: trunk/Tools/Scripts/webkitpy/xcode/simulated_device_unittest.py (264424 => 264425)


--- trunk/Tools/Scripts/webkitpy/xcode/simulated_device_unittest.py	2020-07-15 21:35:11 UTC (rev 264424)
+++ trunk/Tools/Scripts/webkitpy/xcode/simulated_device_unittest.py	2020-07-15 21:39:33 UTC (rev 264425)
@@ -20,6 +20,18 @@
 # 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.
 
+import json
+import unittest
+
+from webkitcorepy import Version
+
+from webkitpy.common.system.executive_mock import MockExecutive2
+from webkitpy.common.system.filesystem_mock import MockFileSystem
+from webkitpy.common.system.systemhost_mock import MockSystemHost
+from webkitpy.common.unicode_compatibility import encode_if_necessary
+from webkitpy.xcode.device_type import DeviceType
+from webkitpy.xcode.simulated_device import DeviceRequest, SimulatedDeviceManager, SimulatedDevice
+
 simctl_json_output = """{
  "devicetypes" : [
    {
@@ -495,18 +507,6 @@
  ]
 }"""
 
-import json
-import unittest
-
-from webkitpy.common.system.executive_mock import MockExecutive2
-from webkitpy.common.system.filesystem_mock import MockFileSystem
-from webkitpy.common.system.systemhost_mock import MockSystemHost
-from webkitpy.common.version import Version
-from webkitpy.common.unicode_compatibility import encode_if_necessary
-from webkitpy.xcode.device_type import DeviceType
-from webkitpy.xcode.simulated_device import DeviceRequest, SimulatedDeviceManager, SimulatedDevice
-
-
 class SimulatedDeviceTest(unittest.TestCase):
 
     @staticmethod
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to