Skip to content

Commit 79b6ece

Browse files
committed
fix: hermetic build to create one line per new library
b/373612851
1 parent 5ec5040 commit 79b6ece

File tree

6 files changed

+31
-20
lines changed

6 files changed

+31
-20
lines changed

hermetic_build/library_generation/owlbot/src/fix_poms.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,9 @@ 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(r'^(google-cloud-|grpc-google-cloud-|proto-google-cloud-)', '', artifact_id)
363+
release_please_key = f"java-{base_name}"
361364
name = repo_metadata["name_pretty"]
362365
existing_modules = load_versions(versions_file, group_id)
363366
print(f"monorepo? {monorepo}")
@@ -456,6 +459,7 @@ def main(versions_file, monorepo):
456459
parent_module=parent_module,
457460
main_module=main_module,
458461
monorepo=monorepo,
462+
release_please_key=release_please_key,
459463
)
460464
if (
461465
path not in excluded_dependencies_list
@@ -498,6 +502,7 @@ def main(versions_file, monorepo):
498502
main_module=main_module,
499503
proto_module=existing_modules[proto_artifact_id],
500504
monorepo=monorepo,
505+
release_please_key=release_please_key,
501506
)
502507
if (
503508
path not in excluded_dependencies_list
@@ -549,6 +554,7 @@ def main(versions_file, monorepo):
549554
proto_modules=proto_modules,
550555
grpc_modules=grpc_modules,
551556
monorepo=monorepo,
557+
release_please_key=release_please_key,
552558
)
553559

554560
if os.path.isfile(f"{artifact_id}-bom/pom.xml"):
@@ -567,6 +573,7 @@ def main(versions_file, monorepo):
567573
main_module=main_module,
568574
monorepo=monorepo,
569575
monorepo_version=monorepo_version,
576+
release_please_key=release_please_key,
570577
)
571578

572579
if os.path.isfile("pom.xml"):
@@ -584,24 +591,28 @@ def main(versions_file, monorepo):
584591
name=name,
585592
monorepo=monorepo,
586593
monorepo_version=monorepo_version,
594+
release_please_key=release_please_key,
587595
)
588596

589597
print(f"updating modules in {versions_file}")
590598
existing_modules.pop(parent_artifact_id)
591599

592-
# add extra modules to versions.txt
593-
for dependency_module in extra_managed_modules:
594-
if dependency_module not in existing_modules:
595-
existing_modules[dependency_module] = module.Module(
596-
group_id=__proto_group_id(group_id),
597-
artifact_id=dependency_module,
598-
version=main_module.version,
599-
release_version=main_module.release_version,
600-
)
600+
601+
# Consolidate all modules into a single `java-` entry.
602+
# It's safe to use the first module's version and group ID,
603+
# as they will be consistent for a new library.
604+
601605
templates.render(
602606
template_name="versions.txt.j2",
603607
output_name=versions_file,
604-
modules=existing_modules.values(),
608+
# Only write the main artifact module to versions.txt
609+
modules=[
610+
module.Module(
611+
group_id=main_module.group_id,
612+
artifact_id=release_please_key,
613+
version=main_module.version,
614+
release_version=main_module.release_version,)
615+
],
605616
)
606617

607618

hermetic_build/library_generation/owlbot/templates/poms/bom_pom.xml.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>{{main_module.group_id}}</groupId>
55
<artifactId>{{main_module.artifact_id}}-bom</artifactId>
6-
<version>{{main_module.version}}</version><!-- {x-version-update:{{main_module.artifact_id}}:current} -->
6+
<version>{{main_module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
77
<packaging>pom</packaging>
88
{% if monorepo -%}
99
<parent>
@@ -34,7 +34,7 @@
3434
<dependency>
3535
<groupId>{{module.group_id}}</groupId>
3636
<artifactId>{{module.artifact_id}}</artifactId>
37-
<version>{{module.version}}</version><!-- {x-version-update:{{module.artifact_id}}:current} -->
37+
<version>{{module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
3838
</dependency>{% endfor %}
3939
</dependencies>
4040
</dependencyManagement>

hermetic_build/library_generation/owlbot/templates/poms/cloud_pom.xml.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>{{module.group_id}}</groupId>
55
<artifactId>{{module.artifact_id}}</artifactId>
6-
<version>{{module.version}}</version><!-- {x-version-update:{{module.artifact_id}}:current} -->
6+
<version>{{module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
77
<packaging>jar</packaging>
88
<name>Google {{name}}</name>
99
{%- if not monorepo %}
@@ -13,7 +13,7 @@
1313
<parent>
1414
<groupId>{{parent_module.group_id}}</groupId>
1515
<artifactId>{{parent_module.artifact_id}}</artifactId>
16-
<version>{{parent_module.version}}</version><!-- {x-version-update:{{module.artifact_id}}:current} -->
16+
<version>{{parent_module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
1717
</parent>
1818
<properties>
1919
<site.installationModule>{{module.artifact_id}}</site.installationModule>

hermetic_build/library_generation/owlbot/templates/poms/grpc_pom.xml.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>{{module.group_id}}</groupId>
66
<artifactId>{{module.artifact_id}}</artifactId>
7-
<version>{{module.version}}</version><!-- {x-version-update:{{module.artifact_id}}:current} -->
7+
<version>{{module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
88
<name>{{module.artifact_id}}</name>
99
<description>GRPC library for {{main_module.artifact_id}}</description>
1010
<parent>
1111
<groupId>{{parent_module.group_id}}</groupId>
1212
<artifactId>{{parent_module.artifact_id}}</artifactId>
13-
<version>{{parent_module.version}}</version><!-- {x-version-update:{{main_module.artifact_id}}:current} -->
13+
<version>{{parent_module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
1414
</parent>
1515
<dependencies>
1616
<dependency>

hermetic_build/library_generation/owlbot/templates/poms/parent_pom.xml.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>{{main_module.group_id}}</groupId>
55
<artifactId>{{main_module.artifact_id}}-parent</artifactId>
66
<packaging>pom</packaging>
7-
<version>{{main_module.version}}</version><!-- {x-version-update:{{main_module.artifact_id}}:current} -->
7+
<version>{{main_module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
88
<name>Google {{name}} Parent</name>
99
<description>
1010
Java idiomatic client for Google Cloud Platform services.
@@ -37,7 +37,7 @@
3737
{% for module in modules %} <dependency>
3838
<groupId>{{module.group_id}}</groupId>
3939
<artifactId>{{module.artifact_id}}</artifactId>
40-
<version>{{module.version}}</version><!-- {x-version-update:{{module.artifact_id}}:current} -->
40+
<version>{{module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
4141
</dependency>
4242
{% endfor %}
4343
</dependencies>

hermetic_build/library_generation/owlbot/templates/poms/proto_pom.xml.j2

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>{{module.group_id}}</groupId>
66
<artifactId>{{module.artifact_id}}</artifactId>
7-
<version>{{module.version}}</version><!-- {x-version-update:{{module.artifact_id}}:current} -->
7+
<version>{{module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
88
<name>{{module.artifact_id}}</name>
99
<description>Proto library for {{main_module.artifact_id}}</description>
1010
<parent>
1111
<groupId>{{parent_module.group_id}}</groupId>
1212
<artifactId>{{parent_module.artifact_id}}</artifactId>
13-
<version>{{parent_module.version}}</version><!-- {x-version-update:{{main_module.artifact_id}}:current} -->
13+
<version>{{parent_module.version}}</version><!-- {x-version-update:{{release_please_key}}:current} -->
1414
</parent>
1515
<dependencies>
1616
<dependency>

0 commit comments

Comments
 (0)