[MO] use revision hashes to compare IE & MO versions (#10230)
* fixed version comparison: for comparsion extracted hashes are used * shortened 7 -> 11 to match the current version fromat from nightly * corrected regex, added comparing by minimal hash len
This commit is contained in:
parent
897e2acd91
commit
653ed4a34c
@ -71,7 +71,16 @@ def import_core_modules(silent: bool, path_to_module: str):
|
||||
print("{}: \t{}".format("Model Optimizer version", mo_version))
|
||||
|
||||
versions_mismatch = False
|
||||
if mo_version != ie_version:
|
||||
|
||||
mo_hash = v.extract_hash_from_version(mo_version)
|
||||
ie_hash = v.extract_hash_from_version(ie_version)
|
||||
|
||||
if mo_hash is not None and ie_hash is not None:
|
||||
min_length = min(len(mo_hash), len(ie_hash))
|
||||
mo_hash = mo_hash[:min_length]
|
||||
ie_hash = ie_hash[:min_length]
|
||||
|
||||
if mo_hash != ie_hash or mo_hash is None or ie_hash is None:
|
||||
versions_mismatch = True
|
||||
extracted_mo_release_version = v.extract_release_version(mo_version)
|
||||
mo_is_custom = extracted_mo_release_version == (None, None)
|
||||
|
@ -8,8 +8,6 @@ import sys
|
||||
|
||||
from openvino.tools.mo.utils.utils import get_mo_root_dir
|
||||
|
||||
mo_major_and_minor_version = 2022.1
|
||||
|
||||
|
||||
def get_version_file_path():
|
||||
return os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir, "version.txt")
|
||||
@ -24,7 +22,7 @@ def generate_mo_version():
|
||||
mo_dir = get_mo_root_dir()
|
||||
branch_name = subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd=mo_dir).strip().decode()
|
||||
commit_hash = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=mo_dir).strip().decode()
|
||||
return "{}.custom_{}_{}".format(mo_major_and_minor_version, branch_name, commit_hash)
|
||||
return "custom_{}_{}".format(branch_name, commit_hash)
|
||||
except Exception as e:
|
||||
return "unknown version"
|
||||
|
||||
@ -75,3 +73,11 @@ def get_simplified_ie_version(env=dict(), version=None):
|
||||
if m and len(m.groups()) == 3:
|
||||
return simplify_version(m.group(3))
|
||||
return simplify_version(version)
|
||||
|
||||
|
||||
def extract_hash_from_version(full_version: str):
|
||||
res = re.findall(r'[-_]([a-f0-9]{7,40})', full_version)
|
||||
if len(res) > 0:
|
||||
return res[0]
|
||||
else:
|
||||
return None
|
||||
|
@ -6,7 +6,8 @@ import unittest.mock as mock
|
||||
from unittest.mock import mock_open
|
||||
from unittest.mock import patch
|
||||
|
||||
from openvino.tools.mo.utils.version import get_version, extract_release_version, get_simplified_ie_version, get_simplified_mo_version
|
||||
from openvino.tools.mo.utils.version import get_version, extract_release_version, get_simplified_ie_version, \
|
||||
get_simplified_mo_version, extract_hash_from_version
|
||||
|
||||
|
||||
class TestingVersion(unittest.TestCase):
|
||||
@ -62,4 +63,30 @@ class TestingVersion(unittest.TestCase):
|
||||
self.assertEqual(get_simplified_ie_version(version="2.1.custom_my/branch/3_4c8eae"), "custom")
|
||||
|
||||
def test_simplify_ie_version_custom(self):
|
||||
self.assertEqual(get_simplified_ie_version(version="custom_my/branch/3_4c8eae"), "custom")
|
||||
self.assertEqual(get_simplified_ie_version(version="custom_my/branch/3_4c8eae"), "custom")
|
||||
|
||||
def test_extracting_version_hash_full_with_build_number(self):
|
||||
self.assertEqual(extract_hash_from_version(full_version="2021.1.0-1028-55e4d5673a8"), "55e4d5673a8")
|
||||
|
||||
def test_extracting_version_hash_full_with_build_number_dirty(self):
|
||||
self.assertEqual(extract_hash_from_version(full_version="2021.1.0-1028-55e4d5673a8-dirty"), "55e4d5673a8")
|
||||
|
||||
def test_extracting_version_hash_full_with_build_number_private(self):
|
||||
self.assertEqual(extract_hash_from_version(full_version="2021.1.0-1028-55e4d5673a8-private"), "55e4d5673a8")
|
||||
|
||||
def test_extracting_version_hash_custom_master(self):
|
||||
self.assertEqual(extract_hash_from_version(full_version="custom_master_55e4d5673a833abab638ee9837bc87a0b7c3a043"),
|
||||
"55e4d5673a833abab638ee9837bc87a0b7c3a043")
|
||||
|
||||
def test_extracting_version_hash_mo_format(self):
|
||||
self.assertEqual(extract_hash_from_version(full_version="2022.1.custom_master_55e4d5673a833abab638ee9837bc87a0b7c3a043"),
|
||||
"55e4d5673a833abab638ee9837bc87a0b7c3a043")
|
||||
|
||||
def test_negative_extracting_version_hash(self):
|
||||
self.assertEqual(extract_hash_from_version(full_version="2022.1.custom_master"),
|
||||
None)
|
||||
|
||||
# format from the current nightly wheel
|
||||
def test_extracting_version_hash_from_old_format(self):
|
||||
self.assertEqual(extract_hash_from_version(full_version="2022.1.0-6311-a90bb1f"),
|
||||
"a90bb1f")
|
||||
|
Loading…
Reference in New Issue
Block a user