Skip to content

Commit 5d9ca38

Browse files
authored
reset pre num for tagged version (#467)
1 parent 562ad15 commit 5d9ca38

4 files changed

Lines changed: 51 additions & 2 deletions

File tree

HISTORY.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
33
Release History
44
===============
5+
0.1.77
6+
++++++
7+
* `azdev extension cal-next-version`: Fix pre_num when tagged preview version with `major`, `minor`, `patch`.
8+
59
0.1.76
610
++++++
711
* `azdev extension cal-next-version`: Fix preview to stable version case.

azdev/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
# license information.
55
# -----------------------------------------------------------------------------
66

7-
__VERSION__ = '0.1.76'
7+
__VERSION__ = '0.1.77'

azdev/operations/extensions/version_upgrade.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,16 @@ def update_next_version(self):
132132
self.next_version.major = self.version.major + 1
133133
self.next_version.minor = 0
134134
self.next_version.patch = 0
135+
self.next_version.pre_num = 1
135136
elif self.next_version_segment_tag == VERSION_MINOR_TAG:
136137
self.next_version.minor = self.version.minor + 1
137138
self.next_version.patch = 0
139+
self.next_version.pre_num = 1
138140
elif self.next_version_segment_tag == VERSION_PATCH_TAG:
139141
self.next_version.patch = self.version.micro + 1
142+
self.next_version.pre_num = 1
140143
elif self.next_version_segment_tag == VERSION_PRE_TAG:
141-
self.next_version.patch = (self.version.pre and self.version.pre[1] or 0) + 1
144+
self.next_version.pre_num = (self.version.pre and self.version.pre[1] or 0) + 1
142145
else:
143146
raise ValueError("Unsupported segment tag: {0}".format(self.next_version_segment_tag))
144147
return
@@ -159,6 +162,8 @@ def update_version_from_differs(self):
159162
self.next_version.major = self.version.major + 1
160163
self.next_version.minor = 0
161164
self.next_version.patch = 0
165+
if self.is_preview:
166+
self.next_version.pre_num = 1
162167
elif len(self.diffs) > 0:
163168
if self.is_preview:
164169
self.next_version.pre_num = self.version.pre[1] + 1

azdev/operations/tests/test_extension_versioning.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,30 @@ def test_version_upgrade_to_normal_version(self):
6868
self.assertEqual(False, version_test.get("is_stable"), "Version tag error")
6969
self.assertEqual(False, version_test.get("preview_tag", False), "Version tag error")
7070

71+
def test_version_upgrade_major_tagged_from_preview(self):
72+
# preview version update pre num but user tagged major
73+
version_test = cal_next_version(base_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_before.json"),
74+
diff_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_after.json"),
75+
current_version="3.11.0b7", next_version_segment_tag="major")
76+
self.assertEqual("4.0.0b1", version_test.get("version"), "Version cal error")
77+
self.assertEqual(False, version_test.get("is_stable"), "Version tag error")
78+
79+
def test_version_upgrade_minor_tagged_from_preview(self):
80+
# preview version update pre num but user tagged minor
81+
version_test = cal_next_version(base_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_before.json"),
82+
diff_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_after.json"),
83+
current_version="3.11.0b7", next_version_segment_tag="minor")
84+
self.assertEqual("3.12.0b1", version_test.get("version"), "Version cal error")
85+
self.assertEqual(False, version_test.get("is_stable"), "Version tag error")
86+
87+
def test_version_upgrade_patch_tagged_from_preview(self):
88+
# preview version update pre num but user tagged patch
89+
version_test = cal_next_version(base_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_before.json"),
90+
diff_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_after.json"),
91+
current_version="3.11.0b7", next_version_segment_tag="patch")
92+
self.assertEqual("3.11.1b1", version_test.get("version"), "Version cal error")
93+
self.assertEqual(False, version_test.get("is_stable"), "Version tag error")
94+
7195
def test_version_upgrade_minor_tagged(self):
7296
# stable version update minor as user tagged
7397
version_test = cal_next_version(base_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_before.json"),
@@ -83,6 +107,22 @@ def test_version_upgrade_patch_tagged(self):
83107
current_version="3.11.0", next_version_segment_tag="patch")
84108
self.assertEqual("3.11.1", version_test.get("version"), "Version cal error")
85109

110+
def test_version_upgrade_pre_tagged(self):
111+
# preview version update major but user tagged pre
112+
version_test = cal_next_version(base_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_before.json"),
113+
diff_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_after.json"),
114+
current_version="3.11.0b7", next_version_segment_tag="pre")
115+
self.assertEqual("3.11.0b8", version_test.get("version"), "Version cal error")
116+
self.assertEqual(False, version_test.get("is_stable"), "Version tag error")
117+
118+
def test_version_upgrade_pre_untagged(self):
119+
# preview version update major, no tag, follow no major update more than once from last stable version rule
120+
version_test = cal_next_version(base_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_before.json"),
121+
diff_meta_file=os.path.join(TEST_DIR, "jsons", "az_monitor_meta_after.json"),
122+
current_version="3.11.0b7")
123+
self.assertEqual("4.0.0b1", version_test.get("version"), "Version cal error")
124+
self.assertEqual(False, version_test.get("is_stable"), "Version tag error")
125+
86126
def test_version_upgrade_patch(self):
87127
# stable version update patch as breaking change detects empty
88128
version_test = cal_next_version(base_meta_file=os.path.join(TEST_DIR, "jsons", "az_ams_meta_before.json"),

0 commit comments

Comments
 (0)