Update bump.py for Trunk Stable

The next year's compatbility matrix is added to a conditional statement
so it's only available on in-development release configurations.

The curent year's compatibility matrix is moved from the conditional
statement to always be added to all release configs.

The next year's compatibility matrix level is set to the next year's
level after copying the current matrix file.

Test: ./bump.py
Bug: 279809333

Change-Id: Id711ba79110c8775f715eddf37a9bf51b073ec91
This commit is contained in:
Devin Moore 2024-02-01 21:39:36 +00:00
parent 7ad5797272
commit 4be20f792a

View file

@ -47,6 +47,7 @@ class Bump(object):
self.current_level = cmdline_args.current self.current_level = cmdline_args.current
self.current_module_name = f"framework_compatibility_matrix.{self.current_level}.xml" self.current_module_name = f"framework_compatibility_matrix.{self.current_level}.xml"
self.current_xml = self.interfaces_dir / f"compatibility_matrices/compatibility_matrix.{self.current_level}.xml" self.current_xml = self.interfaces_dir / f"compatibility_matrices/compatibility_matrix.{self.current_level}.xml"
self.device_module_name = "framework_compatibility_matrix.device.xml"
self.next_level = cmdline_args.next self.next_level = cmdline_args.next
self.next_module_name = f"framework_compatibility_matrix.{self.next_level}.xml" self.next_module_name = f"framework_compatibility_matrix.{self.next_level}.xml"
@ -81,7 +82,8 @@ class Bump(object):
]) ])
def copy_matrix(self): def copy_matrix(self):
shutil.copyfile(self.current_xml, self.next_xml) with open(self.current_xml) as f_current, open(self.next_xml, "w") as f_next:
f_next.write(f_current.read().replace(f"level=\"{self.current_level}\"", f"level=\"{self.next_level}\""))
def edit_android_bp(self): def edit_android_bp(self):
android_bp = self.interfaces_dir / "compatibility_matrices/Android.bp" android_bp = self.interfaces_dir / "compatibility_matrices/Android.bp"
@ -124,19 +126,20 @@ class Bump(object):
def edit_android_mk(self): def edit_android_mk(self):
android_mk = self.interfaces_dir / "compatibility_matrices/Android.mk" android_mk = self.interfaces_dir / "compatibility_matrices/Android.mk"
lines = []
with open(android_mk) as f: with open(android_mk) as f:
if self.next_module_name in f.read(): if self.next_module_name in f.read():
return return
f.seek(0) f.seek(0)
lines = f.readlines() for line in f:
current_module_line_number = None if f" {self.device_module_name} \\\n" in line:
for line_number, line in enumerate(lines): lines.append(f" {self.current_module_name} \\\n")
if self.current_module_name in line:
current_module_line_number = line_number if self.current_module_name in line:
break lines.append(f" {self.next_module_name} \\\n")
assert current_module_line_number is not None else:
lines.insert(current_module_line_number + 1, lines.append(line)
f" {self.next_module_name} \\\n")
with open(android_mk, "w") as f: with open(android_mk, "w") as f:
f.write("".join(lines)) f.write("".join(lines))