def get_release_version( current_version: Version, release_type: ReleaseType = None ) -> Version: """Return the next version according to git log.""" if release_type is DEV: if current_version.is_devrelease: return current_version.bump_dev() return current_version.bump_release(index=2).bump_dev() if release_type is None: release_type = get_release_type() if SIMULATE is True: print(f'* {release_type}') base_version = current_version.base_version() # removes devN if release_type is PATCH: return base_version if release_type is MINOR or current_version < Version(1): # do not change an early development version to a major release # that type of change should be more explicit (edit versions). return base_version.bump_release(index=1) return base_version.bump_release(index=0)
def _prebump(version: parver.Version) -> parver.Version: next_version = version.bump_release(index=2).bump_dev() print(f"[bump] {version} -> {next_version}") return next_version