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