def update_version_from_differs()

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


    def update_version_from_differs(self):
        found_break = False
        for item in self.diffs:
            if item["diff_level"] == DiffLevel.BREAK.value:
                found_break = True
                break
        if found_break:
            if self.next_version_pre_tag == VERSION_PREVIEW_TAG and self.is_preview and self.last_stable_major < self.version.major:
                # refer to rule: https://github.com/Azure/azure-cli/blob/release/doc/extensions/versioning_guidelines.md#notes-1
                if self.is_preview_deprecate_pattern:
                    # 1.1.0 + isPreview:True -> preview -> 1.1.1b1
                    # if 1.1.0b2, then version cannot upgrade in core
                    self.next_version.patch = self.version.micro + 1
                    self.next_version.pre_num = 1
                else:
                    self.next_version.pre_num = self.version.pre[1] + 1
            else:
                self.next_version.major = self.version.major + 1
                self.next_version.minor = 0
                self.next_version.patch = 0
                if self.is_preview:
                    self.next_version.pre_num = 1
        elif len(self.diffs) > 0:
            if self.is_preview:
                if self.is_preview_deprecate_pattern:
                    # 1.1.0 + isPreview:True -> preview -> 1.1.1b1
                    # if 1.1.0b2, then version cannot upgrade in core
                    self.next_version.patch = self.version.micro + 1
                    self.next_version.pre_num = 1
                else:
                    self.next_version.pre_num = self.version.pre[1] + 1
            else:
                self.next_version.minor = self.version.minor + 1
                self.next_version.patch = 0
        else:
            if self.is_preview:
                if self.is_preview_deprecate_pattern:
                    # 1.1.0 + isPreview:True -> preview -> 1.1.1b1
                    # if 1.1.0b2, then version cannot upgrade in core
                    self.next_version.patch = self.version.micro + 1
                    self.next_version.pre_num = 1
                else:
                    self.next_version.pre_num = self.version.pre[1] + 1
            else:
                self.next_version.patch = self.version.micro + 1