Skip to content

Commit b3aff43

Browse files
committed
simplified the logic
1 parent c27510f commit b3aff43

File tree

2 files changed

+33
-28
lines changed

2 files changed

+33
-28
lines changed

hermetic_build/library_generation/owlbot/src/fix_poms.py

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -358,11 +358,8 @@ def main(versions_file, monorepo):
358358
with open(".repo-metadata.json", "r") as fp:
359359
repo_metadata = json.load(fp)
360360
group_id, artifact_id = repo_metadata["distribution_name"].split(":")
361-
# Derive the Release Please key in java-xxx format
362-
base_name = re.sub(
363-
r"^(google-cloud-|grpc-google-cloud-|proto-google-cloud-)", "", artifact_id
364-
)
365-
release_please_key = base_name
361+
# Use api_shortname from repo_metadata as the key for versions.txt
362+
release_please_key = repo_metadata["api_shortname"]
366363
name = repo_metadata["name_pretty"]
367364
existing_modules = load_versions(versions_file, group_id)
368365
original_modules = set(existing_modules.keys())
@@ -598,38 +595,45 @@ def main(versions_file, monorepo):
598595
)
599596

600597
print(f"updating modules in {versions_file}")
601-
# The parent pom is not a standalone artifact, so we don't add it to
602-
# versions.txt.
603-
existing_modules.pop(parent_artifact_id)
604-
605-
# Determine if new modules were added.
606-
added_modules = set(existing_modules.keys()) - original_modules
607-
if added_modules:
608-
print(f"New modules detected: {added_modules}")
609-
# Remove all the individual components that were just added.
610-
for key in added_modules:
611-
existing_modules.pop(key)
612-
# Add the single consolidated entry instead.
613-
existing_modules[release_please_key] = module.Module(
598+
599+
# existing_modules contains all components, needed for pom.xml rendering.
600+
601+
versions_txt_modules = {}
602+
# Start with all modules that were in the original versions.txt
603+
for key in original_modules:
604+
if key in existing_modules:
605+
versions_txt_modules[key] = existing_modules[key]
606+
607+
# If this is a new library (release_please_key was not in original_modules),
608+
# add the single consolidated entry to our versions.txt dictionary.
609+
if release_please_key not in original_modules:
610+
versions_txt_modules[release_please_key] = module.Module(
614611
group_id=group_id,
615612
artifact_id=release_please_key,
616613
version=main_module.version,
617614
release_version=main_module.release_version,
618615
)
619616

620-
# add extra modules to versions.txt
617+
# Add extra managed modules if they aren't already included
621618
for dependency_module in extra_managed_modules:
622-
if dependency_module not in existing_modules:
623-
existing_modules[dependency_module] = module.Module(
624-
group_id=__proto_group_id(group_id),
625-
artifact_id=dependency_module,
626-
version=main_module.version,
627-
release_version=main_module.release_version,
628-
)
619+
if dependency_module not in versions_txt_modules:
620+
# These should already be in existing_modules if loaded from versions.txt
621+
if dependency_module in existing_modules:
622+
versions_txt_modules[dependency_module] = existing_modules[dependency_module]
623+
# This else block should ideally not be reached in the monorepo case.
624+
else:
625+
versions_txt_modules[dependency_module] = module.Module(
626+
group_id=__proto_group_id(group_id),
627+
artifact_id=dependency_module,
628+
version=main_module.version,
629+
release_version=main_module.release_version,
630+
)
631+
632+
# Render versions.txt using the specially prepared versions_txt_modules
629633
templates.render(
630634
template_name="versions.txt.j2",
631635
output_name=versions_file,
632-
modules=existing_modules.values(),
636+
modules=versions_txt_modules.values(),
633637
)
634638

635639

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Format:
22
# module:released-version:current-version
33

4+
admanager:0.0.0:0.0.1-SNAPSHOT
45
google-cloud-java:1.36.0:1.37.0-SNAPSHOT
5-
ad-manager:0.1.0:0.2.0-SNAPSHOT
66
proto-ad-manager-v1:0.1.0:0.2.0-SNAPSHOT
7+
ad-manager:0.1.0:0.2.0-SNAPSHOT

0 commit comments

Comments
 (0)