示例#1
0
def bump_version(version: parver.Version, args) -> parver.Version:
    if args.release:
        return version.base_version()

    if args.dev:
        if args.to is not None:
            return version.replace(dev=args.to)
        else:
            return version.bump_dev()

    version = version.replace(dev=None)

    if args.post:
        if args.to is not None:
            return version.replace(post=args.to)
        else:
            return version.bump_post()

    if args.rc:
        if version.is_postrelease:
            version = version.replace(post=None)

        if args.to is not None:
            return version.replace(pre_tag="rc", pre=args.to)
        else:
            return version.bump_pre("rc")
示例#2
0
文件: __init__.py 项目: 5j9/r3l3453
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)