from release_type import ReleaseType from file_handlers import FileHandler class Version(): def __init__(self, version_list: list, release_type: ReleaseType): self.version_list = version_list self.release_type = release_type self.version_string = None self.is_snapshot = None def increment(self): self.is_snapshot = False match self.release_type: case ReleaseType.BUMP: self.is_snapshot = True self.version_list[ReleaseType.PATCH.value] += 1 case ReleaseType.SNAPSHOT: self.is_snapshot = True case ReleaseType.PATCH: self.version_list[ReleaseType.PATCH.value] += 1 case ReleaseType.MINOR: self.version_list[ReleaseType.PATCH.value] = 0 self.version_list[ReleaseType.MINOR.value] += 1 case ReleaseType.MAJOR: self.version_list[ReleaseType.PATCH.value] = 0 self.version_list[ReleaseType.MINOR.value] = 0 self.version_list[ReleaseType.MAJOR.value] += 1 case None: raise Exception("Release Type was not set!") def get_version_string(self) -> str: self.version_string = ".".join([str(x) for x in self.version_list]) if self.is_snapshot: self.version_string += "-SNAPSHOT" return self.version_string def create_release_version(self): release_version = Version(self.version_list, self.release_type) release_version.is_snapshot = self.is_snapshot release_version.increment() return release_version def create_bump_version(self): bump_version = Version(self.version_list, self.release_type) bump_version.is_snapshot = self.is_snapshot bump_version.release_type = ReleaseType.BUMP bump_version.increment() return bump_version