Skip to content

Commit b303972

Browse files
committed
Adding check to stop invalid minor and patch updates at once
1 parent 7510729 commit b303972

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

scripts/generate_switcher.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,22 @@ def generate_switcher_json(version_tags):
202202
f"Invalid version progression: {latest_tag_version} -> {json_version}. "
203203
f"Cannot skip versions. Expected v{t_major}.{t_minor}.{t_patch + 1}"
204204
)
205+
elif j_major == t_major and j_minor == t_minor + 1:
206+
# Valid minor bump, but patch must be 0
207+
if j_patch != 0:
208+
logging.error(
209+
"version.json (%s) has non-zero patch when bumping minor version. "
210+
"When incrementing minor version, patch must reset to 0. Expected v%d.%d.0",
211+
json_version,
212+
j_major,
213+
j_minor,
214+
)
215+
raise ValueError(
216+
f"Invalid version: {json_version}. "
217+
f"When bumping minor version from {latest_tag_version}, patch must be 0. Expected v{j_major}.{j_minor}.0"
218+
)
205219
elif j_major == t_major and j_minor > t_minor + 1:
220+
# Skipping minor versions
206221
logging.error(
207222
"version.json (%s) skips minor versions from latest tag (%s). "
208223
"Expected next version would be v%d.%d.0",
@@ -215,7 +230,21 @@ def generate_switcher_json(version_tags):
215230
f"Invalid version progression: {latest_tag_version} -> {json_version}. "
216231
f"Cannot skip versions. Expected v{t_major}.{t_minor + 1}.0"
217232
)
233+
elif j_major == t_major + 1:
234+
# Valid major bump, but minor and patch must be 0
235+
if j_minor != 0 or j_patch != 0:
236+
logging.error(
237+
"version.json (%s) has non-zero minor/patch when bumping major version. "
238+
"When incrementing major version, minor and patch must reset to 0. Expected v%d.0.0",
239+
json_version,
240+
j_major,
241+
)
242+
raise ValueError(
243+
f"Invalid version: {json_version}. "
244+
f"When bumping major version from {latest_tag_version}, minor and patch must be 0. Expected v{j_major}.0.0"
245+
)
218246
elif j_major > t_major + 1:
247+
# Skipping major versions
219248
logging.error(
220249
"version.json (%s) skips major versions from latest tag (%s). "
221250
"Expected next version would be v%d.0.0",

0 commit comments

Comments
 (0)