def update_next_version()

in azdev/operations/extensions/version_upgrade.py [0:0]


    def update_next_version(self):
        if self.next_version_pre_tag == VERSION_STABLE_TAG:
            self.next_version.pre = None
            self.next_version.pre_num = 0
        elif self.next_version_pre_tag == VERSION_PREVIEW_TAG:
            self.next_version.pre = "b"
            self.next_version.pre_num = (self.version.pre and self.version.pre[1]) or 1
        else:
            raise ValueError("Unsupported pre tag: {0}".format(self.next_version_pre_tag))

        if self.version.major < 1:
            # for version starting with 0.x.x, norm them to first stable/preview version
            if self.next_version_pre_tag == VERSION_STABLE_TAG:
                self.next_version.init_stable_version()
            else:
                self.next_version.init_preview_version()
            return

        if self.next_version_pre_tag == VERSION_STABLE_TAG and self.is_preview:
            # normal case: 2.0.0bN -> stable > 2.0.0
            if self.is_preview_deprecate_pattern:
                # old preview tag pattern
                # 1.0.5 + isPreview: true -> stable -> 1.1.0
                self.next_version.minor = self.version.minor + 1
                self.next_version.patch = 0
            return

        if self.next_version_segment_tag:
            if self.next_version_segment_tag == VERSION_MAJOR_TAG:
                self.next_version.major = self.version.major + 1
                self.next_version.minor = 0
                self.next_version.patch = 0
                self.next_version.pre_num = 1
            elif self.next_version_segment_tag == VERSION_MINOR_TAG:
                self.next_version.minor = self.version.minor + 1
                self.next_version.patch = 0
                self.next_version.pre_num = 1
            elif self.next_version_segment_tag == VERSION_PATCH_TAG:
                self.next_version.patch = self.version.micro + 1
                self.next_version.pre_num = 1
            elif self.next_version_segment_tag == VERSION_PRE_TAG:
                self.next_version.pre_num = (self.version.pre and self.version.pre[1] or 0) + 1
            else:
                raise ValueError("Unsupported segment tag: {0}".format(self.next_version_segment_tag))
            return

        self.update_version_from_differs()