Skip to content

Commit a821678

Browse files
committed
update contrib dependencies together in script
1 parent e12d79c commit a821678

File tree

1 file changed

+54
-3
lines changed

1 file changed

+54
-3
lines changed

scripts/update_dependencies.py

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,37 @@ def get_latest_instrumentation_version():
2323
print(f"Warning: Could not get latest instrumentation version: {request_error}")
2424
return None
2525

26+
def get_latest_contrib_version():
27+
"""Get the latest version of opentelemetry-java-contrib from GitHub releases."""
28+
try:
29+
response = requests.get(
30+
'https://api.github.com/repos/open-telemetry/opentelemetry-java-contrib/releases',
31+
timeout=30
32+
)
33+
response.raise_for_status()
34+
35+
releases = response.json()
36+
37+
# Find the latest stable release
38+
for release in releases:
39+
if release.get('prerelease', False):
40+
continue # Skip pre-releases
41+
42+
tag_name = release['tag_name']
43+
# Contrib releases are typically tagged as "v1.32.0"
44+
version_match = re.match(r'^v?(\d+\.\d+\.\d+)$', tag_name)
45+
if version_match:
46+
version = version_match.group(1)
47+
print(f"Found contrib version: {version}")
48+
return version
49+
50+
print("Warning: No stable contrib releases found")
51+
return None
52+
53+
except requests.RequestException as request_error:
54+
print(f"Warning: Could not get latest contrib version: {request_error}")
55+
return None
56+
2657
def get_latest_maven_version(group_id, artifact_id):
2758
"""Get the latest version of a Maven artifact from Maven Central."""
2859
try:
@@ -79,15 +110,35 @@ def update_gradle_file(file_path):
79110
updated = True
80111
print(f"Updated otelSnapshotVersion to {next_minor}")
81112

82-
# Update hardcoded OpenTelemetry versions in dependencyLists
83-
opentelemetry_packages = [
113+
# Get latest contrib version from GitHub
114+
latest_contrib_version = get_latest_contrib_version()
115+
116+
# Update contrib packages that are released together
117+
contrib_packages = [
84118
('io.opentelemetry.contrib', 'opentelemetry-aws-xray'),
85119
('io.opentelemetry.contrib', 'opentelemetry-aws-resources'),
120+
]
121+
122+
for group_id, artifact_id in contrib_packages:
123+
if latest_contrib_version:
124+
# Pattern to match the dependency line
125+
pattern = rf'"{re.escape(group_id)}:{re.escape(artifact_id)}:[^"]*"'
126+
replacement = f'"{group_id}:{artifact_id}:{latest_contrib_version}"'
127+
128+
if re.search(pattern, content):
129+
new_content = re.sub(pattern, replacement, content)
130+
if new_content != content:
131+
content = new_content
132+
updated = True
133+
print(f"Updated {group_id}:{artifact_id} to {latest_contrib_version}")
134+
135+
# Update remaining packages using Maven Central
136+
other_packages = [
86137
('io.opentelemetry', 'opentelemetry-extension-aws'),
87138
('io.opentelemetry.proto', 'opentelemetry-proto'),
88139
]
89140

90-
for group_id, artifact_id in opentelemetry_packages:
141+
for group_id, artifact_id in other_packages:
91142
latest_version = get_latest_maven_version(group_id, artifact_id)
92143
if latest_version:
93144
# Pattern to match the dependency line

0 commit comments

Comments
 (0)