@@ -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