@@ -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
0 commit comments