@@ -67,13 +67,24 @@ jobs:
67
67
if versions_element is not None:
68
68
for version_elem in versions_element.findall('version'):
69
69
v = version_elem.text
70
- if v and not any(suffix in v for suffix in ['SNAPSHOT', 'RC', 'BUILD']):
71
- versions.append(v)
70
+ if v and not any(suffix in v for suffix in ['SNAPSHOT', 'RC', 'BUILD', 'RELEASE']):
71
+ # Only include versions that start with a digit and use standard format
72
+ if v and v[0].isdigit() and v.count('.') >= 2:
73
+ versions.append(v)
72
74
73
75
if versions:
74
76
print(f"Found {len(versions)} versions via XML")
75
77
print(f"Sample versions: {versions[-10:] if len(versions) > 10 else versions}")
76
- return sorted(versions, key=version.parse)
78
+ # Filter out any versions that still can't be parsed
79
+ valid_versions = []
80
+ for v in versions:
81
+ try:
82
+ version.parse(v)
83
+ valid_versions.append(v)
84
+ except Exception as e:
85
+ print(f"Skipping invalid version format: {v}")
86
+ print(f"Filtered to {len(valid_versions)} valid versions")
87
+ return sorted(valid_versions, key=version.parse)
77
88
78
89
# Fallback to search API
79
90
print("Trying search API fallback...")
@@ -101,12 +112,22 @@ jobs:
101
112
versions = []
102
113
for doc in docs:
103
114
version_field = doc.get('v') or doc.get('version')
104
- if version_field and not any(suffix in version_field for suffix in ['SNAPSHOT', 'RC', 'BUILD']):
115
+ if (version_field and
116
+ not any(suffix in version_field for suffix in ['SNAPSHOT', 'RC', 'BUILD', 'RELEASE']) and
117
+ version_field[0].isdigit() and version_field.count('.') >= 2):
105
118
versions.append(version_field)
106
119
107
120
if versions:
108
- print(f"Successfully fetched {len(versions)} versions via search API")
109
- return sorted(versions, key=version.parse)
121
+ # Filter out any versions that still can't be parsed
122
+ valid_versions = []
123
+ for v in versions:
124
+ try:
125
+ version.parse(v)
126
+ valid_versions.append(v)
127
+ except Exception as e:
128
+ print(f"Skipping invalid version format: {v}")
129
+ print(f"Successfully fetched {len(valid_versions)} valid versions via search API")
130
+ return sorted(valid_versions, key=version.parse)
110
131
111
132
except Exception as e:
112
133
print(f"Attempt {attempt + 1} failed: {e}")
0 commit comments