Skip to content

Commit 40f91a5

Browse files
committed
modernize the bom pom.xml
1 parent aeaa04f commit 40f91a5

2 files changed

Lines changed: 23 additions & 6 deletions

File tree

monorepo-migration/migrate.sh

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ echo "Committing copyright header fixes..."
315315
git add "$SOURCE_REPO_NAME"
316316
git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2026 Google LLC"
317317

318-
# 7.10 Modernize root pom.xml
318+
# 7.11 Modernize root pom.xml
319319
echo "Modernizing root pom.xml..."
320320
PARENT_VERSION=$(grep -m 1 "<version>.*{x-version-update:google-cloud-java:current}" google-cloud-jar-parent/pom.xml | sed -E 's/.*<version>(.*)<\/version>.*/\1/')
321321
python3 "$MODERNIZE_POM_SCRIPT" "$SOURCE_REPO_NAME/pom.xml" "$PARENT_VERSION" "$SOURCE_REPO_NAME"
@@ -324,6 +324,19 @@ echo "Committing root pom.xml modernization..."
324324
git add "$SOURCE_REPO_NAME/pom.xml"
325325
git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize root pom.xml"
326326

327+
# 7.12 Modernize BOM pom.xml
328+
echo "Modernizing BOM pom.xml..."
329+
# Find potential BOM POMs (usually in a subdirectory ending with -bom)
330+
find "$SOURCE_REPO_NAME" -name "pom.xml" | grep "\-bom/pom.xml" | while read -r bom_pom; do
331+
echo "Modernizing BOM: $bom_pom"
332+
# BOMs should inherit from google-cloud-pom-parent
333+
python3 "$MODERNIZE_POM_SCRIPT" "$bom_pom" "$PARENT_VERSION" "$SOURCE_REPO_NAME" "google-cloud-pom-parent" "../../google-cloud-pom-parent/pom.xml"
334+
335+
echo "Committing BOM pom.xml modernization for $bom_pom..."
336+
git add "$bom_pom"
337+
git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize BOM pom.xml"
338+
done
339+
327340
# 7.11 Verify compilation
328341
echo "Verifying compilation..."
329342
(cd "$SOURCE_REPO_NAME" && mvn compile -DskipTests -T 1C)

monorepo-migration/modernize_pom.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
import sys
1616
import re
1717

18-
def modernize_pom(file_path, parent_version, source_repo_name=None):
18+
19+
def modernize_pom(file_path, parent_version, source_repo_name=None, parent_artifactId='google-cloud-jar-parent', relative_path='../google-cloud-jar-parent/pom.xml'):
1920
with open(file_path, 'r') as f:
2021
lines = f.readlines()
2122

@@ -64,9 +65,9 @@ def modernize_pom(file_path, parent_version, source_repo_name=None):
6465
indent = line[:line.find('<')]
6566
new_lines.append(f"{indent}<parent>\n")
6667
new_lines.append(f"{indent} <groupId>com.google.cloud</groupId>\n")
67-
new_lines.append(f"{indent} <artifactId>google-cloud-jar-parent</artifactId>\n")
68+
new_lines.append(f"{indent} <artifactId>{parent_artifactId}</artifactId>\n")
6869
new_lines.append(f"{indent} <version>{parent_version}</version><!-- {{x-version-update:google-cloud-java:current}} -->\n")
69-
new_lines.append(f"{indent} <relativePath>../google-cloud-jar-parent/pom.xml</relativePath>\n")
70+
new_lines.append(f"{indent} <relativePath>{relative_path}</relativePath>\n")
7071
continue
7172
if '</parent>' in line and in_parent:
7273
in_parent = False
@@ -161,7 +162,10 @@ def modernize_pom(file_path, parent_version, source_repo_name=None):
161162
if __name__ == "__main__":
162163
if len(sys.argv) > 2:
163164
source_repo = sys.argv[3] if len(sys.argv) > 3 else None
164-
modernize_pom(sys.argv[1], sys.argv[2], source_repo)
165+
parent_artifactId = sys.argv[4] if len(sys.argv) > 4 else 'google-cloud-jar-parent'
166+
relative_path = sys.argv[5] if len(sys.argv) > 5 else '../google-cloud-jar-parent/pom.xml'
167+
modernize_pom(sys.argv[1], sys.argv[2], source_repo, parent_artifactId, relative_path)
165168
else:
166-
print("Usage: python3 modernize_pom.py <file_path> <parent_version> [source_repo_name]")
169+
print("Usage: python3 modernize_pom.py <file_path> <parent_version> [source_repo_name] [parent_artifactId] [relative_path]")
167170
sys.exit(1)
171+

0 commit comments

Comments
 (0)