fix: patterns/replacements for "-final" releases

This commit is contained in:
Manuel Barkhau 2018-12-22 09:49:27 +01:00
parent f571d95093
commit 8dfcea90c4
7 changed files with 78 additions and 40 deletions

View file

@ -57,11 +57,11 @@ def _init_logging(verbose: int = 0) -> None:
def _validate_release_tag(release: str) -> None:
if release == 'final' or release in parse.VALID_RELEASE_VALUES:
if release in parse.VALID_RELEASE_VALUES:
return
log.error(f"Invalid argument --release={release}")
log.error(f"Valid arguments are: final, {', '.join(parse.VALID_RELEASE_VALUES)}")
log.error(f"Valid arguments are: {', '.join(parse.VALID_RELEASE_VALUES)}")
sys.exit(1)
@ -235,7 +235,7 @@ def _bump(cfg: config.Config, new_version: str, allow_dirty: bool = False) -> No
metavar="<name>",
help=(
f"Override release name of current_version. Valid options are: "
f"{', '.join(parse.VALID_RELEASE_VALUES)} and final."
f"{', '.join(parse.VALID_RELEASE_VALUES)}."
),
)
@click.option(

View file

@ -12,7 +12,7 @@ import typing as typ
log = logging.getLogger("pycalver.parse")
VALID_RELEASE_VALUES = ("alpha", "beta", "dev", "rc", "post")
VALID_RELEASE_VALUES = ("alpha", "beta", "dev", "rc", "post", "final")
PATTERN_ESCAPES = [
@ -38,12 +38,14 @@ PATTERN_ESCAPES = [
RE_PATTERN_PARTS = {
'pep440_version': r"\d{6}\.[1-9]\d*(a|b|dev|rc|post)?\d*",
'version' : r"v\d{6}\.\d{4,}(\-(alpha|beta|dev|rc|post))?",
'version' : r"v\d{6}\.\d{4,}(\-(alpha|beta|dev|rc|post|final))?",
'calver' : r"v\d{6}",
'year' : r"\d{4}",
'month' : r"\d{2}",
'build' : r"\.\d{4,}",
'build_no' : r"\d{4,}",
'release' : r"(\-(alpha|beta|dev|rc|post))?",
'release_tag' : r"(alpha|beta|dev|rc|post)?",
'release' : r"(\-(alpha|beta|dev|rc|post|final))?",
'release_tag' : r"(alpha|beta|dev|rc|post|final)?",
}

View file

@ -100,6 +100,10 @@ def parse_version_info(version_str: str) -> VersionInfo:
kwargs = match.groupdict()
kwargs['pep440_version'] = pycalver_to_pep440(kwargs['version'])
if kwargs['release'] is None:
kwargs['release'] = "-final"
if kwargs['release_tag'] is None:
kwargs['release_tag'] = "final"
return VersionInfo(**kwargs)
@ -144,6 +148,9 @@ def incr(old_version: str, *, release: str = None) -> str:
else:
new_release = release
if new_release == 'final':
new_release = None
new_version = new_calver + "." + new_build
if new_release:
new_version += "-" + new_release