Merge branch '32-ignore-module-list' into 'main'

Resolve "[oow estimate-workload] Add ignore modules list"

Closes #32

See merge request odoo-openupgrade-wizard/odoo-openupgrade-wizard!30
This commit is contained in:
LE GAL SYLVAIN 2023-03-17 10:13:58 +00:00
commit 6a7ad7ec37
4 changed files with 54 additions and 41 deletions

View File

@ -35,29 +35,32 @@ migration_steps:
workload_settings: workload_settings:
# porting a module requires 45 minutes minimaly # Ignored module list
port_minimal_time: 45 ignored_module_list: []
# a migration cost more for each version # porting a module requires 45 minutes minimaly
port_per_version: 15 port_minimal_time: 45
# Porting 120 lines of Python code costs 1 hour # a migration cost more for each version
port_per_python_line_time: 0.5 port_per_version: 15
# Porting 120 lines of Javascript code costs 1 hour # Porting 120 lines of Python code costs 1 hour
port_per_javascript_line_time: 0.5 port_per_python_line_time: 0.5
# Porting 10 lines of XML costs 1 minute # Porting 120 lines of Javascript code costs 1 hour
port_per_xml_line_time: 0.10 port_per_javascript_line_time: 0.5
# Minimal time for Openupgrade PR # Porting 10 lines of XML costs 1 minute
open_upgrade_minimal_time: 10 port_per_xml_line_time: 0.10
# time for a line of model in the openupgrade_analysis.txt # Minimal time for Openupgrade PR
openupgrade_model_line_time: 10 open_upgrade_minimal_time: 10
# Time for a line of field in the openupgrade_analysis.txt # time for a line of model in the openupgrade_analysis.txt
openupgrade_field_line_time: 5 openupgrade_model_line_time: 10
# Time for a line of XML in the openupgrade_analysis.txt # Time for a line of field in the openupgrade_analysis.txt
openupgrade_xml_line_time: 0.1 openupgrade_field_line_time: 5
# Time for a line of XML in the openupgrade_analysis.txt
openupgrade_xml_line_time: 0.1

View File

@ -318,6 +318,7 @@ class OdooModule(object):
self.name = module_name self.name = module_name
self.repository = repository_name self.repository = repository_name
self.unique_name = "%s.%s" % (repository_name, module_name) self.unique_name = "%s.%s" % (repository_name, module_name)
self.ignored = self.is_ignored(ctx, module_name)
self.module_versions = {} self.module_versions = {}
if not repository_name: if not repository_name:
self.module_type = "not_found" self.module_type = "not_found"
@ -335,6 +336,11 @@ class OdooModule(object):
for _, module_version in self.module_versions.items() for _, module_version in self.module_versions.items()
) )
def is_ignored(self, ctx, module_name):
"""Return true if module should be ignored"""
settings = ctx.obj["config"]["workload_settings"]
return module_name in settings["ignored_module_list"]
def get_module_version(self, current_version): def get_module_version(self, current_version):
res = self.module_versions.get(current_version, False) res = self.module_versions.get(current_version, False)
return res return res
@ -494,7 +500,7 @@ class OdooModuleVersion(object):
self.version = version self.version = version
self.odoo_module = odoo_module self.odoo_module = odoo_module
self.addon_path = addon_path self.addon_path = addon_path
self.state = state self.state = "ignored" if odoo_module.ignored else state
self.target_module = target_module self.target_module = target_module
self.openupgrade_state = "" self.openupgrade_state = ""
self.python_code = 0 self.python_code = 0
@ -535,7 +541,7 @@ class OdooModuleVersion(object):
openupgrade_field_line_time = settings["openupgrade_field_line_time"] openupgrade_field_line_time = settings["openupgrade_field_line_time"]
openupgrade_xml_line_time = settings["openupgrade_xml_line_time"] openupgrade_xml_line_time = settings["openupgrade_xml_line_time"]
if self.state in ["merged", "renamed", "normal_loss"]: if self.state in ["merged", "renamed", "normal_loss", "ignored"]:
# The module has been moved, nothing to do # The module has been moved, nothing to do
return return
@ -734,7 +740,7 @@ class OdooModuleVersion(object):
return "lightgreen" return "lightgreen"
else: else:
# The module doesn't exist in the current version # The module doesn't exist in the current version
if self.state in ["merged", "renamed", "normal_loss"]: if self.state in ["merged", "renamed", "normal_loss", "ignored"]:
# Normal case, the previous version has been renamed # Normal case, the previous version has been renamed
# or merged # or merged
return "lightgray" return "lightgray"
@ -765,6 +771,8 @@ class OdooModuleVersion(object):
return "Merged into %s" % self.target_module return "Merged into %s" % self.target_module
elif self.state == "renamed": elif self.state == "renamed":
return "Renamed into %s" % self.target_module return "Renamed into %s" % self.target_module
elif self.state == "ignored":
return "Ignored"
elif self.state == "normal_loss": elif self.state == "normal_loss":
return "" return ""

View File

@ -78,8 +78,7 @@ def ensure_file_exists_from_template(
with open(file_path, "w") as f: with open(file_path, "w") as f:
logger.info(log_text) logger.info(log_text)
f.write(output) print(output, file=f)
f.close()
def git_aggregate(folder_path: Path, config_path: Path, jobs: int): def git_aggregate(folder_path: Path, config_path: Path, jobs: int):

View File

@ -42,29 +42,32 @@ migration_steps:
workload_settings: workload_settings:
# porting a module requires 45 minutes minimaly # Ignored module list
port_minimal_time: 45 ignored_module_list: []
# a migration cost more for each version # porting a module requires 45 minutes minimaly
port_per_version: 15 port_minimal_time: 45
# Porting 120 lines of Python code costs 1 hour # a migration cost more for each version
port_per_python_line_time: 0.5 port_per_version: 15
# Porting 120 lines of Javascript code costs 1 hour # Porting 120 lines of Python code costs 1 hour
port_per_javascript_line_time: 0.5 port_per_python_line_time: 0.5
# Porting 10 lines of XML costs 1 minute # Porting 120 lines of Javascript code costs 1 hour
port_per_xml_line_time: 0.10 port_per_javascript_line_time: 0.5
# Minimal time for Openupgrade PR # Porting 10 lines of XML costs 1 minute
open_upgrade_minimal_time: 10 port_per_xml_line_time: 0.10
# time for a line of model in the openupgrade_analysis.txt # Minimal time for Openupgrade PR
openupgrade_model_line_time: 10 open_upgrade_minimal_time: 10
# Time for a line of field in the openupgrade_analysis.txt # time for a line of model in the openupgrade_analysis.txt
openupgrade_field_line_time: 5 openupgrade_model_line_time: 10
# Time for a line of XML in the openupgrade_analysis.txt # Time for a line of field in the openupgrade_analysis.txt
openupgrade_xml_line_time: 0.1 openupgrade_field_line_time: 5
# Time for a line of XML in the openupgrade_analysis.txt
openupgrade_xml_line_time: 0.1