def bump(dev=False, patch=False, minor=False, major=False, nocommit=False): """Bump version number and commit change.""" if sum([int(x) for x in (patch, minor, major)]) > 1: raise ValueError('Only one of patch, minor, major can be incremented.') if check_staged(): raise EnvironmentError('There are staged changes, abort.') with open(str(INIT_PATH)) as f: lines = f.readlines() for i, line in enumerate(lines): varmatch = re.match("__([a-z]+)__ = '([^']+)'", line) if varmatch: if varmatch.group(1) == 'version': version = Version(varmatch.group(2)) vdict = version._version._asdict() print('Current version:', version) increment_release = True if dev: if vdict['dev']: vdict['dev'] = (vdict['dev'][0], vdict['dev'][1] + 1) increment_release = False if sum([int(x) for x in (patch, minor, major)]) > 0: raise ValueError( 'Cannot increment patch, minor, or major between dev versions.' ) else: vdict['dev'] = ('dev', 0) else: if vdict['dev']: vdict['dev'] = None increment_release = False if increment_release: rel = vdict['release'] if major: vdict['release'] = (rel[0] + 1, 0, 0) elif patch: vdict['release'] = (rel[0], rel[1], rel[2] + 1) else: # minor is default vdict['release'] = (rel[0], rel[1] + 1, 0) version._version = _Version(**vdict) print('Version bumped to:', version) lines[i] = "__version__ = '{!s}'\n".format(version) break with open(str(INIT_PATH), 'w') as f: f.writelines(lines) if not nocommit: call(['git', 'add', 'bucketcache/__init__.py']) call([ 'git', 'commit', '-m', 'Bumped version number to {!s}'.format(version) ]) return version
def bump(dev=False, patch=False, minor=False, major=False, nocommit=False): """Bump version number and commit change.""" if sum([int(x) for x in (patch, minor, major)]) > 1: raise ValueError('Only one of patch, minor, major can be incremented.') if check_staged(): raise EnvironmentError('There are staged changes, abort.') with open(str(INIT_PATH)) as f: lines = f.readlines() for i, line in enumerate(lines): varmatch = re.match("__([a-z]+)__ = '([^']+)'", line) if varmatch: if varmatch.group(1) == 'version': version = Version(varmatch.group(2)) vdict = version._version._asdict() print('Current version:', version) increment_release = True if dev: if vdict['dev']: vdict['dev'] = (vdict['dev'][0], vdict['dev'][1] + 1) increment_release = False if sum([int(x) for x in (patch, minor, major)]) > 0: raise ValueError('Cannot increment patch, minor, or major between dev versions.') else: vdict['dev'] = ('dev', 0) else: if vdict['dev']: vdict['dev'] = None increment_release = False if increment_release: rel = vdict['release'] if major: vdict['release'] = (rel[0] + 1, 0, 0) elif patch: vdict['release'] = (rel[0], rel[1], rel[2] + 1) else: # minor is default vdict['release'] = (rel[0], rel[1] + 1, 0) version._version = _Version(**vdict) print('Version bumped to:', version) lines[i] = "__version__ = '{!s}'\n".format(version) break with open(str(INIT_PATH), 'w') as f: f.writelines(lines) if not nocommit: call(['git', 'add', 'bucketcache/__init__.py']) call(['git', 'commit', '-m', 'Bumped version number to {!s}'.format(version)]) return version
def bump_version(version, bump_type): """Return a new version given a current version and action.""" to_change = {} if bump_type == "minor": # Convert 0.67.3 to 0.68.0 # Convert 0.67.3.b5 to 0.68.0 # Convert 0.67.3.dev0 to 0.68.0 # Convert 0.67.0.b5 to 0.67.0 # Convert 0.67.0.dev0 to 0.67.0 to_change["dev"] = None to_change["pre"] = None if not version.is_prerelease or version.release[2] != 0: to_change["release"] = _bump_release(version.release, "minor") elif bump_type == "patch": # Convert 0.67.3 to 0.67.4 # Convert 0.67.3.b5 to 0.67.3 # Convert 0.67.3.dev0 to 0.67.3 to_change["dev"] = None to_change["pre"] = None if not version.is_prerelease: to_change["release"] = _bump_release(version.release, "patch") elif bump_type == "dev": # Convert 0.67.3 to 0.67.4.dev0 # Convert 0.67.3.b5 to 0.67.4.dev0 # Convert 0.67.3.dev0 to 0.67.3.dev1 if version.is_devrelease: to_change["dev"] = ("dev", version.dev + 1) else: to_change["pre"] = ("dev", 0) to_change["release"] = _bump_release(version.release, "minor") elif bump_type == "beta": # Convert 0.67.5 to 0.67.6b0 # Convert 0.67.0.dev0 to 0.67.0b0 # Convert 0.67.5.b4 to 0.67.5b5 if version.is_devrelease: to_change["dev"] = None to_change["pre"] = ("b", 0) elif version.is_prerelease: if version.pre[0] == "a": to_change["pre"] = ("b", 0) if version.pre[0] == "b": to_change["pre"] = ("b", version.pre[1] + 1) else: to_change["pre"] = ("b", 0) to_change["release"] = _bump_release(version.release, "patch") else: to_change["release"] = _bump_release(version.release, "patch") to_change["pre"] = ("b", 0) elif bump_type == "nightly": # Convert 0.70.0d0 to 0.70.0d20190424, fails when run on non dev release if not version.is_devrelease: raise ValueError("Can only be run on dev release") to_change["dev"] = ( "dev", datetime.utcnow().date().isoformat().replace("-", ""), ) else: assert False, f"Unsupported type: {bump_type}" temp = Version("0") temp._version = version._version._replace(**to_change) return Version(str(temp))
def bump_version(version, bump_type): """Return a new version given a current version and action.""" to_change = {} if bump_type == "minor": # Convert 0.67.3 to 0.68.0 # Convert 0.67.3.b5 to 0.68.0 # Convert 0.67.3.dev0 to 0.68.0 # Convert 0.67.0.b5 to 0.67.0 # Convert 0.67.0.dev0 to 0.67.0 to_change["dev"] = None to_change["pre"] = None if not version.is_prerelease or version.release[2] != 0: to_change["release"] = _bump_release(version.release, "minor") elif bump_type == "patch": # Convert 0.67.3 to 0.67.4 # Convert 0.67.3.b5 to 0.67.3 # Convert 0.67.3.dev0 to 0.67.3 to_change["dev"] = None to_change["pre"] = None if not version.is_prerelease: to_change["release"] = _bump_release(version.release, "patch") elif bump_type == "dev": # Convert 0.67.3 to 0.67.4.dev0 # Convert 0.67.3.b5 to 0.67.4.dev0 # Convert 0.67.3.dev0 to 0.67.3.dev1 if version.is_devrelease: to_change["dev"] = ("dev", version.dev + 1) else: to_change["pre"] = ("dev", 0) to_change["release"] = _bump_release(version.release, "minor") elif bump_type == "beta": # Convert 0.67.5 to 0.67.6b0 # Convert 0.67.0.dev0 to 0.67.0b0 # Convert 0.67.5.b4 to 0.67.5b5 if version.is_devrelease: to_change["dev"] = None to_change["pre"] = ("b", 0) elif version.is_prerelease: if version.pre[0] == "a": to_change["pre"] = ("b", 0) if version.pre[0] == "b": to_change["pre"] = ("b", version.pre[1] + 1) else: to_change["pre"] = ("b", 0) to_change["release"] = _bump_release(version.release, "patch") else: to_change["release"] = _bump_release(version.release, "patch") to_change["pre"] = ("b", 0) else: assert False, "Unsupported type: {}".format(bump_type) temp = Version("0") temp._version = version._version._replace(**to_change) return Version(str(temp))
def bump_version(version, bump_type): """Return a new version given a current version and action.""" new_release = _bump_release(version.release, bump_type) temp = Version("0") temp._version = version._version._replace(release=new_release) return Version(str(temp))
def bump_version(version, bump_type): """Return a new version given a current version and action.""" to_change = {} if bump_type == 'minor': # Convert 0.67.3 to 0.68.0 # Convert 0.67.3.b5 to 0.68.0 # Convert 0.67.3.dev0 to 0.68.0 # Convert 0.67.0.b5 to 0.67.0 # Convert 0.67.0.dev0 to 0.67.0 to_change['dev'] = None to_change['pre'] = None if not version.is_prerelease or version.release[2] != 0: to_change['release'] = _bump_release(version.release, 'minor') elif bump_type == 'patch': # Convert 0.67.3 to 0.67.4 # Convert 0.67.3.b5 to 0.67.3 # Convert 0.67.3.dev0 to 0.67.3 to_change['dev'] = None to_change['pre'] = None if not version.is_prerelease: to_change['release'] = _bump_release(version.release, 'patch') elif bump_type == 'dev': # Convert 0.67.3 to 0.67.4.dev0 # Convert 0.67.3.b5 to 0.67.4.dev0 # Convert 0.67.3.dev0 to 0.67.3.dev1 if version.is_devrelease: to_change['dev'] = ('dev', version.dev + 1) else: to_change['pre'] = ('dev', 0) to_change['release'] = _bump_release(version.release, 'minor') elif bump_type == 'beta': # Convert 0.67.5 to 0.67.6b0 # Convert 0.67.0.dev0 to 0.67.0b0 # Convert 0.67.5.b4 to 0.67.5b5 if version.is_devrelease: to_change['dev'] = None to_change['pre'] = ('b', 0) elif version.is_prerelease: if version.pre[0] == 'a': to_change['pre'] = ('b', 0) if version.pre[0] == 'b': to_change['pre'] = ('b', version.pre[1] + 1) else: to_change['pre'] = ('b', 0) to_change['release'] = _bump_release(version.release, 'patch') else: to_change['release'] = _bump_release(version.release, 'patch') to_change['pre'] = ('b', 0) else: assert False, 'Unsupported type: {}'.format(bump_type) temp = Version('0') temp._version = version._version._replace(**to_change) return Version(str(temp))