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:
# porting a module requires 45 minutes minimaly
port_minimal_time: 45
# Ignored module list
ignored_module_list: []
# a migration cost more for each version
port_per_version: 15
# porting a module requires 45 minutes minimaly
port_minimal_time: 45
# Porting 120 lines of Python code costs 1 hour
port_per_python_line_time: 0.5
# a migration cost more for each version
port_per_version: 15
# Porting 120 lines of Javascript code costs 1 hour
port_per_javascript_line_time: 0.5
# Porting 120 lines of Python code costs 1 hour
port_per_python_line_time: 0.5
# Porting 10 lines of XML costs 1 minute
port_per_xml_line_time: 0.10
# Porting 120 lines of Javascript code costs 1 hour
port_per_javascript_line_time: 0.5
# Minimal time for Openupgrade PR
open_upgrade_minimal_time: 10
# Porting 10 lines of XML costs 1 minute
port_per_xml_line_time: 0.10
# time for a line of model in the openupgrade_analysis.txt
openupgrade_model_line_time: 10
# Minimal time for Openupgrade PR
open_upgrade_minimal_time: 10
# Time for a line of field in the openupgrade_analysis.txt
openupgrade_field_line_time: 5
# time for a line of model in the openupgrade_analysis.txt
openupgrade_model_line_time: 10
# Time for a line of XML in the openupgrade_analysis.txt
openupgrade_xml_line_time: 0.1
# Time for a line of field in the openupgrade_analysis.txt
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.repository = repository_name
self.unique_name = "%s.%s" % (repository_name, module_name)
self.ignored = self.is_ignored(ctx, module_name)
self.module_versions = {}
if not repository_name:
self.module_type = "not_found"
@ -335,6 +336,11 @@ class OdooModule(object):
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):
res = self.module_versions.get(current_version, False)
return res
@ -494,7 +500,7 @@ class OdooModuleVersion(object):
self.version = version
self.odoo_module = odoo_module
self.addon_path = addon_path
self.state = state
self.state = "ignored" if odoo_module.ignored else state
self.target_module = target_module
self.openupgrade_state = ""
self.python_code = 0
@ -535,7 +541,7 @@ class OdooModuleVersion(object):
openupgrade_field_line_time = settings["openupgrade_field_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
return
@ -734,7 +740,7 @@ class OdooModuleVersion(object):
return "lightgreen"
else:
# 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
# or merged
return "lightgray"
@ -765,6 +771,8 @@ class OdooModuleVersion(object):
return "Merged into %s" % self.target_module
elif self.state == "renamed":
return "Renamed into %s" % self.target_module
elif self.state == "ignored":
return "Ignored"
elif self.state == "normal_loss":
return ""

View File

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

View File

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